Replace spring application context loading with programmatic loading
authorCherian Mathew <c.mathew@bgbm.org>
Mon, 7 Sep 2015 08:58:08 +0000 (10:58 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Mon, 7 Sep 2015 08:58:08 +0000 (10:58 +0200)
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailElement.java

index ec310b56397e1e6b3325ef8d7db894b57add55eb..f7c1b957c4e6825fb76bc8500153e79f2a4b50b5 100644 (file)
@@ -9,12 +9,25 @@
 \r
 package eu.etaxonomy.cdm.api.application;\r
 \r
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
 import org.apache.log4j.Logger;\r
 import org.springframework.beans.BeansException;\r
 import org.springframework.context.ApplicationContext;\r
 import org.springframework.context.ApplicationContextAware;\r
+import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean;\r
+import org.springframework.remoting.httpinvoker.HttpInvokerRequestExecutor;\r
+import org.springframework.security.access.AccessDecisionVoter;\r
+import org.springframework.security.authentication.AuthenticationProvider;\r
 import org.springframework.security.authentication.ProviderManager;\r
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;\r
+import org.springframework.security.authentication.dao.DaoAuthenticationProvider;\r
+import org.springframework.security.authentication.dao.ReflectionSaltSource;\r
+import org.springframework.security.authentication.encoding.Md5PasswordEncoder;\r
 import org.springframework.security.core.Authentication;\r
 import org.springframework.security.core.context.SecurityContext;\r
 import org.springframework.security.core.context.SecurityContextHolder;\r
@@ -48,6 +61,7 @@ import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.api.service.ITestService;\r
 import eu.etaxonomy.cdm.api.service.IUserService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.api.service.IWorkingSetService;\r
@@ -55,9 +69,22 @@ import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
 import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
 import eu.etaxonomy.cdm.ext.geo.IEditGeoService;\r
+import eu.etaxonomy.cdm.io.service.IIOService;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionEvaluator;\r
 import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.UnanimousBasedUnrevokable;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionBaseVoter;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionElementVoter;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.voter.GrantAlwaysVoter;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonBaseVoter;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonNodeVoter;\r
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;\r
+import eu.etaxonomy.taxeditor.service.CachedCommonServiceImpl;\r
+import eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor;\r
 import eu.etaxonomy.taxeditor.service.ICachedCommonService;\r
+import eu.etaxonomy.taxeditor.service.TermServiceRequestExecutor;\r
+import eu.etaxonomy.taxeditor.session.CdmEntitySessionManager;\r
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;\r
 \r
 \r
@@ -74,9 +101,50 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu
 \r
     protected ApplicationContext applicationContext;\r
 \r
+    private ICdmRemoteSource remoteSource;\r
+\r
+    private Map serviceMap = new HashMap<Class<IService>, IService>();\r
+\r
+    private ICdmEntitySessionManager cdmEntitySessionManager;\r
+\r
+    private CdmPermissionEvaluator cdmPermissionEvaluator;\r
+\r
+    private ProviderManager authenticationManager;\r
+\r
+    private ICachedCommonService cachedCommonService;\r
 \r
     public CdmApplicationRemoteConfiguration() {}\r
 \r
+    public CdmApplicationRemoteConfiguration(ICdmRemoteSource remoteSource) {\r
+        this.remoteSource = remoteSource;\r
+    }\r
+\r
+    public void setRemoteSource(ICdmRemoteSource remoteSource) {\r
+        this.remoteSource = remoteSource;\r
+    }\r
+\r
+    private Object getService(Class<?> clazz, String serviceSuffix, HttpInvokerRequestExecutor executor) {\r
+        if(serviceMap.containsKey(clazz)) {\r
+            return serviceMap.get(clazz);\r
+        }\r
+        String baseUrl;\r
+        if(remoteSource.getContextPath() == null || remoteSource.getContextPath().equals("")) {\r
+            baseUrl = "http://" + remoteSource.getServer() + ":" + String.valueOf(remoteSource.getPort());\r
+        } else {\r
+            baseUrl = "http://" + remoteSource.getServer()  + ":" + String.valueOf(remoteSource.getPort()) + "/" + remoteSource.getContextPath();\r
+        }\r
+        HttpInvokerProxyFactoryBean proxy = new HttpInvokerProxyFactoryBean();\r
+        proxy.setServiceInterface(clazz);\r
+        proxy.setServiceUrl(baseUrl + serviceSuffix);\r
+        if(executor != null) {\r
+            proxy.setHttpInvokerRequestExecutor(executor);\r
+        }\r
+        proxy.afterPropertiesSet();\r
+        Object service = proxy.getObject();\r
+        serviceMap.put(clazz,  service);\r
+        return service;\r
+    }\r
+\r
     // ****************************** APPLICATION CONTEXT *************************************************/\r
 \r
     @Override\r
@@ -98,19 +166,25 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu
      * @return\r
      */\r
     public IEditGeoService getEditGeoService() {\r
-        return (IEditGeoService)getBean("editGeoService");\r
+        return (IEditGeoService) getService(IEditGeoService.class, "/remoting/editgeo.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     /**\r
      * @return\r
      */\r
     public ICachedCommonService getCachedCommonService(){\r
-        return (ICachedCommonService) getBean("cachedCommonService");\r
+        if(cachedCommonService == null) {\r
+            cachedCommonService = new CachedCommonServiceImpl();\r
+        }\r
+        return cachedCommonService;\r
     }\r
 \r
 \r
     public ICdmEntitySessionManager getCdmEntitySessionManager() {\r
-        return (ICdmEntitySessionManager) getBean("cdmEntitySessionManager");\r
+        if(cdmEntitySessionManager == null) {\r
+            cdmEntitySessionManager = new CdmEntitySessionManager();\r
+        }\r
+        return cdmEntitySessionManager;\r
     }\r
 \r
 \r
@@ -122,108 +196,121 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu
 \r
     @Override\r
     public final Object getBean(String name){\r
-        return this.applicationContext.getBean(name);\r
+        throw new UnsupportedOperationException("getBean is not implemented for CdmApplicationRemoteConfiguration");\r
     }\r
 \r
     @Override\r
     public IAgentService getAgentService(){\r
-        return (IAgentService) getBean("agentService");\r
+        return (IAgentService) getService(IAgentService.class, "/remoting/agent.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IDatabaseService getDatabaseService(){\r
-        return (IDatabaseService) getBean("databaseService");\r
+        return (IDatabaseService) getService(IDatabaseService.class, "/remoting/database.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public INameService getNameService(){\r
-        return (INameService) getBean("nameService");\r
+        return (INameService) getService(INameService.class, "/remoting/name.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IReferenceService getReferenceService(){\r
-        return (IReferenceService) getBean("referenceService");\r
+        return (IReferenceService) getService(IReferenceService.class, "/remoting/reference.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ITaxonService getTaxonService(){\r
-        return (ITaxonService) getBean("taxonService");\r
+        return (ITaxonService) getService(ITaxonService.class, "/remoting/taxon.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IClassificationService getClassificationService(){\r
-        return (IClassificationService) getBean("classificationService");\r
+        return (IClassificationService) getService(IClassificationService.class, "/remoting/classification.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ITaxonNodeService getTaxonNodeService(){\r
-        return (ITaxonNodeService) getBean("taxonNodeService");\r
+        return (ITaxonNodeService) getService(ITaxonNodeService.class, "/remoting/taxonnode.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IDescriptionService getDescriptionService(){\r
-        return (IDescriptionService) getBean("descriptionService");\r
+        return (IDescriptionService) getService(IDescriptionService.class, "/remoting/description.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IOccurrenceService getOccurrenceService(){\r
-        return (IOccurrenceService) getBean("occurrenceService");\r
+        return (IOccurrenceService) getService(IOccurrenceService.class, "/remoting/occurrence.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IPrimerService getPrimerService(){\r
-        return (IPrimerService) getBean("primerService");\r
+        return (IPrimerService) getService(IPrimerService.class, "/remoting/primer.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IAmplificationService getAmplificationService(){\r
-        return (IAmplificationService) getBean("amplificationService");\r
+        return (IAmplificationService) getService(IAmplificationService.class, "/remoting/amplification.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ISequenceService getSequenceService(){\r
-        return (ISequenceService) getBean("sequenceService");\r
+        return (ISequenceService) getService(ISequenceService.class, "/remoting/sequence.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IMediaService getMediaService(){\r
-        return (IMediaService) getBean("mediaService");\r
+        return (IMediaService) getService(IMediaService.class, "/remoting/media.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ITermService getTermService(){\r
-        return (ITermService) getBean("termService");\r
+        return (ITermService) getService(ITermService.class, "/remoting/term.service", new TermServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ICommonService getCommonService(){\r
-        return (ICommonService) getBean("commonService");\r
+        return (ICommonService) getService(ICommonService.class, "/remoting/common.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ILocationService getLocationService(){\r
-        return (ILocationService) getBean("locationService");\r
+        return (ILocationService) getService(ILocationService.class, "/remoting/location.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IUserService getUserService(){\r
-        return (IUserService) getBean("userService");\r
+        return (IUserService) getService(IUserService.class, "/remoting-public/user.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IGrantedAuthorityService getGrantedAuthorityService(){\r
-        return (IGrantedAuthorityService) getBean("grantedAuthorityService");\r
+        return (IGrantedAuthorityService) getService(IGrantedAuthorityService.class, "/remoting/grantedauthority.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IService<CdmBase> getMainService(){\r
-        return (IService<CdmBase>) getBean("mainService");\r
+        return null;\r
     }\r
 \r
 \r
     @Override\r
     public ProviderManager getAuthenticationManager(){\r
-        return (ProviderManager) getBean("authenticationManager");\r
+        if(authenticationManager != null) {\r
+            return authenticationManager;\r
+        }\r
+        Md5PasswordEncoder passwordEncoder = new Md5PasswordEncoder();\r
+        ReflectionSaltSource saltSource = new ReflectionSaltSource();\r
+        saltSource.setUserPropertyToUse("getUsername");\r
+\r
+        DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider();\r
+        daoAuthenticationProvider.setUserDetailsService(getUserService());\r
+        daoAuthenticationProvider.setSaltSource(saltSource);\r
+        daoAuthenticationProvider.setPasswordEncoder(passwordEncoder);\r
+\r
+        authenticationManager = new ProviderManager(Arrays.asList((AuthenticationProvider)daoAuthenticationProvider));\r
+        return authenticationManager;\r
     }\r
 \r
 \r
@@ -234,65 +321,80 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu
 \r
     @Override\r
     public ICollectionService getCollectionService(){\r
-        return (ICollectionService) getBean("collectionService");\r
+        return (ICollectionService) getService(ICollectionService.class, "/remoting/collection.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IFeatureTreeService getFeatureTreeService(){\r
-        return (IFeatureTreeService) getBean("featureTreeService");\r
+        return (IFeatureTreeService) getService(IFeatureTreeService.class, "/remoting/featuretree.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IFeatureNodeService getFeatureNodeService(){\r
-        return (IFeatureNodeService) getBean("featureNodeService");\r
+        return (IFeatureNodeService) getService(IFeatureNodeService.class, "/remoting/featurenode.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IVocabularyService getVocabularyService(){\r
-        return (IVocabularyService) getBean("vocabularyService");\r
+        return (IVocabularyService) getService(IVocabularyService.class, "/remoting/vocabulary.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IIdentificationKeyService getIdentificationKeyService(){\r
-        return (IIdentificationKeyService) getBean("identificationKeyService");\r
+        return (IIdentificationKeyService) getService(IIdentificationKeyService.class, "/remoting/identificationkey.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IPolytomousKeyService getPolytomousKeyService(){\r
-        return (IPolytomousKeyService) getBean("polytomousKeyService");\r
+        return (IPolytomousKeyService) getService(IPolytomousKeyService.class, "/remoting/polytomouskey.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
 \r
     @Override\r
     public IPolytomousKeyNodeService getPolytomousKeyNodeService(){\r
-        return (IPolytomousKeyNodeService) getBean("polytomousKeyNodeService");\r
+        return (IPolytomousKeyNodeService) getService(IPolytomousKeyNodeService.class, "/remoting/polytomouskeynode.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IWorkingSetService getWorkingSetService(){\r
-        return (IWorkingSetService) getBean("workingSetService");\r
+        return (IWorkingSetService) getService(IWorkingSetService.class, "/remoting/workingset.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public IGroupService getGroupService(){\r
-        return (IGroupService) getBean("groupService");\r
+        return (IGroupService) getService(IGroupService.class, "/remoting/group.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
 \r
     @Override\r
     public IEntityValidationService getEntityValidationService(){\r
-        return (IEntityValidationService) getBean("entityValidationService");\r
+        return (IEntityValidationService) getService(IEntityValidationService.class, "/remoting/entityvalidation.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
 \r
     @Override\r
     public IEntityConstraintViolationService getEntityConstraintViolationService(){\r
-        return (IEntityConstraintViolationService) getBean("entityConstraintViolationService");\r
+        return (IEntityConstraintViolationService) getService(IEntityConstraintViolationService.class, "/remoting/entityconstraintviolation.service", new CdmServiceRequestExecutor());\r
     }\r
 \r
     @Override\r
     public ICdmPermissionEvaluator getPermissionEvaluator(){\r
-        return (ICdmPermissionEvaluator) getBean("cdmPermissionEvaluator");\r
+\r
+        if(cdmPermissionEvaluator != null) {\r
+            return cdmPermissionEvaluator;\r
+        }\r
+        List<AccessDecisionVoter> decisionVoters = new ArrayList<AccessDecisionVoter>();\r
+        decisionVoters.add(new GrantAlwaysVoter());\r
+        decisionVoters.add(new TaxonNodeVoter());\r
+        decisionVoters.add(new TaxonBaseVoter());\r
+        decisionVoters.add(new DescriptionBaseVoter());\r
+        decisionVoters.add(new DescriptionElementVoter());\r
+        UnanimousBasedUnrevokable accessDecisionManager = new UnanimousBasedUnrevokable(decisionVoters);\r
+\r
+        cdmPermissionEvaluator = new CdmPermissionEvaluator();\r
+        cdmPermissionEvaluator.setAccessDecisionManager(accessDecisionManager);\r
+\r
+        return cdmPermissionEvaluator;\r
     }\r
 \r
 \r
@@ -319,4 +421,12 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu
         SecurityContext context = SecurityContextHolder.getContext();\r
         context.setAuthentication(authentication);\r
     }\r
+\r
+    public IIOService getIOService() {\r
+        return (IIOService) getService(IIOService.class, "/remoting/io.service", new CdmServiceRequestExecutor());\r
+    }\r
+\r
+    public ITestService getTestService() {\r
+        return (ITestService) getService(ITestService.class, "/remoting/test.service", new CdmServiceRequestExecutor());\r
+    }\r
 }\r
index a0fa11a365a6e7ff7e9a79f86b7ee802c63aa88f..07890e6f1fa94fa3d1244a73b3171da46ed0ed9a 100644 (file)
 package eu.etaxonomy.cdm.api.application;
 
 import java.util.List;
-import java.util.Properties;
 
 import org.apache.log4j.Logger;
 import org.hibernate.collection.internal.AbstractPersistentCollection;
 import org.hibernate.proxy.AbstractLazyInitializer;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
 import org.springframework.context.ApplicationListener;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 
@@ -49,6 +45,7 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
             new ClassPathResource("/eu/etaxonomy/cdm/remotingApplicationContext.xml");
     private final Resource applicationContextResource;
     private final IProgressMonitor progressMonitor;
+    private ICdmRemoteSource remoteSource;
 
 
     /**
@@ -125,6 +122,7 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
         this.applicationContextResource =
                 applicationContextResource != null ? applicationContextResource : DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE;
         this.progressMonitor = progressMonitor != null ? progressMonitor : new NullProgressMonitor();
+        this.remoteSource = remoteSource;
         setNewRemoteSource(remoteSource, validateXml, listeners);
 
     }
@@ -146,40 +144,15 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
 
         logger.info("Connecting to '" + remoteSource.getName() + "'");
 
-        GenericApplicationContext applicationContext =  new GenericApplicationContext();
-
-        int nTasks = 3;
+        int nTasks = 2;
 
         progressMonitor.beginTask("Connecting to '" + remoteSource.getName() + "'", nTasks);
 
         progressMonitor.subTask("Initialising CDM Model Cache ...");
         CdmRemoteCacheManager.getInstance();
-
-        progressMonitor.subTask("Loading context beans ...");
-        PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
-        Properties properties = new Properties();
-        properties.setProperty("remoteServer", remoteSource.getServer());
-        properties.setProperty("remotePort", String.valueOf(remoteSource.getPort()));
-        properties.setProperty("remoteContext", remoteSource.getContextPath());
-        pspc.setProperties(properties);
-        applicationContext.addBeanFactoryPostProcessor(pspc);
-        applicationContext.getEnvironment().setActiveProfiles("remoting");
-        XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(applicationContext);
-        if(!validateXml) {
-            xmlReader.setValidating(false);
-        }
-        xmlReader.loadBeanDefinitions(applicationContextResource);
-        if (listeners != null){
-            for(ApplicationListener listener : listeners){
-                applicationContext.addApplicationListener(listener);
-            }
-        }
         progressMonitor.worked(1);
-
         progressMonitor.subTask("Starting application context ...");
-        applicationContext.refresh();
-        applicationContext.start();
-        setApplicationContext(applicationContext);
+        init();
         progressMonitor.worked(1);
         progressMonitor.done();
         return true;
@@ -192,14 +165,10 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
      */
     @Override
     protected void init(){
-
-        // retrieving the application configuration
-        configuration = (ICdmApplicationConfiguration)applicationContext.getBean("cdmApplicationRemoteConfiguration");
+        configuration = new CdmApplicationRemoteConfiguration(remoteSource);
+        ((CdmApplicationRemoteConfiguration)configuration).setApplicationContext(applicationContext);
         AbstractLazyInitializer.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
         AbstractPersistentCollection.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
-
-
-
     }
 
     public ICdmEntitySessionManager getCdmEntitySessionManager() {
@@ -207,14 +176,14 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
     }
 
     public IIOService getIOService(){
-        return (IIOService) getBean("ioService");
+        return ((CdmApplicationRemoteConfiguration)configuration).getIOService();
     }
 
     public ITestService getTestService(){
-        return (ITestService) getBean("testService");
+        return ((CdmApplicationRemoteConfiguration)configuration).getTestService();
     }
 
     public ICachedCommonService getCachedCommonService(){
-        return (ICachedCommonService) getBean("cachedCommonService");
+        return ((CdmApplicationRemoteConfiguration)configuration).getCachedCommonService();
     }
 }
index 3ce13bdd7686ce59bb18f1372570dcda193690e0..8d96d335990f46e0da8826e6be52b0a63e9667af 100644 (file)
@@ -32,7 +32,6 @@ import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
@@ -385,17 +384,6 @@ public class CdmStore {
         return getCurrentApplicationConfiguration().getPermissionEvaluator();
     }
 
-    /**
-     * <p>
-     * getGeoService
-     * </p>
-     *
-     * @return a {@link eu.etaxonomy.cdm.ext.geo.IEditGeoService} object.
-     */
-    public static IEditGeoService getGeoService() {
-        return (IEditGeoService) getCurrentApplicationConfiguration().getBean(
-                "editGeoService");
-    }
 
     /*
      * SECURITY RELATED CONVENIENCE METHODS
index 3c7ac77b13c7258f0942c8ce0dc368954d7dc1f3..f43e777dfceccfb9579e65e5ef91b50b550a0e0a 100644 (file)
@@ -210,7 +210,7 @@ class CdmStoreConnector extends Job {
 
                         if (!monitor.isCanceled()) {
                             CdmStore.setInstance(applicationController, cdmSource);
-                            monitor.subTask("Authenticating user and starting editor context...");
+                            monitor.subTask("Authenticating user");
                             display.syncExec(new Runnable() {
                                 /*
                                  * (non-Javadoc)
@@ -224,9 +224,7 @@ class CdmStoreConnector extends Job {
                                         // create new security context
                                         CdmStore.getLoginManager().doAuthenticate(loginDialog.getUsername(), loginDialog.getPassword());
                                         loginDialog.onComplete();
-                                        // start editor context
-                                        CdmStore.getContextManager().notifyContextStartWithoutDialog(monitor);
-
+                                        CdmStore.getContextManager().notifyContextStart();
                                     } catch(CdmAuthenticationException cae) {
                                         loginDialog.hide(false);
                                         loginDialog.setMessage(cae.getMessage());
index 3f4b2b5815296710cea7e4df5156f18ea3169554..e3021facf203f57fbf358539619f00bdf82624d9 100644 (file)
@@ -19,7 +19,9 @@ import java.util.Map;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Label;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
 import eu.etaxonomy.cdm.common.UriUtils;
+import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
@@ -109,7 +111,8 @@ public class FeatureDistributionDetailElement extends AbstractCdmDetailElement<F
 
                List<Language> languages = Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
 
-               String parameter = CdmStore.getGeoService().getDistributionServiceRequestParameterString(
+               IEditGeoService editGeoService = ((CdmApplicationRemoteConfiguration)CdmStore.getCurrentApplicationConfiguration()).getEditGeoService();
+               String parameter = editGeoService.getDistributionServiceRequestParameterString(
                                getTaxonDescriptions(),
                 false,
                 false,