merge taxeditor validation2 into trunk
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 19 Mar 2015 21:37:25 +0000 (21:37 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 19 Mar 2015 21:37:25 +0000 (21:37 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.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

index 23e6825e38192a9c63de4dd6f5e2daa86db0c334..df90397af4c901336471623a5ae1f7ac5fc24536 100644 (file)
@@ -6,7 +6,6 @@ package eu.etaxonomy.taxeditor.parser;
 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;
@@ -302,7 +301,7 @@ public class ParseHandler{
             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);
                }
@@ -320,7 +319,7 @@ public class ParseHandler{
                }
 
                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);
                }
@@ -334,7 +333,7 @@ public class ParseHandler{
        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);
index f6b224dfcdd64a69149303684001fb1937b22f60..e1957a87ffef4c0fc3ce56466588fc6aeb48b66b 100644 (file)
@@ -27,6 +27,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
 
 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;
@@ -285,6 +286,22 @@ public class CdmStore {
 
                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>
index 5387e723c860576136694cb0102361381a4a9044..e7c5aa0b74c608e7ec35e6b78ce4149637f486af 100644 (file)
@@ -18,21 +18,17 @@ import org.eclipse.core.runtime.IStatus;
 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;
@@ -68,7 +64,7 @@ class CdmStoreConnector extends Job {
        public IStatus run(final IProgressMonitor monitor) {
 
                monitor.beginTask(getConnectionMessage(), 10);
-
+               
                // check if database is up and running
                checkDatabaseReachable(monitor);
 
@@ -97,16 +93,17 @@ class CdmStoreConnector extends Job {
                        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);
                        }
                }