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;
+import eu.etaxonomy.cdm.api.longrunningService.ILongRunningTasksService;
import eu.etaxonomy.cdm.api.service.ITestService;
+import eu.etaxonomy.cdm.cache.CdmRemoteCacheManager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.common.monitor.NullProgressMonitor;
+import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
import eu.etaxonomy.cdm.io.service.IIOService;
-import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
import eu.etaxonomy.taxeditor.service.ICachedCommonService;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
new ClassPathResource("/eu/etaxonomy/cdm/remotingApplicationContext.xml");
private final Resource applicationContextResource;
private final IProgressMonitor progressMonitor;
+ private final ICdmRemoteSource remoteSource;
/**
this.applicationContextResource =
applicationContextResource != null ? applicationContextResource : DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE;
this.progressMonitor = progressMonitor != null ? progressMonitor : new NullProgressMonitor();
+ this.remoteSource = remoteSource;
setNewRemoteSource(remoteSource, validateXml, listeners);
}
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);
- }
- }
+ CdmRemoteCacheManager.removeEntityCaches();
progressMonitor.worked(1);
-
progressMonitor.subTask("Starting application context ...");
- applicationContext.refresh();
- applicationContext.start();
- setApplicationContext(applicationContext);
+ init();
progressMonitor.worked(1);
progressMonitor.done();
return true;
*/
@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() {
}
public IIOService getIOService(){
- return (IIOService) getBean("ioService");
+ return ((CdmApplicationRemoteConfiguration)configuration).getIOService();
+ }
+
+ public ILongRunningTasksService getLongRunningTasksService(){
+ return ((CdmApplicationRemoteConfiguration)configuration).getLongRunningTasksService();
}
public ITestService getTestService(){
- return (ITestService) getBean("testService");
+ return ((CdmApplicationRemoteConfiguration)configuration).getTestService();
}
public ICachedCommonService getCachedCommonService(){
- return (ICachedCommonService) getBean("cachedCommonService");
+ return ((CdmApplicationRemoteConfiguration)configuration).getCachedCommonService();
+ }
+
+ public IEditGeoService getEditGeoService() {
+ return ((CdmApplicationRemoteConfiguration)configuration).getEditGeoService();
}
}