From: Cherian Mathew Date: Fri, 20 Nov 2015 17:46:46 +0000 (+0100) Subject: #5000 Use new metadata service X-Git-Tag: 3.12.0^2~56^2~11 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/fc09bcdbfbdc75eba5d72bdb44d3743dd5e8a100 #5000 Use new metadata service --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java index 760b71c90..a1ce7e404 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java @@ -52,6 +52,7 @@ import eu.etaxonomy.cdm.api.service.IGroupService; import eu.etaxonomy.cdm.api.service.IIdentificationKeyService; import eu.etaxonomy.cdm.api.service.ILocationService; import eu.etaxonomy.cdm.api.service.IMediaService; +import eu.etaxonomy.cdm.api.service.IMetadataService; import eu.etaxonomy.cdm.api.service.INameService; import eu.etaxonomy.cdm.api.service.IOccurrenceService; import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService; @@ -105,7 +106,7 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu private ICdmRemoteSource remoteSource; - private Map serviceMap = new HashMap, IService>(); + private static Map serviceMap = new HashMap, IService>(); private ICdmEntitySessionManager cdmEntitySessionManager; @@ -119,6 +120,7 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu public CdmApplicationRemoteConfiguration(ICdmRemoteSource remoteSource) { this.remoteSource = remoteSource; + serviceMap.clear(); } public void setRemoteSource(ICdmRemoteSource remoteSource) { @@ -126,6 +128,10 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu } private Object getService(Class clazz, String serviceSuffix, CdmAuthenticatedHttpInvokerRequestExecutor executor) { + return getService(clazz, serviceSuffix, remoteSource, executor); + } + + public static Object getService(Class clazz, String serviceSuffix, ICdmRemoteSource remoteSource, CdmAuthenticatedHttpInvokerRequestExecutor executor) { if(serviceMap.containsKey(clazz)) { return serviceMap.get(clazz); } @@ -292,6 +298,15 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu return (IUserService) getService(IUserService.class, "/remoting-public/user.service", new CdmServiceRequestExecutor()); } + @Override + public IMetadataService getMetadataService() { + return (IMetadataService) getService(IMetadataService.class, "/remoting-public/metadata.service", new CdmServiceRequestExecutor()); + } + + public static IMetadataService getMetadataService(ICdmRemoteSource remoteSource) { + return (IMetadataService) getService(IMetadataService.class, "/remoting-public/metadata.service", remoteSource, new CdmServiceRequestExecutor()); + } + @Override public IGrantedAuthorityService getGrantedAuthorityService(){ return (IGrantedAuthorityService) getService(IGrantedAuthorityService.class, "/remoting/grantedauthority.service", new CdmServiceRequestExecutor()); diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java index d8edcbf5f..a005d50cd 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java @@ -84,8 +84,6 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC checkProperties(cdmSourceProperties); } else { throw new CdmRemoteSourceException("Remote source '" + remoteSource + "' does not exist in settings file"); - } - initDatabaseConnection(); } private static void checkProperties(Properties cdmSourceProperties) throws CdmRemoteSourceException { diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java index 1e1556f6d..59c24ea3b 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java @@ -10,9 +10,8 @@ package eu.etaxonomy.taxeditor.remoting.source; import java.util.Map; -import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean; - -import eu.etaxonomy.cdm.api.service.IUserService; +import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration; +import eu.etaxonomy.cdm.api.service.IMetadataService; import eu.etaxonomy.cdm.config.CdmSource; import eu.etaxonomy.cdm.config.CdmSourceException; import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName; @@ -34,7 +33,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource { private String contextPath; private String baseUrl; - private IUserService userService; + private IMetadataService metadataService; /** * Constructs a CdmRemoteSourceBase object with default values. @@ -63,26 +62,9 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource { setPort(port); setContextPath(contextPath); setNomenclaturalCode(nomenclaturalCode); - initDatabaseConnection(); + metadataService = CdmApplicationRemoteConfiguration.getMetadataService(this); } - protected void initDatabaseConnection() { - if(getContextPath() == null || getContextPath().equals("")) { - setBaseUrl("http://" + getServer() + ":" + String.valueOf(getPort())); - } else { - setBaseUrl("http://" + getServer() + ":" + String.valueOf(getPort()) + "/" + getContextPath()); - } - // the database service needs to be initialised (before the spring - // application context initialsation) since it is required to - // to make queries related to the source database - HttpInvokerProxyFactoryBean proxy = new HttpInvokerProxyFactoryBean(); - proxy.setServiceInterface(IUserService.class); - // FIXME:Remoting need to fix this hardcoded url and make it configurable somehow - proxy.setServiceUrl(baseUrl + "/remoting-public/user.service"); - proxy.afterPropertiesSet(); - userService = (IUserService) proxy.getObject(); - - } /* (non-Javadoc) * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getBaseUrl() @@ -128,7 +110,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource { */ @Override public String getDbSchemaVersion() throws CdmSourceException { - return userService.getDbSchemaVersion(); + return metadataService.getDbSchemaVersion(); } @@ -137,7 +119,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource { */ @Override public boolean isDbEmpty() throws CdmSourceException { - return userService.isDbEmpty(); + return metadataService.isDbEmpty(); } @@ -151,7 +133,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource { // if no exception is thrown then we assume that the // connection is up // FIXME:Remoting is this really correct? - userService.getDbSchemaVersion(); + metadataService.getDbSchemaVersion(); return true; } @@ -167,7 +149,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource { @Override public Map getMetaDataMap() throws CdmSourceException { - return userService.getCdmMetadataMap(); + return metadataService.getCdmMetadataMap(); } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java index 2a2caea56..13b11ce11 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java @@ -33,6 +33,7 @@ import eu.etaxonomy.cdm.api.service.IGroupService; import eu.etaxonomy.cdm.api.service.IIdentificationKeyService; import eu.etaxonomy.cdm.api.service.ILocationService; import eu.etaxonomy.cdm.api.service.IMediaService; +import eu.etaxonomy.cdm.api.service.IMetadataService; import eu.etaxonomy.cdm.api.service.INameService; import eu.etaxonomy.cdm.api.service.IOccurrenceService; import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService; @@ -427,4 +428,12 @@ public class TransientCdmRepository implements ICdmApplicationConfiguration { public IProgressMonitorService getProgressMonitorService() { return defaultApplicationConfiguration.getProgressMonitorService(); } + + /** + * {@inheritDoc} + */ + @Override + public IMetadataService getMetadataService() { + return defaultApplicationConfiguration.getMetadataService(); + } }