import java.util.ArrayList;
import java.util.List;
-import eu.etaxonomy.cdm.api.service.ICommonService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.name.NonViralName;
return new ArrayList<INomenclaturalReference>();
}
try{
- return CdmStore.getService(ICommonService.class).findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
+ return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
}catch (MatchException e) {
MessagingUtils.error(this.getClass(), "Error finding matching references", e);
}
}
try{
- return CdmStore.getService(ICommonService.class).findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
+ return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
}catch (MatchException e) {
MessagingUtils.error(this.getClass(), "Error finding matching authors", e);
}
private List<TaxonNameBase> findMatchingLatinNames(TaxonNameBase taxonNameBase) {
try {
- return CdmStore.getService(ICommonService.class).findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
+ return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
} catch (MatchException e) {
MessagingUtils.error(this.getClass(), "Error finding matching names", e);
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+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;
return service;
}
+
+ /**
+ * Generic method that will scan the getters of {@link ICdmApplicationConfiguration} for the given service
+ * interface. If a matching getter is found the according service implementation is returned by
+ * invoking the getter otherwise the method returns <code>null</code>.
+ *
+ * @param <T>
+ * @param serviceClass
+ * @return the configured implementation of <code>serviceClass</code> or <code>null</code>
+ */
+ public static ICommonService getCommonService() {
+ ICdmApplicationConfiguration configuration = getCurrentApplicationConfiguration();
+
+ return configuration.getCommonService();
+
+ }
/**
* <p>
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Display;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
-import org.hibernate.proxy.AbstractLazyInitializer;
import org.springframework.core.io.Resource;
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
+import eu.etaxonomy.cdm.config.ICdmSource;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.ui.dialog.LoginDialog;
public IStatus run(final IProgressMonitor monitor) {
monitor.beginTask(getConnectionMessage(), 10);
-
+
// check if database is up and running
checkDatabaseReachable(monitor);
CdmProgressMonitorAdapter subprogressMonitor = CdmProgressMonitorAdapter
.CreateSubMonitor(monitor, 7);
// This is where we instantiate the application controller
+ int oldPriority = Thread.currentThread().getPriority();
try {
-
+ Thread.currentThread().setPriority(10);
applicationController = getApplicationController(cdmSource,subprogressMonitor);
-
} catch (Exception e) {
if(! causeIsCancelationExceptionRecursive(e)){
return new Status(IStatus.ERROR, "Could not connect to CDM Store", "An error occurred while trying to connect to datasource: " + cdmSource.getName(), e);
}
} finally {
monitor.done();
+ Thread.currentThread().setPriority(oldPriority);
}
}