merge-update from trunk
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 14 Oct 2014 10:45:33 +0000 (10:45 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 14 Oct 2014 10:45:33 +0000 (10:45 +0000)
88 files changed:
.gitattributes
.gitignore
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/update/P2Util.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditor.java
eu.etaxonomy.taxeditor.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.12.1-SNAPSHOT.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.1-SNAPSHOT.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmApplicationRemoteControllerTest.java [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmPersistentRemoteSourceTest.java [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteApplicationConfigurationTest.java [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteLazyLoadingTest.java [deleted file]
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInputDataChangeBehaviour.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/CdmAuthorityEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractGraphKeyEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistDropdownSelectionListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/DataImportEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java
eu.etaxonomy.taxeditor.remoting/.classpath [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/.project [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.pde.core.prefs [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/META-INF/MANIFEST.MF [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/build.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/pom.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/taxeditor/remoting/RemotingTestPluginActivator.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/config.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmRemoteSourceTest.java with 78% similarity]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/HttpInvokerServicesTest.java with 74% similarity]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmServiceCacherTest.java with 70% similarity]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemotePersistentCollectionTest.java with 59% similarity]
eu.etaxonomy.taxeditor.remoting/src/test/resources/datasources.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.h2.db [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.trace.db [new file with mode: 0644]
eu.etaxonomy.taxeditor.remoting/src/test/resources/unitils.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AuthorHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkable.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkableSelectionProvider.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/group/grantedauthority/CdmAuthorityCompositeViewer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchView.java
eu.etaxonomy.taxeditor/pom.xml

index d0ba8c7653d9041bd565f6518ebe40ef0c719e0c..3bdd135049398bdcf3b04cf8971e7bb1097f70e5 100644 (file)
@@ -222,6 +222,8 @@ eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.1.3.GA.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jdbc4-2.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.1.3.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.12.1-SNAPSHOT.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.1-SNAPSHOT.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.1.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar -text
@@ -341,14 +343,6 @@ eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicati
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmApplicationRemoteControllerTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmPersistentRemoteSourceTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmRemoteSourceTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmServiceCacherTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/HttpInvokerServicesTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteApplicationConfigurationTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteLazyLoadingTest.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemotePersistentCollectionTest.java -text
 eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml -text
 eu.etaxonomy.taxeditor.editor/.classpath -text
 eu.etaxonomy.taxeditor.editor/.project -text
@@ -1019,6 +1013,50 @@ eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/print
 eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectServiceWizardPage.java -text
 eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectStylesheetWizardPage.java -text
 eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectTaxaWizardPage.java -text
+eu.etaxonomy.taxeditor.remoting/.classpath -text
+eu.etaxonomy.taxeditor.remoting/.project -text
+eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.jdt.core.prefs -text
+eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.pde.core.prefs -text
+eu.etaxonomy.taxeditor.remoting/META-INF/MANIFEST.MF -text
+eu.etaxonomy.taxeditor.remoting/build.properties -text
+eu.etaxonomy.taxeditor.remoting/pom.xml -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/taxeditor/remoting/RemotingTestPluginActivator.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/config.properties -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml -text
+eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/datasources.xml -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.h2.db -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.trace.db -text
+eu.etaxonomy.taxeditor.remoting/src/test/resources/unitils.properties -text
 eu.etaxonomy.taxeditor.store/.classpath -text
 eu.etaxonomy.taxeditor.store/.project -text
 eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF -text
@@ -1277,7 +1315,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureN
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ICdmEditorHandle.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IContextListener.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDataChangeBehavior.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkableSelectionProvider.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkable.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IElementHasDetails.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IPartChangeListener.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IPartContentHasDetails.java -text
index 5c8b928b8e9810e6ba3615b0efdeead665c5c54d..15187a3bd1e92944a0cc4086f50ff556e3bb9f93 100644 (file)
@@ -31,6 +31,8 @@ eu.etaxonomy.taxeditor.navigation/.settings
 eu.etaxonomy.taxeditor.navigation/target
 eu.etaxonomy.taxeditor.printpublisher/.settings
 eu.etaxonomy.taxeditor.printpublisher/target
+eu.etaxonomy.taxeditor.remoting/lib/*
+eu.etaxonomy.taxeditor.remoting/target
 eu.etaxonomy.taxeditor.store/.settings
 eu.etaxonomy.taxeditor.store/hibernate.log
 eu.etaxonomy.taxeditor.store/target
index 0c9d0d78da97a9c19824ddc10638ba79041c826a..d4c616a67dcc0f4318f0bf772f4204e3eebe6d7d 100644 (file)
@@ -11,6 +11,7 @@ Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.apache.log4j,
  org.eclipse.equinox.app,
+ org.eclipse.equinox.p2.repository.metadata,
  org.osgi.framework,
  org.osgi.service.packageadmin
 Require-Bundle: org.eclipse.ui,
@@ -29,5 +30,7 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.equinox.p2.updatechecker,
  org.eclipse.equinox.p2.operations,
  org.eclipse.help.ui,
- org.eclipse.equinox.p2.metadata;bundle-version="2.1.0",
- org.eclipse.equinox.p2.engine;bundle-version="2.1.1"
+ org.eclipse.equinox.p2.metadata,
+ org.eclipse.equinox.p2.engine,
+ org.eclipse.equinox.p2.metadata.repository,
+ org.eclipse.equinox.p2.repository
index 99f3432ff90fc4e51aa825534f61651b68c2b10e..5e597395afce03c467d8f912fc5c1d0419fa6869 100644 (file)
@@ -61,10 +61,18 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
             CdmStore.connect();
         }
 
-               P2Util.setDefaultUpdateRepositories();
+               P2Util.setP2UpdateRepositories();
 
        }
 
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#postWindowClose()
+        */
+       @Override
+    public void postWindowClose() {
+        P2Util.saveP2RepositoryPreferences();
+    }
+
        private int authenticate(){
                Shell shell = TaxonomicEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
 
index e666929acc0b96365cf295874c7fdef93a2c2738..9e1731c4cf7cdcc7c73745e5bcf39b1d8ef705b1 100644 (file)
@@ -2,19 +2,29 @@ package eu.etaxonomy.taxeditor.update;
 
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.IJobChangeEvent;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
 import org.eclipse.equinox.internal.p2.ui.model.ElementUtils;
 import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement;
+import org.eclipse.equinox.p2.repository.IRepository;
+import org.eclipse.equinox.p2.repository.IRepositoryManager;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
 import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.equinox.p2.core.ProvisionException;
 import org.eclipse.equinox.p2.operations.ProvisioningJob;
 import org.eclipse.equinox.p2.operations.ProvisioningSession;
+import org.eclipse.equinox.p2.operations.RepositoryTracker;
 import org.eclipse.equinox.p2.operations.Update;
 import org.eclipse.equinox.p2.operations.UpdateOperation;
 import org.eclipse.equinox.p2.ui.ProvisioningUI;
@@ -26,6 +36,7 @@ import org.osgi.framework.ServiceReference;
 import eu.etaxonomy.taxeditor.ApplicationUtil;
 import eu.etaxonomy.taxeditor.TaxonomicEditorPlugin;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * This class is a utility class for updating the editor from a p2 update site,
@@ -36,10 +47,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * - Allow configurable update sites
  *
  * Notes :
- * - tried to get rid of the popup dialog which warns about unsigned jars using
- *   -Declipse.p2.unsignedPolicy=allow but this does not work due to
- *   https://bugs.eclipse.org/bugs/show_bug.cgi?id=391399, so the only solution
- *   is to sign the jars with an official certificate.
+ *
  *
  * @see http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
  * @see http://bugs.eclipse.org/281226
@@ -48,6 +56,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 public class P2Util {
 
     //private static String LOCAL_UPDATE_SITE = "file:///path/.../to/Development/EDIT/taxeditor/eu.etaxonomy.taxeditor/target/repository/";
+
     private static String EDIT_NIGHTLY_UPDATE_SITE = "http://cybertaxonomy.eu/download/taxeditor/update/nightly/";
     private static String EDIT_NIGHTLY_UPDATE_SITE_NAME = "Taxonomic Editor Nightly";
 
@@ -57,8 +66,12 @@ public class P2Util {
     private static String EDIT_STABLE_UPDATE_SITE = "http://cybertaxonomy.eu/download/taxeditor/update/stable/";
     private static String EDIT_STABLE_UPDATE_SITE_NAME = "Taxonomic Editor Stable";
 
+    /**
+     * Retrieve and load the saved list of repositories from the preference store,
+     * making sure that at least the default repository is always loaded.
+     */
     @SuppressWarnings("restriction")
-    public static void setDefaultUpdateRepositories() {
+    public static void setP2UpdateRepositories() {
         String updateSite = EDIT_NIGHTLY_UPDATE_SITE;
         String updateSiteName = EDIT_NIGHTLY_UPDATE_SITE_NAME;
 
@@ -66,19 +79,67 @@ public class P2Util {
             updateSite = EDIT_STABLE_UPDATE_SITE;
             updateSiteName = EDIT_STABLE_UPDATE_SITE_NAME;
         }
-        try {
-          final MetadataRepositoryElement element = new MetadataRepositoryElement(null, new URI(updateSite), true);
-          element.setNickname(updateSiteName);
-          ElementUtils.updateRepositoryUsingElements(ProvisioningUI.getDefaultUI(),new MetadataRepositoryElement[] {element}, null);
-        } catch (URISyntaxException e) {
-            MessagingUtils.errorDialog("Invalid update site URI",
-                    P2Util.class,
-                    "The update site URI has an invalid syntax",
-                    TaxonomicEditorPlugin.PLUGIN_ID,
-                    e,
-                    false);
+        List<MetadataRepositoryElement> repoElements = new ArrayList<MetadataRepositoryElement>();
+        List<MetadataRepositoryElement> savedRepoElements = PreferencesUtil.getP2Repositories();
+        if(savedRepoElements.isEmpty()) {
+            // we always need an update site, so we add the default one
+            try {
+                MetadataRepositoryElement element = new MetadataRepositoryElement(null, new URI(updateSite), true);
+                element.setNickname(updateSiteName);
+                repoElements.add(element);
+            } catch (URISyntaxException e) {
+                MessagingUtils.errorDialog("Invalid update site URI",
+                        P2Util.class,
+                        "The update site URI has an invalid syntax",
+                        TaxonomicEditorPlugin.PLUGIN_ID,
+                        e,
+                        false);
+            }
+        }
+        repoElements.addAll(savedRepoElements);
+
+        ElementUtils.updateRepositoryUsingElements(ProvisioningUI.getDefaultUI(),repoElements
+                .toArray(new MetadataRepositoryElement[]{} ), null);
+
+    }
+
+    /**
+     * {@link org.eclipse.equinox.p2.ui.RepositoryManipulationPage} which handles the repsitory site list
+     * in preferences does not create a preference store and hence the changes are not saved. This means
+     * that we need to save it ourselves.
+     *
+     * This method saves the list of current repositories in the preference store as a string with
+     * specific delimiters.
+     */
+
+    public static void saveP2RepositoryPreferences() {
+
+        IMetadataRepositoryManager metaManager = ProvUI.getMetadataRepositoryManager(ProvisioningUI.getDefaultUI().getSession());
+
+        URI[] currentlyEnabled = metaManager.getKnownRepositories(IRepositoryManager.REPOSITORIES_ALL);
+        URI[] currentlyDisabled = metaManager.getKnownRepositories(IRepositoryManager.REPOSITORIES_DISABLED);
+
+        List<MetadataRepositoryElement> repoElements = new ArrayList<MetadataRepositoryElement>();
+
+        for(URI repo : currentlyEnabled) {
+            boolean enabled = true;
+            String nickname = metaManager.getRepositoryProperty(repo, IRepository.PROP_NICKNAME);
+            MetadataRepositoryElement element = new MetadataRepositoryElement(null, repo, true);
+            element.setNickname(nickname);
+            element.setEnabled(enabled);
+            repoElements.add(element);
         }
-      }
+
+        for(URI repo : currentlyDisabled) {
+            boolean enabled = false;
+            String nickname = metaManager.getRepositoryProperty(repo, IRepository.PROP_NICKNAME);
+            MetadataRepositoryElement element = new MetadataRepositoryElement(null, repo, true);
+            element.setNickname(nickname);
+            element.setEnabled(enabled);
+            repoElements.add(element);
+        }
+        PreferencesUtil.setP2Repositories(repoElements);
+    }
 
     /**
      *
index 73bf55b4539c60bd16f84dcfbdb85d191291f4a3..48e604b2dfa5827112b73199ebd58b4c68cb387a 100644 (file)
@@ -42,7 +42,7 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -58,7 +58,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDetails, IPartContentHasMedia,
-        IDirtyMarkableSelectionProvider {
+        IDirtyMarkable {
 
        /** Constant <code>ID="bulkeditor.editor"</code> */
        public static final String ID = "bulkeditor.editor";
index c150e4898e6bddc4f15fb0f5e6149c8a67723709..912d844decb3b9b5dd144a9526e1295e991e952c 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src/main/java"/>
-       <classpathentry kind="src" path="src/test/java"/>
-       <classpathentry kind="src" path="src/main/resources"/>
-       <classpathentry kind="src" path="src/test/resources"/>
-       <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.7.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.7.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-commons-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-ext-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-io-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-persistence-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-print-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-remote-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-services-3.3.8-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-2.2.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.8.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-codec-20041127.091804.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar" sourcepath="lib/commons-dbcp-1.4-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/easymock-3.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.9.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/guava-r05.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/h2-1.3.170.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-4.1.10.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-4.0.1.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-4.1.10.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-4.1.10.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-4.1.10.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-4.2.0.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-4.2.0.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-4.3.1.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hsqldb-1.8.0.10.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/httpclient-4.2.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/httpcore-4.2.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.4.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/javassist-3.17.1-GA.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-impl-2.2-EA.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2-EA.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.1.3.GA.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/joda-time-2.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/junit-4.11.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.5.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-core-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-facet-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-kuromoji-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-memory-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-misc-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-phonetic-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-queries-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-smartcn-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-spatial-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-spellchecker-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/lucene-stempel-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.24.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.eclipse.equinox.common-3.6.0.v20110523.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.aop-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.aspects-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.beans-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.core-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.expression-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.jdbc-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.jdbc-3.2.2.RELEASE-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.orm-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.orm-3.2.2.RELEASE-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.oxm-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.test-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.transaction-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.transaction-3.2.2.RELEASE-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.web-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.web.servlet-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/p6spy-1.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/plexus-utils-2.0.5.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/poi-3.9.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/postgresql-9.1-901.jdbc4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-aop-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-beans-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-context-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-context-support-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-core-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-expression-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-security-config-3.1.3.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-security-core-3.1.3.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.3.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/validation-api-1.0.0.GA.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xalan-2.6.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xmlParserAPIs-2.6.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xom-1.0.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.4.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-security-remoting-3.1.3.RELEASE.jar"/>
-       <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.1-SNAPSHOT.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jena-core-2.12.1-SNAPSHOT.jar"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+       <classpathentry kind="src" path="src/main/java"/>\r
+       <classpathentry kind="src" path="src/test/java"/>\r
+       <classpathentry kind="src" path="src/main/resources"/>\r
+       <classpathentry kind="src" path="src/test/resources"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.7.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.7.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-commons-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-ext-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-io-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-persistence-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-print-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-remote-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.8-SNAPSHOT.jar" sourcepath="lib/cdmlib-services-3.3.8-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-2.2.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.8.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-codec-20041127.091804.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar" sourcepath="lib/commons-dbcp-1.4-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/easymock-3.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.9.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/guava-r05.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/h2-1.3.170.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-4.1.10.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-4.0.1.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-4.1.10.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-4.1.10.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-4.1.10.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-4.2.0.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-4.2.0.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-4.3.1.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/hsqldb-1.8.0.10.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/httpclient-4.2.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/httpcore-4.2.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0-SNAPSHOT.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.4.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/javassist-3.17.1-GA.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-impl-2.2-EA.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2-EA.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.1.3.GA.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/joda-time-2.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/junit-4.11.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.5.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-core-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-facet-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-kuromoji-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-memory-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-misc-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-phonetic-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-queries-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-smartcn-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-spatial-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-spellchecker-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/lucene-stempel-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.24.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.eclipse.equinox.common-3.6.0.v20110523.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.aop-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.aspects-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.beans-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.core-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.expression-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.jdbc-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.jdbc-3.2.2.RELEASE-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.orm-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.orm-3.2.2.RELEASE-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.oxm-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.test-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.transaction-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.transaction-3.2.2.RELEASE-sources.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.web-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.web.servlet-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/p6spy-1.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/plexus-utils-2.0.5.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/poi-3.9.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/postgresql-9.1-901.jdbc4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-aop-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-beans-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-context-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-context-support-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-core-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-expression-3.2.2.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-config-3.1.3.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-core-3.1.3.RELEASE.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.3.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/validation-api-1.0.0.GA.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xalan-2.6.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xmlParserAPIs-2.6.2.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xom-1.0.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.4.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>\r
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-remoting-3.1.3.RELEASE.jar"/>\r
+       <classpathentry kind="output" path="target/classes"/>\r
+</classpath>\r
index b52008530002758325b74253895039b113638d56..c3915b9b72f85341cb887a90a5bc3d3b39ca1744 100644 (file)
@@ -76,7 +76,6 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.io.specimen.abcd206.in,
  eu.etaxonomy.cdm.io.specimen.excel.in,
  eu.etaxonomy.cdm.io.taxonx,
- eu.etaxonomy.cdm.io.tcsrdf,
  eu.etaxonomy.cdm.io.tcsxml,
  eu.etaxonomy.cdm.io.tcsxml.in,
  eu.etaxonomy.cdm.io.tcsxml.out,
@@ -610,5 +609,7 @@ Bundle-ClassPath: .,
  lib/google-api-translate-java-0.92.jar,
  lib/odfdom-0.8.jar,
  lib/h2mig_pagestore_addon.jar,
- lib/spring-security-remoting-3.1.3.RELEASE.jar
+ lib/spring-security-remoting-3.1.3.RELEASE.jar,
+ lib/jena-core-2.12.1-SNAPSHOT.jar,
+ lib/jena-iri-1.1.1-SNAPSHOT.jar
 Import-Package: eu.etaxonomy.cdm.api.application
index 5010f5723bb60387da3700ceb8a61b4d18a437dc..a022a611f711f41c29830b620f6d691a4420bb3c 100644 (file)
@@ -202,7 +202,9 @@ bin.includes = META-INF/,\
                lib/google-api-translate-java-0.92.jar,\\r
                lib/odfdom-0.8.jar,\\r
                lib/h2mig_pagestore_addon.jar,\\r
-               lib/spring-security-remoting-3.1.3.RELEASE.jar\r
+               lib/spring-security-remoting-3.1.3.RELEASE.jar,\\r
+               lib/jena-core-2.12.1-SNAPSHOT.jar,\\r
+               lib/jena-iri-1.1.1-SNAPSHOT.jar\r
 jars.compile.order = .\r
 output.. = bin/\r
 source.. = src/main/java/,\\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.12.1-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.12.1-SNAPSHOT.jar
new file mode 100644 (file)
index 0000000..f30c940
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.12.1-SNAPSHOT.jar differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.1-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.1-SNAPSHOT.jar
new file mode 100644 (file)
index 0000000..0c8b18e
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.1-SNAPSHOT.jar differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmApplicationRemoteControllerTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmApplicationRemoteControllerTest.java
deleted file mode 100644 (file)
index 38782d8..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.remoting;
-
-import java.io.FileNotFoundException;
-import java.util.List;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-import org.springframework.remoting.RemoteConnectFailureException;
-import org.unitils.UnitilsJUnit4;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.remote.CdmRemoteSource;
-
-
-/**
- * Class to test the {@link CdmApplicationRemoteController}
- *
- */
-public class CdmApplicationRemoteControllerTest extends UnitilsJUnit4 {
-       private static final Logger logger = Logger.getLogger(CdmApplicationRemoteControllerTest.class);
-
-       
-       @BeforeClass
-       public static void initialize() {
-               Logger.getRootLogger().setLevel(Level.INFO);
-               
-       }
-       
-       @Test
-       public void whenInitializingControllerWithDefaultContextThenSucceed() {
-               CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
-               CdmApplicationRemoteController controller = 
-                               CdmApplicationRemoteController.NewInstance(remoteSource, 
-                                               false, 
-                                               null, 
-                                               null);
-               controller = 
-                               CdmApplicationRemoteController.NewInstance(CdmApplicationRemoteController.DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE,
-                                               remoteSource, 
-                                               false, 
-                                               null, 
-                                               null);
-       }
-       
-       @Test
-       public void whenInitializingControllerWithInvalidContextThenFail() {
-               CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
-               Resource wrongResource = 
-                               new ClassPathResource("/eu/etaxonomy/cdm/wrongRemotingApplicationContext.xml");
-               try {
-                       CdmApplicationRemoteController controller = 
-                                       CdmApplicationRemoteController.NewInstance(wrongResource,
-                                                       remoteSource, 
-                                                       false, 
-                                                       null, 
-                                                       null);
-                       Assert.fail("Remote controller should fail when initialised with an invalid context file");
-               } catch(RuntimeException re) {
-                       Throwable t = re.getCause();
-                       if(t instanceof FileNotFoundException) {
-                               logger.info(t.getClass().getCanonicalName() + " : " + t.getMessage());
-                       } else {
-                               throw re;
-                       }
-               }
-
-       }
-
-       
-       @Test
-       public void whenConnectingToAnActiveServerThenSucceed() {
-               CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
-               CdmApplicationRemoteController controller = 
-                               CdmApplicationRemoteController.NewInstance(remoteSource, 
-                                               false, 
-                                               null, 
-                                               null);
-               // call any service to check if the connection worked
-               IClassificationService classificationService= controller.getClassificationService();
-               List<Classification> classifications = classificationService.listClassifications(1,0,null,null);        
-               Assert.assertTrue("We should have at least one classification",classifications.size() > 0);
-               
-       }
-       
-       @Test
-       public void whenConnectingToInactiveServerThenFail() {
-               CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8090, "", NomenclaturalCode.ICNAFP);
-
-               CdmApplicationRemoteController controller = 
-                               CdmApplicationRemoteController.NewInstance(remoteSource, 
-                                               false, 
-                                               null, 
-                                               null);
-
-
-               // call any service to check if the connection worked
-               try {
-                       IClassificationService classificationService= controller.getClassificationService();
-                       List<Classification> classifications = classificationService.listClassifications(1,0,null,null);        
-                       Assert.fail("Calling remote service should fail when connecting to an inactive CDM Server");
-               } catch(RemoteConnectFailureException rcfe) {
-
-               }
-
-       }       
-}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmPersistentRemoteSourceTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmPersistentRemoteSourceTest.java
deleted file mode 100644 (file)
index c601d3a..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.remoting;
-
-
-import java.util.Map;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.unitils.UnitilsJUnit4;
-
-import static org.hamcrest.CoreMatchers.*;
-
-import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
-import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
-import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.cdm.remote.CdmPersistentRemoteSource;
-import eu.etaxonomy.cdm.remote.CdmRemoteSource;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
-
-/**
- * Class to test the cdm persistent source functionality, including
- * initialising / saving / updating and deleting 
- * 
- * Corresponding test sources settings can be found at 
- * /src/text/resources/eu.etaxonomy.cdm/cdm.datasources.xml
- *
- */
-public class CdmPersistentRemoteSourceTest extends UnitilsJUnit4 {
-       private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSourceTest.class);
-       
-       private CdmPersistentRemoteSource remotePersistentSource;
-
-       @BeforeClass
-       public static void initialize() {
-               Logger.getRootLogger().setLevel(Level.INFO);
-               
-       }
-       
-       @Test
-       public void whenLoadingExistingCompleteRemoteSourceThenLoadIsSuccessful() {
-
-               try {
-                       remotePersistentSource = CdmPersistentRemoteSource.NewInstance("default");
-
-                       String expectedServer = "127.0.0.1";
-                       String expectedPort = "8080";
-                       String expectedContextPath = "";
-                       logger.info("Default remote source server : " + remotePersistentSource.getServer());
-                       Assert.assertTrue("Default server should be " + expectedServer,
-                                       expectedServer.equals(remotePersistentSource.getServer()));
-
-                       logger.info("Default remote source port : " + remotePersistentSource.getPort());
-                       Assert.assertTrue("Default port should be " + 8080,
-                                       expectedPort.equals(String.valueOf(remotePersistentSource.getPort())));
-
-                       logger.info("Default remote source context path : " + remotePersistentSource.getContextPath());
-                       Assert.assertTrue("Default remote source context path should be " + expectedContextPath, 
-                                       expectedContextPath.equals(remotePersistentSource.getContextPath()));
-                       
-                       logger.info("Default remote source nomenclatural code : " + remotePersistentSource.getNomenclaturalCode().toString());
-                       Assert.assertTrue("Default NomenclaturalCode should be ICNAFP", 
-                                       NomenclaturalCode.ICNAFP.equals(remotePersistentSource.getNomenclaturalCode()));
-                       
-               } catch (CdmRemoteSourceException e) {
-                       Assert.fail("Initialising an existing remote source should not throw an exception");
-               }                       
-       }
-       
-
-       
-       
-       @Test
-       public void whenConnectingToAnActiveServerThenConnectSuccessfully() {
-               // check if active server throws the right exception
-               try {
-                       remotePersistentSource = CdmPersistentRemoteSource.NewInstance("default");
-
-                       String dbSchemaVersion = "";
-                       try {
-                               dbSchemaVersion = remotePersistentSource.getDbSchemaVersion();
-                       } catch (CdmSourceException e) {
-                               Assert.fail("getDbSchemaVersion() on active cdm server should not have thrown CdmSourceException");
-                       }
-                       logger.info("dbSchemaVersion is " + dbSchemaVersion);
-
-
-                       boolean isDbEmpty = false;
-                       try {
-                               isDbEmpty = remotePersistentSource.isDbEmpty();
-                       } catch (CdmSourceException e) {
-                               Assert.fail("isDbEmpty() on active cdm server should not have thrown CdmSourceException");
-                       }
-                       Assert.assertFalse(isDbEmpty);
-
-
-                       boolean check = false;
-                       try {
-                               check = remotePersistentSource.checkConnection();
-                       } catch (CdmSourceException e) {
-                               Assert.fail("checkConnection() on active cdm server should not have thrown CdmSourceException");
-                       }
-                       Assert.assertTrue(check);
-               } catch (CdmRemoteSourceException e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               }
-               
-       }
-       
-       @Test
-       public void whenRequestingMetadatFromRemoteSourceThenMetaDataIsRetrieved() {
-               try {
-                       remotePersistentSource = CdmPersistentRemoteSource.NewInstance("default");
-                       Map<MetaDataPropertyName, String> cdmMetaDataMap = remotePersistentSource.getMetaDataMap();
-                       for(MetaDataPropertyName mdpn : cdmMetaDataMap.keySet()) {
-                               String value = cdmMetaDataMap.get(mdpn);
-                               logger.info("MetaData Property " + mdpn.name() + " has value " + value);
-                               Assert.assertNotNull("Meta Data Value for property for " + mdpn.name() + " should not be null", value);                         
-                       }
-                       
-               } catch (CdmRemoteSourceException e) {
-                       Assert.fail("Initialising an existing remote source should not throw an exception");
-               } catch (CdmSourceException e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
-       }
-       
-       @Test
-       public void whenLoadingNonExistingRemoteSourceThenThrowException() {
-               try {
-                       remotePersistentSource = CdmPersistentRemoteSource.NewInstance("nonExistingSource");
-                       Assert.fail("Initialising a non-existing remote source should throw an exception");
-               } catch (CdmRemoteSourceException e) {
-                       logger.info(e.getMessage());
-               }       
-       }
-       
-       @Test
-       public void whenLoadingExistingIncompleteRemoteSourceThenThrowException() {
-               try {
-                       remotePersistentSource = CdmPersistentRemoteSource.NewInstance("incomplete");
-                       Assert.fail("Initialising an incomplete remote source should throw an exception");
-               } catch (CdmRemoteSourceException e) {
-                       Assert.assertThat(e.getMessage(), containsString("Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing"));
-               }       
-       }
-       
-       @Test
-       public void whenSavingUpdatingDeletingNewCompleteRemoteSourceThenSaveUpdateDeleteIsSuccessful() {
-               String strRemoteSource = "local";
-               Assert.assertFalse("New remote source '" + strRemoteSource + "' should not yet exist in source settings file",
-                               CdmPersistentRemoteSource.exists(strRemoteSource));
-               try {
-                       ICdmRemoteSource remoteSource = 
-                                       CdmRemoteSource.NewInstance(strRemoteSource, 
-                                                       "127.0.0.1", 
-                                                       8080, 
-                                                       "col", 
-                                                       NomenclaturalCode.ICNAFP); 
-                       remotePersistentSource = CdmPersistentRemoteSource.save(strRemoteSource,remoteSource);
-                       
-                       logger.info("Server : " + remotePersistentSource.getServer());
-                       Assert.assertTrue("Server value should be equal",
-                                       remoteSource.getServer().equals(remotePersistentSource.getServer()));
-                       
-                       logger.info("Port : " + remotePersistentSource.getPort());
-                       Assert.assertTrue("Port value should be equal",
-                                       remoteSource.getPort() == remotePersistentSource.getPort());
-                       
-                       logger.info("Context Path : " + remotePersistentSource.getContextPath());
-                       Assert.assertTrue("Context Path value should be equal",
-                                       remoteSource.getContextPath().equals(remotePersistentSource.getContextPath()));
-                       
-                       logger.info("Nomenclatural Code : " + remotePersistentSource.getNomenclaturalCode().name());
-                       Assert.assertTrue("Nomenclatural Code value should be equal",
-                                       remoteSource.getNomenclaturalCode().name().equals(remotePersistentSource.getNomenclaturalCode().name()));
-                       
-                       Assert.assertTrue("New remote source '" + strRemoteSource + "' should be saved in source settings file",
-                                       CdmPersistentRemoteSource.exists(strRemoteSource));
-                       
-                       remoteSource = CdmRemoteSource.NewInstance(strRemoteSource, 
-                                       "127.0.0.55", 
-                                       9090, 
-                                       "cyprus", 
-                                       NomenclaturalCode.ICNB); 
-                       remotePersistentSource = CdmPersistentRemoteSource.update(strRemoteSource,remoteSource);
-                       
-                       logger.info("Server : " + remotePersistentSource.getServer());
-                       Assert.assertTrue("Server value should be equal",
-                                       remoteSource.getServer().equals(remotePersistentSource.getServer()));
-                       
-                       logger.info("Port : " + remotePersistentSource.getPort());
-                       Assert.assertTrue("Port value should be equal",
-                                       remoteSource.getPort() == remotePersistentSource.getPort());
-                       
-                       logger.info("Context Path : " + remotePersistentSource.getContextPath());
-                       Assert.assertTrue("Context Path value should be equal",
-                                       remoteSource.getContextPath().equals(remotePersistentSource.getContextPath()));
-                       
-                       logger.info("Nomenclatural Code : " + remotePersistentSource.getNomenclaturalCode().name());
-                       Assert.assertTrue("Nomenclatural Code value should be equal",
-                                       remoteSource.getNomenclaturalCode().name().equals(remotePersistentSource.getNomenclaturalCode().name()));
-                       
-                       Assert.assertTrue("New remote source '" + strRemoteSource + "' should be saved in source settings file",
-                                       CdmPersistentRemoteSource.exists(strRemoteSource));
-                       
-                       CdmPersistentSourceUtils.delete(remotePersistentSource);
-                       
-                       Assert.assertFalse("New remote source '" + strRemoteSource + "' should no longer exist in source settings file",
-                                       CdmPersistentRemoteSource.exists(strRemoteSource));
-                                                                       
-               } catch (CdmRemoteSourceException e) {
-                       Assert.fail("Saving a new complete remote source should not throw an exception");
-                       logger.info(e.getMessage());
-               }       
-       }
-       
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteApplicationConfigurationTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteApplicationConfigurationTest.java
deleted file mode 100644 (file)
index d0fb727..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.remoting;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
-import org.hibernate.proxy.AbstractLazyInitializer;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-import org.unitils.UnitilsJUnit4;
-
-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.CdmSourceException;
-import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
-import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.cdm.remote.CdmRemoteSource;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
-
-/**
- * Base class for remoting tests, responsible mainly for setting up the 
- * remote configuration.
- * 
- * @author c.mathew
- * @created 13.032014
- */
-@Ignore
-public class RemoteApplicationConfigurationTest extends UnitilsJUnit4 {
-       private static final Logger logger = Logger.getLogger(RemoteLazyLoadingTest.class);
-       
-       protected static ICdmApplicationConfiguration applicationController;
-       /**
-        * @throws DataSourceNotFoundException 
-        */
-       @BeforeClass
-       public static void initializeContext() throws DataSourceNotFoundException {
-               Logger.getRootLogger().setLevel(Level.INFO);
-               ICdmRemoteSource crs = CdmRemoteSource.NewInstance("local-cdm", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
-               applicationController = 
-                               CdmApplicationRemoteController.NewInstance(crs, 
-                                               false, 
-                                               null,                                           
-                                               null);
-       }       
-}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteLazyLoadingTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteLazyLoadingTest.java
deleted file mode 100644 (file)
index ee0c8f3..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.remoting;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.Ignore;
-
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-
-
-
-/**
- * Test class which tests remoting for persistent cdm entities. 
- * 
- * FIXME:Remoting saving tests are ignored until the merge development is underway
- * @author c.mathew
- *
- */
-
-public class RemoteLazyLoadingTest extends RemoteApplicationConfigurationTest {
-       
-       private static final Logger logger = Logger.getLogger(RemoteLazyLoadingTest.class);
-       
-       private static IClassificationService classificationService;
-       private static ITaxonService taxonService;
-       
-       private static List<TaxonNode> taxonNodes;
-       
-       private UUID taxonUuid1 = UUID.fromString("8217ef77-2ab1-4318-bd67-ccd0cdef07c4");
-       private UUID taxonUuid2 = UUID.fromString("ef96fafa-7750-4141-b31b-1ad1daab3e76");
-       
-       
-       @BeforeClass
-       public static void initializeServices() {
-               
-               
-               taxonService = applicationController.getTaxonService();
-               
-               classificationService= applicationController.getClassificationService();
-               List<Classification> classifications = classificationService.listClassifications(1,0,null,null);                
-               Assert.assertFalse(classifications.isEmpty());
-                       
-               Classification classification = classifications.get(0);
-               Assert.assertNotNull(classification);   
-               taxonNodes = classificationService.getAllNodes();
-               Assert.assertFalse(taxonNodes.isEmpty());       
-                       
-       }
-       
-       
-       
-       @Test
-       public void testCDMEntityGet() {
-               Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
-               int maxcount = 30;
-               int count = 0;
-               while(taxonNodeItr.hasNext() && count <= maxcount) {
-                       TaxonNode taxonNode = taxonNodeItr.next();
-                       Assert.assertNotNull(taxonNode);
-                       
-                       Taxon taxon = taxonNode.getTaxon();
-                       Assert.assertNotNull(taxon);
-                       
-                       String taxonTitle = taxon.getTitleCache();                      
-                       logger.info("Taxon : " + taxonTitle);
-                       
-                       TaxonNameBase name = taxon.getName();
-                       Assert.assertNotNull(name);
-                       
-                       String nameTitle = name.getTitleCache();
-                       logger.info("Taxon Name : " + nameTitle);               
-                       
-                       count++;
-               }
-
-               
-       }
-
-       
-       @Ignore
-       @Test
-       public void testCDMEntitySaveEager() {
-               Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
-               String oldTitleCache = taxon.getTitleCache();
-               
-               System.out.println("Taxon title : " + oldTitleCache);
-
-               taxon.setTitleCache(oldTitleCache + ":updated");
-               taxonService.merge(taxon);
-               
-               Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
-               System.out.println("New Taxon Title : " + taxonNew.getTitleCache());
-               
-               Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,taxonNew.getTitleCache());
-               
-               taxonNew.setTitleCache(oldTitleCache);
-               taxonService.merge(taxonNew);
-               
-               Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
-               System.out.println("Old Taxon Title : " + taxonOld.getTitleCache());
-               
-               Assert.assertEquals("Title caches should be equal",oldTitleCache,taxonOld.getTitleCache());
-                       
-       }
-       
-       @Ignore
-       @Test
-       public void testCDMEntitySaveLazy() {
-               Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
-                               
-               NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class); 
-               String oldTitleCache = nvn.getTitleCache();
-               System.out.println("Taxon Name Title : " + oldTitleCache);
-               nvn.setTitleCache(oldTitleCache + ":updated");
-               taxonService.merge(taxon);
-               
-               Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
-               NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);                      
-               System.out.println("New Taxon Name Title : " + nvnNew.getTitleCache());
-               
-               Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
-               
-               nvnNew.setTitleCache(oldTitleCache);
-               taxonService.merge(taxon);
-               
-               Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
-               NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);                      
-               System.out.println("Old Taxon Name Title : " + nvnNew.getTitleCache());
-               
-               Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());               
-       }
-       
-       @Ignore
-       @Test
-       public void testCDMEntitySaveCollection() {
-               Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
-               
-               Set<SynonymRelationship> synRelations = taxon.getSynonymRelations();
-               Set<String> relToTitles = new HashSet<String>();
-               Iterator<SynonymRelationship> srItr = synRelations.iterator();
-               while(srItr.hasNext()) {
-                       SynonymRelationship sr = srItr.next();
-                       System.out.println("Synonym Title Cache : " + sr.getSynonym().getTitleCache());
-                       relToTitles.add(sr.getSynonym().getTitleCache());
-                       sr.getSynonym().setTitleCache(sr.getSynonym().getTitleCache() + ":updated");
-                       
-               }
-               taxonService.merge(taxon);
-               
-               Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);          
-               Set<SynonymRelationship> synRelationsNew = taxonNew.getSynonymRelations();
-               
-               Iterator<SynonymRelationship> srItrNew = synRelationsNew.iterator();
-               Iterator<String> relToTitlesItr = relToTitles.iterator();
-               while(srItrNew.hasNext() && relToTitlesItr.hasNext()) {
-                       SynonymRelationship srNew = srItrNew.next();
-                       String relToTitle = relToTitlesItr.next();
-                       System.out.println("New Synonym Title Cache: " + srNew.getSynonym().getTitleCache());
-                       Assert.assertNotEquals("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache(), relToTitle);
-                       srNew.getSynonym().setTitleCache(relToTitle);
-               }
-               
-               Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
-               
-               Set<SynonymRelationship> synRelationsOld = taxonNew.getSynonymRelations();
-               Iterator<SynonymRelationship> srItrOld = synRelationsOld.iterator();
-               relToTitlesItr = relToTitles.iterator();
-               while(srItrOld.hasNext() && relToTitlesItr.hasNext()) {
-                       SynonymRelationship srOld = srItrOld.next();
-                       String relToTitle = relToTitlesItr.next();
-                       System.out.println("New Synonym Title Cache: " + srOld.getSynonym().getTitleCache());
-                       Assert.assertEquals("Synonym Title caches should be equal", srOld.getSynonym().getTitleCache(), relToTitle);
-                       
-               }
-       }
-}
index a31ca6d0b03d99c6aef772c16c7554c66204eb98..5ac42f04eae6039484627739a02a3e0ba7f65551 100644 (file)
                class="eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu.DerivateViewContextMenu"
                id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateContextMenu">
          </dynamic>
+         <command
+               commandId="org.eclipse.ui.edit.delete"
+               label="Delete"
+               style="push">
+         </command>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
                    <equals
                          value="eu.etaxonomy.taxeditor.editor.view.media">
                    </equals>
+                   <equals
+                         value="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
+                   </equals>
                 </or>
              </with>
           </activeWhen>
index 189827643df3b9ad7a77092bfb540e75e2e8fe80..190abd1dcc75c87dd31bfa33fe37a8fbca248949 100644 (file)
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -54,7 +54,7 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  */
 public class MultiPageTaxonEditor extends FormEditor implements
         IPartContentHasFactualData, IConversationEnabled, IPostOperationEnabled,
-               IDirtyMarkableSelectionProvider, IPartContentHasDetails, ISecuredEditor {
+               IDirtyMarkable, IPartContentHasDetails, ISecuredEditor {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
        public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon";
@@ -144,7 +144,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
                        monitor.worked(1);
 
             this.setDirty(false);
-            monitor.worked(1);            
+            monitor.worked(1);
         } catch (Exception e) {
             setFocus();
             MessagingUtils.operationDialog(this, e, TaxeditorEditorPlugin.PLUGIN_ID,"saving a taxon", " Please close and reopen the taxon again.");
@@ -308,6 +308,14 @@ public class MultiPageTaxonEditor extends FormEditor implements
         }
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+     */
+    @Override
+    public void forceDirty() {
+        changed(null);
+    }
+
        /**
         * The accepted taxon that is the input for this editor
         *
index f99c0a220686446bce4da0d02d2f8eb799b0c9c1..cd0c310169ec780ca3fb4863a3accd5ecf1a977f 100644 (file)
@@ -44,7 +44,7 @@ public class TaxonEditorInputDataChangeBehaviour extends
        /** {@inheritDoc} */
        @Override
        public void reactOnDataChange(CdmDataChangeMap events) {
-               // TODO Auto-generated method stub
+               source.update(events);
 
        }
 }
index a68fda35cff9b852b64089547f821bffd06e0a13..a5bf4e6bedcf4aa0357509d06b8f6214c8ea451c 100644 (file)
@@ -22,7 +22,7 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.ui.group.grantedauthority.CdmAuthorityCompositeViewer;
 
 /**
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.ui.group.grantedauthority.CdmAuthorityCompositeVie
  * @created Mar 28, 2013
  *
  */
-public class CdmAuthorityEditor extends EditorPart implements IConversationEnabled, IDirtyMarkableSelectionProvider {
+public class CdmAuthorityEditor extends EditorPart implements IConversationEnabled, IDirtyMarkable {
 
        public static final String ID = "eu.etaxonomy.taxeditor.editor.group.authority"; //$NON-NLS-1$
 
@@ -147,6 +147,14 @@ public class CdmAuthorityEditor extends EditorPart implements IConversationEnabl
 
        }
 
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+        */
+       @Override
+       public void forceDirty() {
+           changed(null);
+       }
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
         */
index 8d71a0c853392e50b095fc0a0cbd86c4b0b2b097..e328d488e20699b08d43c904841d1636e10ae09a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.editor.key;
 
@@ -36,18 +36,18 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.IIdentificationKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 
 /**
  * @author n.hoffmann
- * 
+ *
  */
 public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
                extends EditorPart implements IConversationEnabled,
                IZoomableWorkbenchPart, IPostOperationEnabled,
-               IDirtyMarkableSelectionProvider {
+               IDirtyMarkable {
 
        private CdmFormFactory formFactory;
        private Composite container;
@@ -61,7 +61,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.
         * IProgressMonitor)
         */
@@ -74,7 +74,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#doSaveAs()
         */
        @Override
@@ -84,7 +84,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
         * org.eclipse.ui.IEditorInput)
         */
@@ -98,7 +98,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isDirty()
         */
        @Override
@@ -108,7 +108,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
         */
        @Override
@@ -118,7 +118,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
         * .Composite)
@@ -188,7 +188,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /**
         * Return the key that this editor
-        * 
+        *
         * @return
         */
        public abstract T getKey();
@@ -274,7 +274,7 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#changed(
         * java.lang.Object)
@@ -285,4 +285,12 @@ public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
                viewer.update(element, null);
        }
 
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+        */
+       @Override
+       public void forceDirty() {
+           changed(null);
+       }
+
 }
index 51b81499f6f5afef860297b04345e4d8e1a4167b..5fc0b2b9a7398afbfecf0dc27e8f399364f39646 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -22,7 +22,7 @@ import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * @version 1.0
  */
 public class KeyEditor extends FormEditor implements IConversationEnabled,
-               IDirtyMarkableSelectionProvider, IPartContentHasDetails {
+               IDirtyMarkable, IPartContentHasDetails {
 
        public static final String ID = "eu.etaxonomy.taxeditor.editor.key";
 
@@ -44,7 +44,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.
         * IProgressMonitor)
         */
@@ -63,7 +63,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#doSaveAs()
         */
        @Override
@@ -73,7 +73,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
         */
        @Override
@@ -88,7 +88,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
        }
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update
         * (eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
@@ -103,7 +103,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
         * ()
@@ -115,7 +115,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#changed(
         * java.lang.Object)
@@ -124,14 +124,22 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
        public void changed(Object element) {
                editorDirtyStateChanged();
                IEditorPart activeEditor = getActiveEditor();
-               if (activeEditor instanceof IDirtyMarkableSelectionProvider) {
-                       ((IDirtyMarkableSelectionProvider) activeEditor).changed(element);
+               if (activeEditor instanceof IDirtyMarkable) {
+                       ((IDirtyMarkable) activeEditor).changed(element);
                }
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+     */
+    @Override
+    public void forceDirty() {
+        changed(null);
+    }
+
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.forms.editor.FormEditor#editorDirtyStateChanged()
         */
        @Override
@@ -155,7 +163,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.forms.editor.FormEditor#isDirty()
         */
        @Override
@@ -165,7 +173,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.forms.editor.FormEditor#dispose()
         */
        @Override
@@ -177,7 +185,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
         */
        @Override
@@ -195,14 +203,14 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
                        MessagingUtils.error(getClass(), e);
                }
 
-               
+
 
                setPartName();
 
        }
 
        /**
-        * 
+        *
         */
        public void setPartName() {
                AbstractIdentificationEditorInput input = (AbstractIdentificationEditorInput) getEditorInput();
index 5ef5246d8239befe0ff06b5ddb3f86e8d4ef97b5..ceae45d69d43fd57c6ea825e9928e868b7ac14f8 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -45,7 +45,7 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
@@ -54,13 +54,13 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * @version 1.0
  */
 public class PolytomousKeyListEditor extends EditorPart implements
-               IConversationEnabled, IDirtyMarkableSelectionProvider,
+               IConversationEnabled, IDirtyMarkable,
                IPolytomousKeyEditorPage {
 
        private class LinkListener extends MouseAdapter {
                /*
                 * (non-Javadoc)
-                * 
+                *
                 * @see
                 * org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events
                 * .MouseEvent)
@@ -76,12 +76,12 @@ public class PolytomousKeyListEditor extends EditorPart implements
                        int selectedColumn = getSelectedColumn(table, point);
                        PolytomousKeyNode node = (PolytomousKeyNode) getTableItem(
                         table, point).getData();
-                
-                       if (selectedColumn == 4) {              
+
+                       if (selectedColumn == 4) {
                            PolytomousKeyNode linkData = getItemLinkData(node);
                            if (linkData != null) {
                                viewer.setSelection(new StructuredSelection(linkData), true);
-                           } 
+                           }
                        }
                        if (selectedColumn == 5) {
                            Taxon taxon = getItemTaxon(node);
@@ -121,7 +121,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
                        return node.getChildren().isEmpty() ? null : node
                                        .getChildAt(0);
                }
-               
+
              /**
          * @return
          */
@@ -142,7 +142,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update
         * (eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
@@ -154,7 +154,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
         * ()
@@ -167,7 +167,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.
         * IProgressMonitor)
         */
@@ -178,7 +178,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#doSaveAs()
         */
        @Override
@@ -187,7 +187,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
         * org.eclipse.ui.IEditorInput)
         */
@@ -200,7 +200,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isDirty()
         */
        @Override
@@ -210,7 +210,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
         */
        @Override
@@ -220,7 +220,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
         * .Composite)
@@ -257,10 +257,10 @@ public class PolytomousKeyListEditor extends EditorPart implements
            if (viewer != null && viewer.getTable() != null) {
                return viewer.getTable().getItemCount();
            }
-           
+
            return 0;
        }
-       
+
        public PolytomousKey getViewerInputKey() {
            return (PolytomousKey) viewer.getInput();
        }
@@ -296,7 +296,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
         */
        @Override
@@ -306,7 +306,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#changed(
         * java.lang.Object)
@@ -327,9 +327,17 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+     */
+    @Override
+    public void forceDirty() {
+        changed(null);
+    }
+
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#postOperation(
         * eu.etaxonomy.cdm.model.common.CdmBase)
@@ -349,7 +357,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
         */
        @Override
index 3e5c3f37896d6932d0384ab88cde5443e0bd0a58..8a462f6ee35925426df0620fe869e2b0e80050e3 100644 (file)
@@ -9,15 +9,22 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
+import java.util.Set;
+
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.remote.dto.tdwg.voc.TaxonName;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
@@ -57,11 +64,23 @@ public class ChangeHomotypicalGroupBasionymOperation extends
                        throws ExecutionException {
                
                TaxonNameBase<?, ?> name = taxonBase.getName();
+               
                monitor.worked(20);
+               name = HibernateProxyHelper.deproxy(name, TaxonNameBase.class);
+               HomotypicalGroup group = HibernateProxyHelper.deproxy(name.getHomotypicalGroup(), HomotypicalGroup.class);
+        TaxonNameBase oldBasionym = name.getBasionym();
         
                name.setAsGroupsBasionym();
+               
                monitor.worked(40);
-
+               oldBasionym = HibernateProxyHelper.deproxy(oldBasionym, TaxonNameBase.class);
+               if (oldBasionym != null){
+                       Set<TaxonBase> taxonBases = oldBasionym.getTaxonBases();
+                       if (!taxonBases.isEmpty()){
+                               TaxonBase oldBasionymTaxonBase = taxonBases.iterator().next();
+                               postExecute(oldBasionymTaxonBase);
+                       }
+               }
                return postExecute(taxonBase);
        }
 
@@ -88,4 +107,6 @@ public class ChangeHomotypicalGroupBasionymOperation extends
                                
                return postExecute(taxonBase);
        }
+       
+       
 }
index 316af1d4c4cedfd72fc434b6e1349c66931d736c..1b5349173beab2afb4e424aa76c5b6a784279ac0 100644 (file)
@@ -40,12 +40,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {
 
        private Taxon newTaxon;
-       private final Synonym synonym;
+       private Synonym synonym;
        private final ITaxonTreeNode parentNode;
 
        private TaxonNode newNode;
 
-       private final Set<TaxonNameBase> namesInHomotypicGroup;
+       //private final Set<TaxonNameBase> namesInHomotypicGroup;
 
        /**
         * <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</p>
@@ -66,7 +66,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                this.element = taxon;
                this.parentNode = parentNode;
                this.synonym = synonym;
-               this.namesInHomotypicGroup = namesInHomotypicalGroup;
+               //this.namesInHomotypicGroup = namesInHomotypicalGroup;
        }
 
        /* (non-Javadoc)
@@ -85,7 +85,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                }
                monitor.worked(20);
 
-               synonym.setSec(null);
+               element.removeSynonym(synonym);
                newNode = parentNode.addChildTaxon(newTaxon, null, null);
 
                /*if(namesInHomotypicGroup != null){
index b38fd5965f15cf1c19841398a9f25ac8c1208f40..3fe844fa730415ac61b362a3c6a2246d57214553 100644 (file)
@@ -70,7 +70,7 @@ import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistDropdownSe
 import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistFocusListener;
 import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistModifyListener;
 import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -87,7 +87,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class ChecklistEditor extends EditorPart implements ISelectionListener, IPartContentHasFactualData,
-        IConversationEnabled, IContextListener, IPartContentHasDetails, IDirtyMarkableSelectionProvider {
+        IConversationEnabled, IContextListener, IPartContentHasDetails, IDirtyMarkable {
 
     private static final Logger logger = Logger.getLogger(ChecklistEditor.class);
     /**
@@ -232,9 +232,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
 
         final Text searchText = createSearchBar(parent);
 
-        if (terms != null && !terms.isEmpty()) {
+//        if (terms != null && !terms.isEmpty()) {
             createToolbar(parent);
-        }
+//        }
         viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
         getSite().setSelectionProvider(viewer);
 
@@ -628,6 +628,14 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
         }
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+     */
+    @Override
+    public void forceDirty() {
+        changed(null);
+    }
+
     public void setDirty(boolean dirty) {
         this.dirty = dirty;
         firePropertyChange(PROP_DIRTY);
index 68a1a94a11686eb90ba0d4d83a914eea13484a0a..45c558e9b3dd87b3c7d996d2249d62b894b5b0be 100644 (file)
@@ -3,6 +3,7 @@ package eu.etaxonomy.taxeditor.editor.view.checklist.listener;
 import java.util.SortedSet;
 
 import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -17,6 +18,8 @@ import org.eclipse.swt.widgets.ToolItem;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionWizard;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * Handles drop down menu selection. Available items are defined in the
@@ -39,6 +42,7 @@ public class ChecklistDropdownSelectionListener extends SelectionAdapter {
         this.editor = editor;
         this.termSet = termSet;
         menu = new Menu(dropdown.getParent().getShell());
+        initialMenuItem();
     }
 
     // SearchOption option
@@ -89,6 +93,22 @@ public class ChecklistDropdownSelectionListener extends SelectionAdapter {
         });
     }
 
+    private void initialMenuItem(){
+        MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
+        menuItem.setText("Add Distribution");
+        menuItem.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent event) {
+                AvailableDistributionWizard availableDistributionWizard = new AvailableDistributionWizard();
+                WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
+                        availableDistributionWizard);
+
+                dialog.open();
+            }
+        });
+        new MenuItem(menu, SWT.SEPARATOR);
+    }
+
     @Override
     public void widgetSelected(SelectionEvent event) {
         if (event.detail == SWT.ARROW) {
index d1a132fa226256750f3cce0c85eaf3fe78c0909d..6a7ce39f37802dc424b490ba56a85b59270a9092 100644 (file)
@@ -31,7 +31,7 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
@@ -43,7 +43,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 20.09.2013
  *
  */
-public abstract class DataImportEditor<T> extends EditorPart implements IPartContentHasFactualData, IDirtyMarkableSelectionProvider,
+public abstract class DataImportEditor<T> extends EditorPart implements IPartContentHasFactualData, IDirtyMarkable,
 IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener{
 
     protected Logger logger = Logger.getLogger(DataImportEditor.class);
@@ -200,6 +200,14 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
         // cannot be changed
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+     */
+    @Override
+    public void forceDirty() {
+        // cannot be dirty
+    }
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
      */
index 1cc320d3308a529ff502d9bb61b81a868dbe71cc..ad5c4f329930de15aadd744f362cdff36b6be940 100644 (file)
@@ -37,7 +37,7 @@ import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
@@ -49,7 +49,7 @@ import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
  * Displays the derivate hierarchy of the specimen specified in the editor input.
  *
  */
-public class DerivateView extends EditorPart implements IPartContentHasFactualData, IDirtyMarkableSelectionProvider,
+public class DerivateView extends EditorPart implements IPartContentHasFactualData, IDirtyMarkable,
         IConversationEnabled, IPartContentHasDetails, IPartContentHasMedia, IPartContentHasSupplementalData,
         IContextListener, ISelectionChangedListener {
 
@@ -243,6 +243,14 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         viewer.refresh();
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+     */
+    @Override
+    public void forceDirty() {
+        changed(null);
+    }
+
     /**
      * Refreshes the derivate hierarchy tree
      */
index 0ae94206a036b3a8a28c83b9f6acaf89d0893623..31e50fd6caa8bc4676756c0f3bc4c439c787ba35 100644 (file)
@@ -134,6 +134,7 @@ public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartCon
                viewer.refresh();
                //TODO: should be replaced with the possibility to set views dirty
                // when we move to Eclipse 4
+               // take a look at ISaveblePart
                if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
                    ((BulkEditor) part).forceDirty();
                }
diff --git a/eu.etaxonomy.taxeditor.remoting/.classpath b/eu.etaxonomy.taxeditor.remoting/.classpath
new file mode 100644 (file)
index 0000000..b26afa6
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+       <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+       <classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/>
+       <classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
+       <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.8-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.aop-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.aspects-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.beans-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.core-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.expression-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.jdbc-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.orm-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.transaction-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.web-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-4.0.1.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar" sourcepath="/home/cmathew/Temp/hibernate-core-4.1.10.Final-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-4.1.10.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-4.1.10.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-4.2.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.7.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.8-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.8-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.8-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.8-SNAPSHOT.jar" sourcepath="/home/cmathew/.m2/repository/eu/etaxonomy/cdmlib-services/3.3.8-SNAPSHOT/cdmlib-services-3.3.8-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.4.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.1.3.GA.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/junit-4.11.jar" sourcepath="/home/cmathew/Downloads/junit-4.11-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-config-3.1.3.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-core-3.1.3.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-remoting-3.1.3.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/joda-time-2.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-core-3.6.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/javassist-3.17.1-GA.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/h2-1.4.181.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/eu.etaxonomy.taxeditor.remoting/.project b/eu.etaxonomy.taxeditor.remoting/.project
new file mode 100644 (file)
index 0000000..a73967e
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>eu.etaxonomy.taxeditor.remoting</name>
+       <comment>Holds all UI tests for the Taxonomic Editor. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+               <nature>org.eclipse.pde.PluginNature</nature>
+       </natures>
+</projectDescription>
diff --git a/eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.jdt.core.prefs b/eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..c537b63
--- /dev/null
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.pde.core.prefs b/eu.etaxonomy.taxeditor.remoting/.settings/org.eclipse.pde.core.prefs
new file mode 100644 (file)
index 0000000..f29e940
--- /dev/null
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/eu.etaxonomy.taxeditor.remoting/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.remoting/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..05c0c2d
--- /dev/null
@@ -0,0 +1,68 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: UI Test Bundle
+Bundle-SymbolicName: eu.etaxonomy.taxeditor.remoting;singleton:=true
+Bundle-Version: 3.3.8.qualifier
+Bundle-Activator: eu.etaxonomy.taxeditor.remoting.RemotingTestPluginActivator
+Bundle-Vendor: EDIT
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: eu.etaxonomy.cdm.api.application,
+ eu.etaxonomy.cdm.remote,
+ eu.etaxonomy.taxeditor.httpinvoker,
+ org.hibernate.collection.internal,
+ org.hibernate.proxy
+Bundle-ClassPath: lib/aspectjrt-1.7.1.jar,
+ lib/c3p0-0.9.2.jar,
+ lib/cdmlib-commons-3.3.8-SNAPSHOT.jar,
+ lib/cdmlib-ext-3.3.8-SNAPSHOT.jar,
+ lib/cdmlib-model-3.3.8-SNAPSHOT.jar,
+ lib/cdmlib-services-3.3.8-SNAPSHOT.jar,
+ lib/ehcache-core-2.4.3.jar,
+ lib/hamcrest-core-1.3.jar,
+ lib/jboss-logging-3.1.3.GA.jar,
+ lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar,
+ lib/jdom-1.1.3.jar,
+ lib/junit-4.11.jar,
+ lib/log4j-1.2.17.jar,
+ lib/spring-security-config-3.1.3.RELEASE.jar,
+ lib/spring-security-core-3.1.3.RELEASE.jar,
+ lib/spring-security-remoting-3.1.3.RELEASE.jar,
+ lib/unitils-core-3.4.2.jar,
+ lib/commons-logging-1.1.1.jar,
+ lib/commons-lang-2.6.jar,
+ lib/aopalliance-1.0.jar,
+ lib/joda-time-2.1.jar,
+ lib/lsid-client-1.1.2.jar,
+ lib/lucene-core-3.6.2.jar,
+ lib/lsid-server-1.1.2.jar,
+ lib/slf4j-api-1.7.2.jar,
+ lib/javassist-3.17.1-GA.jar,
+ lib/unitils-spring-3.4.2.jar,
+ lib/unitils-database-3.4.2.jar,
+ lib/commons-dbcp-1.4.jar,
+ lib/commons-pool-1.5.4.jar,
+ lib/unitils-dbmaintainer-3.4.2.jar,
+ lib/h2-1.4.181.jar,
+ lib/unitils-dbunit-3.4.2.jar,
+ lib/hibernate-jpa-2.0-api-1.0.1.Final.jar,
+ lib/hibernate-commons-annotations-4.0.1.Final.jar,
+ lib/hibernate-core-4.1.10.Final.jar,
+ lib/hibernate-entitymanager-4.1.10.Final.jar,
+ lib/hibernate-envers-4.1.10.Final.jar,
+ lib/hibernate-search-engine-4.2.0.Final.jar,
+ lib/org.springframework.context-3.2.2.RELEASE.jar,
+ lib/org.springframework.aop-3.2.2.RELEASE.jar,
+ lib/org.springframework.aspects-3.2.2.RELEASE.jar,
+ lib/org.springframework.beans-3.2.2.RELEASE.jar,
+ lib/org.springframework.core-3.2.2.RELEASE.jar,
+ lib/org.springframework.expression-3.2.2.RELEASE.jar,
+ lib/org.springframework.jdbc-3.2.2.RELEASE.jar,
+ lib/org.springframework.orm-3.2.2.RELEASE.jar,
+ lib/org.springframework.transaction-3.2.2.RELEASE.jar,
+ lib/org.springframework.web-3.2.2.RELEASE.jar,
+ lib/cdmlib-persistence-3.3.8-SNAPSHOT.jar,
+ lib/dbunit-2.4.9.jar
+Import-Package: org.osgi.framework
+Require-Bundle: org.eclipse.osgi
+
diff --git a/eu.etaxonomy.taxeditor.remoting/build.properties b/eu.etaxonomy.taxeditor.remoting/build.properties
new file mode 100644 (file)
index 0000000..5385cab
--- /dev/null
@@ -0,0 +1,55 @@
+output.. = target/classes/
+bin.includes = META-INF/,\
+               lib/aspectjrt-1.7.1.jar,\
+               lib/c3p0-0.9.2.jar,\
+               lib/cdmlib-commons-3.3.8-SNAPSHOT.jar,\
+               lib/cdmlib-ext-3.3.8-SNAPSHOT.jar,\
+               lib/cdmlib-model-3.3.8-SNAPSHOT.jar,\
+               lib/cdmlib-services-3.3.8-SNAPSHOT.jar,\
+               lib/ehcache-core-2.4.3.jar,\
+               lib/hamcrest-core-1.3.jar,\
+               lib/jboss-logging-3.1.3.GA.jar,\
+               lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar,\
+               lib/jdom-1.1.3.jar,\
+               lib/junit-4.11.jar,\
+               lib/log4j-1.2.17.jar,\
+               lib/spring-security-config-3.1.3.RELEASE.jar,\
+               lib/spring-security-core-3.1.3.RELEASE.jar,\
+               lib/spring-security-remoting-3.1.3.RELEASE.jar,\
+               lib/unitils-core-3.4.2.jar,\
+               lib/commons-logging-1.1.1.jar,\
+               lib/commons-lang-2.6.jar,\
+               lib/aopalliance-1.0.jar,\
+               lib/joda-time-2.1.jar,\
+               lib/lsid-client-1.1.2.jar,\
+               lib/lucene-core-3.6.2.jar,\
+               lib/lsid-server-1.1.2.jar,\
+               lib/slf4j-api-1.7.2.jar,\
+               lib/javassist-3.17.1-GA.jar,\
+               src/main/resources/etc/jetty/cdmlib-remote-webapp.war,\
+               lib/unitils-spring-3.4.2.jar,\
+               lib/unitils-database-3.4.2.jar,\
+               lib/commons-dbcp-1.4.jar,\
+               lib/commons-pool-1.5.4.jar,\
+               lib/unitils-dbmaintainer-3.4.2.jar,\
+               lib/h2-1.4.181.jar,\
+               lib/unitils-dbunit-3.4.2.jar,\
+               lib/hibernate-jpa-2.0-api-1.0.1.Final.jar,\
+               lib/hibernate-commons-annotations-4.0.1.Final.jar,\
+               lib/hibernate-core-4.1.10.Final.jar,\
+               lib/hibernate-entitymanager-4.1.10.Final.jar,\
+               lib/hibernate-envers-4.1.10.Final.jar,\
+               lib/hibernate-search-engine-4.2.0.Final.jar,\
+               lib/org.springframework.context-3.2.2.RELEASE.jar,\
+               lib/org.springframework.aop-3.2.2.RELEASE.jar,\
+               lib/org.springframework.aspects-3.2.2.RELEASE.jar,\
+               lib/org.springframework.beans-3.2.2.RELEASE.jar,\
+               lib/org.springframework.core-3.2.2.RELEASE.jar,\
+               lib/org.springframework.expression-3.2.2.RELEASE.jar,\
+               lib/org.springframework.jdbc-3.2.2.RELEASE.jar,\
+               lib/org.springframework.orm-3.2.2.RELEASE.jar,\
+               lib/org.springframework.transaction-3.2.2.RELEASE.jar,\
+               lib/org.springframework.web-3.2.2.RELEASE.jar,\
+               src/main/resources/etc/jetty/jetty-runner-9.1.5.v20140505.jar,\
+               lib/cdmlib-persistence-3.3.8-SNAPSHOT.jar,\
+               lib/dbunit-2.4.9.jar
diff --git a/eu.etaxonomy.taxeditor.remoting/pom.xml b/eu.etaxonomy.taxeditor.remoting/pom.xml
new file mode 100644 (file)
index 0000000..6df07fe
--- /dev/null
@@ -0,0 +1,539 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+
+  <parent>
+    <groupId>eu.etaxonomy</groupId>
+    <artifactId>taxeditor-parent</artifactId>
+    <version>3.3.8-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>eu.etaxonomy.taxeditor.remoting</artifactId>
+  <packaging>eclipse-plugin</packaging>
+  <name>Remoting Bundle</name>
+  <description>Remoting Plugin Taxonomic Editor</description>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.7</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <id>copy-dependencies</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <excludeArtifactIds>
+                cdmlib-remote-webapp
+              </excludeArtifactIds>
+              <includeArtifactIds>
+                cdmlib-services,cdmlib-commons,cdmlib-persistence,cdmlib-ext,cdmlib-model
+              </includeArtifactIds>
+              <outputDirectory>${basedir}/lib</outputDirectory>
+              <overWriteReleases>true</overWriteReleases>
+              <overWriteSnapshots>true</overWriteSnapshots>
+              <excludeTransitive>true</excludeTransitive>
+            </configuration>
+          </execution>
+          <execution>
+            <id>copy-dependency-war</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <includeArtifactIds>
+                cdmlib-remote-webapp
+              </includeArtifactIds>
+              <outputDirectory>
+                ${basedir}/src/main/resources/etc/jetty
+              </outputDirectory>
+              <overWriteReleases>true</overWriteReleases>
+              <overWriteSnapshots>true</overWriteSnapshots>
+              <excludeTransitive>true</excludeTransitive>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>1.7</version>
+        <executions>
+          <execution>
+            <id>update-snapshot-jar-names</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <echo>Anonymizing war</echo>
+                <move todir="./src/main/resources/etc/jetty">
+                  <fileset dir="./src/main/resources/etc/jetty" />
+                  <mapper type="regexp"
+                    from="(^cdmlib\-.*)\-[0-9]\.[0-9]\.[0-9]\-SNAPSHOT(\.war)"
+                    to="\1\2" />
+                </move>
+                <move todir="./src/main/resources/etc/jetty">
+                  <fileset dir="./src/main/resources/etc/jetty" />
+                  <mapper type="regexp"
+                    from="(^cdmlib\-.*)\-[0-9]\.[0-9]\.[0-9]\-[0-9.-]+(\.war)"
+                    to="\1\2" />
+                </move>
+                <echo>Update cdmlib jars to SNAPSHOT when build with
+                  timestamp
+                </echo>
+                <move todir="./lib">
+                  <fileset dir="./lib" />
+                  <mapper type="regexp"
+                    from="(^cdmlib\-.*\-[0-9]\.[0-9]\.[0-9]\-)[0-9.-]+(\.jar)"
+                    to="\1SNAPSHOT\2" />
+                </move>
+                <move todir="./lib">
+                  <fileset dir="./lib" />
+                  <mapper type="regexp"
+                    from="(^cdmlib\-.*\-[0-9]\.[0-9]\.[0-9]\-)[0-9.-]+(\-sources\.jar)"
+                    to="\1SNAPSHOT\2" />
+                </move>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <profile>
+      <id>cleanCdmlibJars</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-clean-plugin</artifactId>
+            <version>2.3</version>
+            <configuration>
+              <filesets>
+                <fileset>
+                  <directory>${basedir}/lib</directory>
+                  <includes>
+                    <include>cdmlib-*</include>
+                  </includes>
+                  <followSymlinks>false</followSymlinks>
+                </fileset>
+              </filesets>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>cleanAllJars</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-clean-plugin</artifactId>
+            <version>2.3</version>
+            <configuration>
+              <filesets>
+                <fileset>
+                  <directory>${basedir}/lib</directory>
+                  <includes>
+                    <include>*</include>
+                  </includes>
+                  <followSymlinks>false</followSymlinks>
+                </fileset>
+              </filesets>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>copyAllJars</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <version>2.4</version>
+            <executions>
+              <execution>
+                <id>copy-all-dependencies</id>
+                <phase>validate</phase>
+                <goals>
+                  <goal>copy-dependencies</goal>
+                </goals>
+                <configuration>
+                  <excludeArtifactIds>
+                    cdmlib-remote-webapp
+                  </excludeArtifactIds>
+                  <outputDirectory>${basedir}/lib</outputDirectory>
+                  <overWriteReleases>true</overWriteReleases>
+                  <overWriteSnapshots>true</overWriteSnapshots>
+                  <excludeTransitive>true</excludeTransitive>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+  <repositories>
+    <repository>
+      <id>SpringSource Enterprise Bundle Repository - External Bundle
+        Milestones</id>
+      <url>http://repository.springsource.com/maven/bundles/milestone
+      </url>
+    </repository>
+    <repository>
+      <id>SpringSource Enterprise Bundle Repository - SpringSource
+        Bundle Releases</id>
+      <url>http://repository.springsource.com/maven/bundles/release
+      </url>
+    </repository>
+    <repository>
+      <id>SpringSource Enterprise Bundle Repository - External Bundle
+        Releases</id>
+      <url>http://repository.springsource.com/maven/bundles/external
+      </url>
+    </repository>
+  </repositories>
+  <dependencies>
+    <dependency>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-remote-webapp</artifactId>
+      <version>${cdmlib.version}</version>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-services</artifactId>
+      <version>${cdmlib.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-commons</artifactId>
+      <version>${cdmlib.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-persistence</artifactId>
+      <version>${cdmlib.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-ext</artifactId>
+      <version>${cdmlib.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-model</artifactId>
+      <version>${cdmlib.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.unitils</groupId>
+      <artifactId>unitils-core</artifactId>
+      <version>3.4.2</version>
+    </dependency>
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-server</artifactId> -->
+    <!-- <version>9.1.3.v20140225</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-util</artifactId> -->
+    <!-- <version>9.1.3.v20140225</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-xml</artifactId> -->
+    <!-- <version>9.1.3.v20140225</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-servlet</artifactId> -->
+    <!-- <version>9.1.3.v20140225</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-webapp</artifactId> -->
+    <!-- <version>9.1.3.v20140225</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-security</artifactId> -->
+    <!-- <version>9.1.3.v20140225</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-http</artifactId> -->
+    <!-- <version>${jetty.version}</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>org.eclipse.jetty</groupId> -->
+    <!-- <artifactId>jetty-io</artifactId> -->
+    <!-- <version>${jetty.version}</version> -->
+    <!-- </dependency> -->
+    <!-- <dependency> -->
+    <!-- <groupId>javax.servlet</groupId> -->
+    <!-- <artifactId>javax.servlet-api</artifactId> -->
+    <!-- <version>3.1.0</version> -->
+    <!-- </dependency> -->
+
+    <!-- <dependency> -->
+    <!-- <groupId>javax.servlet</groupId> -->
+    <!-- <artifactId>jsp-api</artifactId> -->
+    <!-- <version>2.0</version> -->
+    <!-- </dependency> -->
+
+    <dependency>
+      <groupId>net.sf.ehcache</groupId>
+      <artifactId>ehcache-core</artifactId>
+      <version>2.4.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-core</artifactId>
+      <version>4.1.10.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate.common</groupId>
+      <artifactId>hibernate-commons-annotations</artifactId>
+      <version>4.0.1.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-search-engine</artifactId>
+      <version>4.2.0.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate.javax.persistence</groupId>
+      <artifactId>hibernate-jpa-2.0-api</artifactId>
+      <version>1.0.1.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-envers</artifactId>
+      <version>4.1.10.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-entitymanager</artifactId>
+      <version>4.1.10.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.11</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>1.2.17</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jdom</groupId>
+      <artifactId>jdom</artifactId>
+      <version>1.1.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.context</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.aspects</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.beans</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.transaction</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.web</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.core</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.aop</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.expression</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.orm</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.jdbc</artifactId>
+      <version>3.2.2.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-core</artifactId>
+      <version>3.1.3.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-config</artifactId>
+      <version>3.1.3.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-remoting</artifactId>
+      <version>3.1.3.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.logging</groupId>
+      <artifactId>jboss-logging</artifactId>
+      <version>3.1.3.GA</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-core</artifactId>
+      <version>1.3</version>
+    </dependency>
+    <dependency>
+      <groupId>com.mchange</groupId>
+      <artifactId>c3p0</artifactId>
+      <version>0.9.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.spec.javax.transaction</groupId>
+      <artifactId>jboss-transaction-api_1.1_spec</artifactId>
+      <version>1.0.0.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.aspectj</groupId>
+      <artifactId>aspectjrt</artifactId>
+      <version>1.7.1</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.6</version>
+    </dependency>
+    <dependency>
+      <groupId>aopalliance</groupId>
+      <artifactId>aopalliance</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>joda-time</groupId>
+      <artifactId>joda-time</artifactId>
+      <version>2.1</version>
+    </dependency>
+    <dependency>
+      <groupId>com.ibm.lsid</groupId>
+      <artifactId>lsid-client</artifactId>
+      <version>1.1.2</version>
+    </dependency>
+    <dependency>
+      <groupId>com.ibm.lsid</groupId>
+      <artifactId>lsid-server</artifactId>
+      <version>1.1.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-core</artifactId>
+      <version>3.6.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.7.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.javassist</groupId>
+      <artifactId>javassist</artifactId>
+      <version>3.17.1-GA</version>
+    </dependency>
+    <dependency>
+      <groupId>au.com.bytecode</groupId>
+      <artifactId>opencsv</artifactId>
+      <version>2.4</version>
+    </dependency>
+
+
+    <!-- For Unit Tests -->
+    <dependency>
+      <groupId>org.unitils</groupId>
+      <artifactId>unitils-spring</artifactId>
+      <version>3.4.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.unitils</groupId>
+      <artifactId>unitils-database</artifactId>
+      <version>3.4.2</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-dbcp</groupId>
+      <artifactId>commons-dbcp</artifactId>
+      <version>1.4</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-pool</groupId>
+      <artifactId>commons-pool</artifactId>
+      <version>1.5.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.unitils</groupId>
+      <artifactId>unitils-dbmaintainer</artifactId>
+      <version>3.4.2</version>
+    </dependency>
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>1.4.181</version>
+    </dependency>
+    <dependency>
+      <groupId>org.unitils</groupId>
+      <artifactId>unitils-dbunit</artifactId>
+      <version>3.4.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.dbunit</groupId>
+      <artifactId>dbunit</artifactId>
+      <version>2.4.9</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
new file mode 100644 (file)
index 0000000..90cfc09
--- /dev/null
@@ -0,0 +1,115 @@
+/**\r
+* Copyright (C) 2014 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.api.application;\r
+\r
+import javax.sql.DataSource;\r
+\r
+import org.hibernate.SessionFactory;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Component;\r
+import org.springframework.transaction.PlatformTransactionManager;\r
+import org.springframework.transaction.TransactionStatus;\r
+\r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;\r
+import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
+import eu.etaxonomy.cdm.ext.geo.IEditGeoService;\r
+\r
+\r
+/**\r
+ * CDM Application Configuration class which manages the configuration for remoting\r
+ * clients\r
+ *\r
+ */\r
+@Component\r
+public class CdmApplicationRemoteConfiguration extends CdmApplicationDefaultConfiguration {\r
+       \r
+       @SuppressWarnings("unused")\r
+       private static final Logger logger = Logger.getLogger(CdmApplicationRemoteConfiguration.class);\r
+\r
+       @Autowired\r
+       IEditGeoService editGeoService;\r
+       \r
+       public CdmApplicationRemoteConfiguration() {\r
+       }\r
+       \r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#getTransactionManager()\r
+     */\r
+    @Override\r
+    public PlatformTransactionManager getTransactionManager() throws UnsupportedOperationException {\r
+               throw new UnsupportedOperationException("getTransactionManager is not implemented for CdmApplicationRemoteConfiguration");\r
+       }\r
+\r
+\r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#startTransaction()\r
+     */\r
+    @Override\r
+    public TransactionStatus startTransaction() throws UnsupportedOperationException {\r
+               throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
+       }\r
+\r
+\r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#startTransaction()\r
+     */\r
+    @Override\r
+    public TransactionStatus startTransaction(Boolean readOnly) throws UnsupportedOperationException {\r
+               throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
+       }\r
+\r
+\r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#commitTransaction(org.springframework.transaction.TransactionStatus)\r
+     */\r
+    @Override\r
+    public void commitTransaction(TransactionStatus txStatus) throws UnsupportedOperationException {\r
+               throw new UnsupportedOperationException("commitTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
+       }\r
+                       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#NewConversation()\r
+        */\r
+       @Override\r
+       public ConversationHolder NewConversation() {           \r
+               return new ConversationHolderMock();\r
+       }\r
+       \r
+       /**\r
+        * @return\r
+        */\r
+       public IEditGeoService getEditGeoService() {\r
+               return this.editGeoService;\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#setDataSource(javax.sql.DataSource)\r
+        */\r
+       @Override\r
+       public void setDataSource(DataSource dataSource) {                      \r
+    }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#setTransactionManager(org.springframework.transaction.PlatformTransactionManager)\r
+        */\r
+       @Override\r
+       public void setTransactionManager(PlatformTransactionManager transactionManager) {        \r
+    }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#setSessionFactory(org.hibernate.SessionFactory)\r
+        */\r
+       @Override\r
+    public void setSessionFactory(SessionFactory sessionFactory) {     \r
+    }\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java
new file mode 100644 (file)
index 0000000..26a5ba9
--- /dev/null
@@ -0,0 +1,194 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+
+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.MutablePropertyValues;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
+import eu.etaxonomy.cdm.common.monitor.NullProgressMonitor;
+import eu.etaxonomy.cdm.common.monitor.SubProgressMonitor;
+import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
+
+/**
+ * CDM Application Controller class for remoting clients
+ *
+ * FIXME:Remoting extending {@link CdmApplicationController} is a temporary workaround.
+ * The {@link CdmApplicationController} should be split into a CdmApplicationControllerBase
+ * class with {@link CdmApplicationController} and this class as subclasses
+ *
+ */
+public class CdmApplicationRemoteController  extends CdmApplicationController {
+
+    private static final Logger logger = Logger.getLogger(CdmApplicationRemoteController.class);
+
+    public static final Resource DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE =
+               new ClassPathResource("/eu/etaxonomy/cdm/remotingApplicationContext.xml");
+    private final Resource applicationContextResource;
+    private final IProgressMonitor progressMonitor;
+
+    /**
+     * Creates new instance of CdmApplicationRemoteController
+     *
+     * @param applicationContextResource
+     * @param remoteSource
+     * @param omitTermLoading
+     * @param progressMonitor
+     * @param listeners
+     * @return
+     */
+    public static CdmApplicationRemoteController NewInstance(Resource applicationContextResource,
+                       ICdmRemoteSource remoteSource,
+                       boolean omitTermLoading,
+                       IProgressMonitor progressMonitor,
+                       List<ApplicationListener> listeners) {
+       return new CdmApplicationRemoteController(applicationContextResource,
+                       remoteSource,
+                       omitTermLoading,
+                       progressMonitor,
+                               listeners);
+
+    }
+    /**
+     * Creates new instance of CdmApplicationRemoteController
+     *
+     * @param applicationContextResource
+     * @param remoteSource
+     * @param omitTermLoading
+     * @param progressMonitor
+     * @param listeners
+     * @return
+     */
+    public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,
+                       boolean omitTermLoading,
+                       IProgressMonitor progressMonitor,
+                       List<ApplicationListener> listeners) {
+
+       return new CdmApplicationRemoteController(DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE,
+                       remoteSource,
+                       omitTermLoading,
+                       progressMonitor,
+                               listeners);
+
+    }
+
+       /**
+        * Constructs CdmApplicationRemoteController
+        *
+        * @param applicationContextResource
+        * @param remoteSource
+        * @param omitTermLoading
+        * @param progressMonitor
+        * @param listeners
+        */
+       private CdmApplicationRemoteController(Resource applicationContextResource,
+                               ICdmRemoteSource remoteSource,
+                               boolean omitTermLoading,
+                               IProgressMonitor progressMonitor,
+                               List<ApplicationListener> listeners){
+               logger.info("Start CdmApplicationRemoteController with remote source: " + remoteSource.getName());
+        this.applicationContextResource =
+                       applicationContextResource != null ? applicationContextResource : DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE;
+        this.progressMonitor = progressMonitor != null ? progressMonitor : new NullProgressMonitor();
+
+        setNewRemoteSource(remoteSource, omitTermLoading, listeners);
+
+       }
+
+
+
+
+    /**
+     * Creates and starts a new spring application context
+     *
+     * @param remoteSource object for connecting to an http-invoker server
+     * @param omitTermLoading
+     * @param listeners
+     * @return
+     */
+    protected boolean setNewRemoteSource(ICdmRemoteSource remoteSource,
+               boolean omitTermLoading,
+               List<ApplicationListener> listeners){
+
+        logger.info("Connecting to '" + remoteSource.getName() + "'");
+
+        MonitoredGenericApplicationContext applicationContext =  new MonitoredGenericApplicationContext();
+        int refreshTasks = 45;
+        int nTasks = 5 + refreshTasks;
+
+        progressMonitor.beginTask("Connecting to '" + remoteSource.getName() + "'", nTasks);
+
+        progressMonitor.subTask("Registering remote source.");
+        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");
+        progressMonitor.worked(1);
+
+        XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(applicationContext);
+        //xmlReader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE);
+        progressMonitor.subTask("Registering resources.");
+        xmlReader.loadBeanDefinitions(applicationContextResource);
+        progressMonitor.worked(1);
+
+        //omitTerms
+        if (omitTermLoading == true){
+            String initializerName = "persistentTermInitializer";
+            BeanDefinition beanDef = applicationContext.getBeanDefinition(initializerName);
+            MutablePropertyValues values = beanDef.getPropertyValues();
+            values.addPropertyValue("omit", omitTermLoading);
+        }
+
+        if (listeners != null){
+            for(ApplicationListener listener : listeners){
+                applicationContext.addApplicationListener(listener);
+            }
+        }
+
+
+        applicationContext.refresh(new SubProgressMonitor(progressMonitor, refreshTasks));
+        applicationContext.start();
+
+        progressMonitor.subTask("Cleaning up.");
+        setApplicationContext(applicationContext);
+        progressMonitor.worked(1);
+
+        progressMonitor.done();
+        return true;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.application.CdmApplicationController#init()
+     */
+    @Override
+    protected void init(){
+        configuration = (ICdmApplicationConfiguration)applicationContext.getBean("cdmApplicationRemoteConfiguration");
+               AbstractLazyInitializer.setConfiguration(this);
+               AbstractPersistentCollection.setConfiguration(this);
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java
new file mode 100644 (file)
index 0000000..6be6919
--- /dev/null
@@ -0,0 +1,33 @@
+package eu.etaxonomy.cdm.api.cache;
+
+import java.util.UUID;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * Class which uses CDM services to cache cdm entities
+ * 
+ * FIXME: Currently only handles terms entities. It would be 
+ *        interesting to have a generic method which finds the
+ *        correct service to load / cache the entity.
+ * 
+ * @author cmathew
+ *
+ * @param <T>
+ */
+@Component
+public class CdmServiceCacher<T extends CdmBase> extends CdmCacher<T> {
+
+       @Autowired
+       ITermService termService;
+       
+       @Override
+       protected T findByUuid(UUID uuid) {
+               return (T)termService.findWithoutFlush(uuid);
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java
new file mode 100644 (file)
index 0000000..854643d
--- /dev/null
@@ -0,0 +1,242 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.remote;
+
+import static eu.etaxonomy.cdm.common.XmlHelp.getBeansRoot;
+import static eu.etaxonomy.cdm.common.XmlHelp.insertXmlBean;
+import static eu.etaxonomy.cdm.common.XmlHelp.insertXmlValueProperty;
+import static eu.etaxonomy.cdm.common.XmlHelp.saveToXml;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.jdom.Attribute;
+import org.jdom.Element;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.common.XmlHelp;
+import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
+import eu.etaxonomy.cdm.config.CdmPersistentXMLSource;
+import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
+import eu.etaxonomy.cdm.config.ICdmPersistentSource;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+
+/**
+ * Class representing a CDM remote source which can be persisted to a source config file
+ *
+ */
+public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements ICdmPersistentSource{
+       private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSource.class);
+
+       public static final String REMOTESOURCE_BEAN_POSTFIX = "RemoteSource";
+       private String beanName;
+       private Properties cdmSourceProperties;
+       private List<Attribute> cdmSourceAttributes;
+
+       /**
+        * Creates a new instance of CdmPersistentRemoteSource
+        *
+        * @param name
+        * @param server
+        * @param port
+        * @param contextPath
+        * @param nomenclaturalCode
+        * @return
+        * @throws CdmRemoteSourceException
+        */
+       public static CdmPersistentRemoteSource NewInstance(String remoteSource) throws CdmRemoteSourceException {
+               if(exists(remoteSource)) {
+                       return new CdmPersistentRemoteSource(remoteSource);
+               } else {
+                       throw new CdmRemoteSourceException("Remote source '" + remoteSource + "' does not exist in sources setting file");
+               }
+
+       }
+
+       /**S
+        * Creates a new CdmPersistentRemoteSource
+        *
+        * @param name
+        * @param server
+        * @param port
+        * @param contextPath
+        * @param nomenclaturalCode
+        * @throws CdmRemoteSourceException
+        */
+       private CdmPersistentRemoteSource(String remoteSource) throws CdmRemoteSourceException {
+
+               CdmPersistentXMLSource cdmPersistentXMLSource = CdmPersistentXMLSource.NewInstance(remoteSource, REMOTESOURCE_BEAN_POSTFIX);
+               if(cdmPersistentXMLSource.getElement() != null) {
+                       beanName = cdmPersistentXMLSource.getBeanName();
+                       // properties from the persistent xml file
+                       cdmSourceProperties = cdmPersistentXMLSource.getCdmSourceProperties();
+                       cdmSourceAttributes = cdmPersistentXMLSource.getCdmSourceAttributes();
+                       checkProperties(cdmSourceProperties);
+               } else {
+                       throw new CdmRemoteSourceException("Remote source '" + remoteSource + "' does not exist in settings file");
+               }
+               initDatabaseConnection();
+       }
+
+       private static void checkProperties(Properties cdmSourceProperties) throws CdmRemoteSourceException {
+               if(!cdmSourceProperties.containsKey(CdmSourceProperties.SERVER.toString())) {
+                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
+               }
+               String port = (String)cdmSourceProperties.get(CdmSourceProperties.PORT.toString());
+               if(port == null || port.isEmpty()) {
+                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
+               }
+               if(!cdmSourceProperties.containsKey(CdmSourceProperties.CONTEXTPATH.toString())) {
+                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
+               }
+               // default NomenclaturalCode is always ICNAFP
+               if(!cdmSourceProperties.containsKey(CdmSourceProperties.NOMENCLATURAL_CODE.toString())) {
+                       cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), NomenclaturalCode.ICNAFP.name());
+               }
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.config.ICdmPersistentSource#getBeanName()
+        */
+       @Override
+       public String getBeanName() {
+               return beanName;
+       }
+
+       @Override
+       public String getServer() {
+               return cdmSourceProperties.getProperty(CdmSourceProperties.SERVER.toString());
+       }
+
+       @Override
+       public int getPort() {
+               String port = CdmUtils.Nz(cdmSourceProperties.getProperty(CdmSourceProperties.PORT.toString()));
+               if (port == null || "".equals(port)){
+                       return -1;
+               }else{
+                       //TODO exception if non integer
+                       return Integer.valueOf(port);
+               }
+       }
+
+       @Override
+       public String getContextPath() {
+               return cdmSourceProperties.getProperty(CdmSourceProperties.CONTEXTPATH.toString());
+       }
+
+       @Override
+       public NomenclaturalCode getNomenclaturalCode() {
+               return NomenclaturalCode.fromString(cdmSourceProperties.getProperty(CdmSourceProperties.NOMENCLATURAL_CODE.toString()));
+       }
+
+       public static CdmPersistentRemoteSource save(String strRemoteSourceName, ICdmRemoteSource remoteSource) throws CdmRemoteSourceException {
+               Properties cdmSourceProperties = new Properties();
+               cdmSourceProperties.put(CdmSourceProperties.SERVER.toString(), remoteSource.getServer());
+               cdmSourceProperties.put(CdmSourceProperties.PORT.toString(), String.valueOf(remoteSource.getPort()));
+               cdmSourceProperties.put(CdmSourceProperties.CONTEXTPATH.toString(), remoteSource.getContextPath());
+               cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), remoteSource.getNomenclaturalCode().name());
+               checkProperties(cdmSourceProperties);
+               return save(strRemoteSourceName, cdmSourceProperties);
+       }
+
+       private static CdmPersistentRemoteSource save(String strRemoteSourceName,Properties cdmSourceProperties) throws CdmRemoteSourceException {
+
+               //root
+               Element root = getBeansRoot(CdmPersistentSourceUtils.getCdmSourceInputStream());
+               if (root == null){
+                       return null;
+               }
+               //bean
+               Element bean = XmlHelp.getFirstAttributedChild(root, "bean", "id", CdmPersistentSourceUtils.getBeanName(strRemoteSourceName, REMOTESOURCE_BEAN_POSTFIX));
+               if (bean != null){
+                       bean.detach();  //delete old version if necessary
+               }
+               bean = insertXmlBean(root, CdmPersistentSourceUtils.getBeanName(strRemoteSourceName, REMOTESOURCE_BEAN_POSTFIX), CdmPersistentRemoteSource.class.getName());
+
+
+               Properties props = cdmSourceProperties;
+               Enumeration e = props.propertyNames();
+
+               while (e.hasMoreElements()) {
+                       String key = (String) e.nextElement();
+                       insertXmlValueProperty(bean, key, props.getProperty(key));
+               }
+
+               //save
+               saveToXml(root.getDocument(),
+                               CdmPersistentSourceUtils.getResourceDirectory(),
+                               CdmPersistentXMLSource.CDMSOURCE_FILE_NAME,
+                               XmlHelp.prettyFormat );
+
+               return NewInstance(strRemoteSourceName) ;
+
+       }
+
+       /**
+        * @param strDataSourceName
+        * @param dataSource
+        * @param code
+        * @return
+        *                      the updated dataSource, null if not succesful
+        */
+       public static CdmPersistentRemoteSource update(String strRemoteSourceName,
+                       ICdmRemoteSource remoteSource) throws CdmRemoteSourceException {
+               CdmPersistentSourceUtils.delete(CdmPersistentSourceUtils.getBeanName(strRemoteSourceName,REMOTESOURCE_BEAN_POSTFIX));
+               return save(strRemoteSourceName, remoteSource);
+       }
+
+       /**
+        * Tests existing of the datsource in the according config  file.
+        * @return true if a datasource with the given name exists in the according datasource config file.
+        */
+       public static boolean exists(String strRemoteSourceName){
+               Element bean = CdmPersistentSourceUtils.getCdmSourceBeanXml(strRemoteSourceName, REMOTESOURCE_BEAN_POSTFIX);
+               return (bean != null);
+       }
+
+       /**
+        * Returns a list of all datasources stored in the datasource config file
+        * @return all existing data sources
+        * @throws CdmRemoteSourceException
+        */
+       @SuppressWarnings("unchecked")
+       static public List<CdmPersistentRemoteSource> getAllRemoteSources() throws CdmRemoteSourceException{
+               List<CdmPersistentRemoteSource> remoteSources = new ArrayList<CdmPersistentRemoteSource>();
+
+               Element root = getBeansRoot(CdmPersistentSourceUtils.getCdmSourceInputStream());
+               if (root == null){
+                       return null;
+               }else{
+               List<Element> lsChildren  = root.getChildren("bean", root.getNamespace());
+
+               for (Element elBean : lsChildren){
+                       String strId = elBean.getAttributeValue("id");
+                       if (strId != null && strId.endsWith(REMOTESOURCE_BEAN_POSTFIX)){
+                               strId = strId.replace(REMOTESOURCE_BEAN_POSTFIX, "");
+                               remoteSources.add(new CdmPersistentRemoteSource(strId));
+                       }
+               }
+               }
+               return remoteSources;
+       }
+
+       @Override
+       public String toString(){
+               if (getName() != null){
+                       return getName();
+               }else{
+                       return null;
+               }
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java
new file mode 100644 (file)
index 0000000..9dbb34b
--- /dev/null
@@ -0,0 +1,62 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.remote;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+
+/**
+ * Class representing a CDM remote source 
+ *
+ */
+public class CdmRemoteSource extends CdmRemoteSourceBase {
+       
+       /**
+        * Creates a new instance of CdmRemoteSource
+        * 
+        * @param name
+        * @param server
+        * @param port
+        * @param contextPath
+        * @param nomenclaturalCode
+        * @return
+        */
+       public static CdmRemoteSource NewInstance() {
+               return new CdmRemoteSource(DEFAULT_NAME, DEFAULT_SERVER, DEFAULT_PORT, DEFAULT_CONTEXT_PATH, DEFAULT_NOMENCLATURAL_CODE);
+       }
+       
+       /**
+        * Creates a new instance of CdmRemoteSource
+        * 
+        * @param name
+        * @param server
+        * @param port
+        * @param contextPath
+        * @param nomenclaturalCode
+        * @return
+        */
+       public static CdmRemoteSource NewInstance(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+               return new CdmRemoteSource(name, server, port, contextPath, nomenclaturalCode);
+       }
+       
+       /**
+        * Creates a new CdmRemoteSource
+        * 
+        * @param name
+        * @param server
+        * @param port
+        * @param contextPath
+        * @param nomenclaturalCode
+        */
+       private CdmRemoteSource(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) { 
+               super(name, server, port, contextPath, nomenclaturalCode);
+               
+       }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java
new file mode 100644 (file)
index 0000000..9fbb8d4
--- /dev/null
@@ -0,0 +1,173 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.remote;
+
+import java.util.Map;
+
+import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean;
+
+import eu.etaxonomy.cdm.api.service.IDatabaseService;
+import eu.etaxonomy.cdm.config.CdmSource;
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+
+/**
+ * Base class representing a CDM remote source.
+ * This class handles all the configuration relating to the remoting aspect of
+ * a CDM source.
+ *
+ */
+public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
+
+       protected static final String DEFAULT_NAME = "default";
+       protected static final String DEFAULT_SERVER = "127.0.0.1";
+       protected static final int DEFAULT_PORT = 8080;
+       protected static final String DEFAULT_CONTEXT_PATH = "";
+       protected static final NomenclaturalCode DEFAULT_NOMENCLATURAL_CODE = NomenclaturalCode.ICNAFP;
+       private String contextPath;
+       private String baseUrl;
+
+       private IDatabaseService databaseService;
+
+       /**
+        * Constructs a CdmRemoteSourceBase object with default values.
+        *
+        */
+       protected CdmRemoteSourceBase() {
+               setName(DEFAULT_NAME);
+               setServer(DEFAULT_SERVER);
+               setPort(DEFAULT_PORT);
+               setContextPath(DEFAULT_CONTEXT_PATH);
+               setNomenclaturalCode(DEFAULT_NOMENCLATURAL_CODE);
+       }
+
+       /**
+        * Constructs a CdmRemoteSourceBase
+        *
+        * @param name
+        * @param server
+        * @param port
+        * @param contextPath
+        * @param nomenclaturalCode
+        */
+       public CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+               setName(name);
+               setServer(server);
+               setPort(port);
+               setContextPath(contextPath);
+               setNomenclaturalCode(nomenclaturalCode);
+               initDatabaseConnection();
+       }
+
+       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(IDatabaseService.class);
+           proxy.setServiceUrl(baseUrl + "/remoting/database.service");
+           proxy.afterPropertiesSet();
+           databaseService = (IDatabaseService) proxy.getObject();
+
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getBaseUrl()
+        */
+       @Override
+       public String getBaseUrl() {
+               return baseUrl;
+       }
+
+       /**
+        * Sets the base url for the http-invoker services as listed in
+        * httpInvokerServicesClients.xml.
+        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the
+        * base url would be 'http://127.0.0.1:8080/col'
+        *
+        * @param baseUrl
+        */
+       public void setBaseUrl(String baseUrl) {
+               this.baseUrl = baseUrl;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getContextPath()
+        */
+       @Override
+       public String getContextPath() {
+               return contextPath;
+       }
+
+       /**
+        * Sets the context path.
+        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the
+        * context path would be 'col'
+        *
+        * @param contextPath
+        */
+       public void setContextPath(String contextPath) {
+               this.contextPath = contextPath;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.config.CdmSource#getDbSchemaVersion()
+        */
+       @Override
+       public String getDbSchemaVersion() throws CdmSourceException {
+               return databaseService.getDbSchemaVersion();
+
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.config.CdmSource#isDbEmpty()
+        */
+       @Override
+       public boolean isDbEmpty() throws CdmSourceException {
+               return databaseService.isDbEmpty();
+
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.config.CdmSource#checkConnection()
+        */
+       @Override
+       public boolean checkConnection() throws CdmSourceException {
+               // assuming that database service works implies
+               // the connection is up
+               // if no exception is thrown then we assume that the
+               // connection is up
+               // FIXME:Remoting is this really correct?
+               databaseService.getDbSchemaVersion();
+
+               return true;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.config.CdmSource#getConnectionMessage()
+        */
+       @Override
+       public String getConnectionMessage() {
+               return "Conncting to Remote CDM Server " + getName();
+       }
+
+
+       @Override
+       public Map<MetaDataPropertyName, String> getMetaDataMap() throws CdmSourceException {
+               return databaseService.getCdmMetadataMap();
+       }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java
new file mode 100644 (file)
index 0000000..3c2d715
--- /dev/null
@@ -0,0 +1,19 @@
+/**
+ * 
+ */
+package eu.etaxonomy.cdm.remote;
+
+/**
+ * 
+ *
+ */
+public class CdmRemoteSourceException extends Exception {
+       
+       public CdmRemoteSourceException(String message) {
+               super(message);
+       }
+
+       public CdmRemoteSourceException(Exception e) {
+               super(e);
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java
new file mode 100644 (file)
index 0000000..f278c74
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.remote;
+
+import eu.etaxonomy.cdm.config.ICdmSource;
+
+/**
+ * Interface representing a CDM remote source
+ *
+ */
+public interface ICdmRemoteSource extends ICdmSource {
+       
+       /**
+        * Gets the context path.
+        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the 
+        * context path would be 'col'
+        */
+       public String getContextPath();
+       
+       /**
+        * Gets the base url for the http-invoker services as listed in 
+        * httpInvokerServicesClients.xml.
+        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the 
+        * base url would be 'http://127.0.0.1:8080/col'
+        */
+       public String getBaseUrl();     
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/taxeditor/remoting/RemotingTestPluginActivator.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/eu/etaxonomy/taxeditor/remoting/RemotingTestPluginActivator.java
new file mode 100644 (file)
index 0000000..65db6ba
--- /dev/null
@@ -0,0 +1,30 @@
+package eu.etaxonomy.taxeditor.remoting;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class RemotingTestPluginActivator implements BundleActivator {
+
+       private static BundleContext context;
+
+       static BundleContext getContext() {
+               return context;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+        */
+       public void start(BundleContext bundleContext) throws Exception {
+               RemotingTestPluginActivator.context = bundleContext;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+        */
+       public void stop(BundleContext bundleContext) throws Exception {
+               RemotingTestPluginActivator.context = null;
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java
new file mode 100644 (file)
index 0000000..e684103
--- /dev/null
@@ -0,0 +1,1369 @@
+
+
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008-2011, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors.  All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA  02110-1301  USA
+ */
+package org.hibernate.collection.internal;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import javax.naming.NamingException;
+
+import org.hibernate.AssertionFailure;
+import org.hibernate.HibernateException;
+import org.hibernate.LazyInitializationException;
+import org.hibernate.Session;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.hibernate.engine.internal.ForeignKeys;
+import org.hibernate.engine.spi.CollectionEntry;
+import org.hibernate.engine.spi.EntityEntry;
+import org.hibernate.engine.spi.SessionFactoryImplementor;
+import org.hibernate.engine.spi.SessionImplementor;
+import org.hibernate.engine.spi.Status;
+import org.hibernate.engine.spi.TypedValue;
+import org.hibernate.internal.SessionFactoryRegistry;
+import org.hibernate.internal.util.MarkerObject;
+import org.hibernate.internal.util.collections.EmptyIterator;
+import org.hibernate.internal.util.collections.IdentitySet;
+import org.hibernate.persister.collection.CollectionPersister;
+import org.hibernate.persister.entity.EntityPersister;
+import org.hibernate.pretty.MessageHelper;
+import org.hibernate.type.Type;
+import org.jboss.logging.Logger;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.model.common.PersistentMultiLanguageText;
+
+/**
+ * Base class implementing {@link org.hibernate.collection.spi.PersistentCollection}
+ *
+ * @author Gavin King
+ */
+public abstract class AbstractPersistentCollection implements Serializable, PersistentCollection {
+       private static final Logger log = Logger.getLogger( AbstractPersistentCollection.class );
+
+       private static final long serialVersionUID = -7238232378593030571L;
+       
+       private transient SessionImplementor session;
+       private boolean initialized;
+       private transient List<DelayedOperation> operationQueue;
+       private transient boolean directlyAccessible;
+       private transient boolean initializing;
+       private Object owner;
+       private int cachedSize = -1;
+
+       private String role;
+       private Serializable key;
+       // collections detect changes made via their public interface and mark
+       // themselves as dirty as a performance optimization
+       private boolean dirty;
+       private Serializable storedSnapshot;
+
+       private String sessionFactoryUuid;
+       private boolean specjLazyLoad = false;
+
+       public final String getRole() {
+               return role;
+       }
+
+       public final Serializable getKey() {
+               return key;
+       }
+
+       public final boolean isUnreferenced() {
+               return role == null;
+       }
+
+       public final boolean isDirty() {
+               return dirty;
+       }
+
+       public final void clearDirty() {
+               dirty = false;
+       }
+
+       public final void dirty() {
+               dirty = true;
+       }
+
+       public final Serializable getStoredSnapshot() {
+               return storedSnapshot;
+       }
+
+       //Careful: these methods do not initialize the collection.
+
+       /**
+        * Is the initialized collection empty?
+        */
+       public abstract boolean empty();
+
+       /**
+        * Called by any read-only method of the collection interface
+        */
+       protected final void read() {
+               initialize( false );
+       }
+
+       /**
+        * Called by the {@link Collection#size} method
+        */
+       @SuppressWarnings({"JavaDoc"})
+       protected boolean readSize() {
+               if ( !initialized ) {
+                       if ( cachedSize != -1 && !hasQueuedOperations() ) {
+                               return true;
+                       }
+                       else {
+                               // In remoting we are sure that session is null
+                               // both when using property paths and switching off conversations
+                               if(session == null && remoting) {                               
+                                       log.info("--> readSize, of " + getRole() + " with key " + getKey());
+                                       read();                                                         
+                               } else {
+                                       boolean isExtraLazy = withTemporarySessionIfNeeded(
+                                                       new LazyInitializationWork<Boolean>() {
+                                                               @Override
+                                                               public Boolean doWork() {
+                                                                       CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
+
+                                                                       if ( entry != null ) {
+                                                                               CollectionPersister persister = entry.getLoadedPersister();
+                                                                               if ( persister.isExtraLazy() ) {
+                                                                                       if ( hasQueuedOperations() ) {
+                                                                                               session.flush();
+                                                                                       }
+                                                                                       cachedSize = persister.getSize( entry.getLoadedKey(), session );
+                                                                                       return true;
+                                                                               }
+                                                                               else {
+                                                                                       read();
+                                                                               }
+                                                                       }
+                                                                       else{
+                                                                               throwLazyInitializationExceptionIfNotConnected();
+                                                                       }
+                                                                       return false;
+                                                               }
+                                                       }
+                                                       );
+                                       if ( isExtraLazy ) {
+                                               return true;
+                                       }
+                               }
+                       }
+               }
+               return false;
+       }
+
+       public static interface LazyInitializationWork<T> {
+               public T doWork();
+       }
+
+       private <T> T withTemporarySessionIfNeeded(LazyInitializationWork<T> lazyInitializationWork) {
+               SessionImplementor originalSession = null;
+               boolean isTempSession = false;
+               boolean isJTA = false;
+
+               if ( session == null ) {
+                       if ( specjLazyLoad ) {
+                               session = openTemporarySessionForLoading();
+                               isTempSession = true;
+                       }
+                       else {
+                               throwLazyInitializationException( "could not initialize proxy - no Session" );
+                       }
+               }
+               else if ( !session.isOpen() ) {
+                       if ( specjLazyLoad ) {
+                               originalSession = session;
+                               session = openTemporarySessionForLoading();
+                               isTempSession = true;
+                       }
+                       else {
+                               throwLazyInitializationException( "could not initialize proxy - the owning Session was closed" );
+                       }
+               }
+               else if ( !session.isConnected() ) {
+                       if ( specjLazyLoad ) {
+                               originalSession = session;
+                               session = openTemporarySessionForLoading();
+                               isTempSession = true;
+                       }
+                       else {
+                               throwLazyInitializationException( "could not initialize proxy - the owning Session is disconnected" );
+                       }
+               }
+
+               if ( isTempSession ) {
+                       // TODO: On the next major release, add an
+                       // 'isJTA' or 'getTransactionFactory' method to Session.
+                       isJTA = session.getTransactionCoordinator()
+                                       .getTransactionContext().getTransactionEnvironment()
+                                       .getTransactionFactory()
+                                       .compatibleWithJtaSynchronization();
+                       
+                       if ( !isJTA ) {
+                               // Explicitly handle the transactions only if we're not in
+                               // a JTA environment.  A lazy loading temporary session can
+                               // be created even if a current session and transaction are
+                               // open (ex: session.clear() was used).  We must prevent
+                               // multiple transactions.
+                               ( ( Session) session ).beginTransaction();
+                       }
+                       
+                       session.getPersistenceContext().addUninitializedDetachedCollection(
+                                       session.getFactory().getCollectionPersister( getRole() ),
+                                       this
+                       );
+               }
+
+               try {
+                       return lazyInitializationWork.doWork();
+               }
+               finally {
+                       if ( isTempSession ) {
+                               // make sure the just opened temp session gets closed!
+                               try {
+                                       if ( !isJTA ) {
+                                               ( ( Session) session ).getTransaction().commit();
+                                       }
+                                       ( (Session) session ).close();
+                               }
+                               catch (Exception e) {
+                                       log.warn( "Unable to close temporary session used to load lazy collection associated to no session" );
+                               }
+                               session = originalSession;
+                       }
+               }
+       }
+
+       private SessionImplementor openTemporarySessionForLoading() {
+               if ( sessionFactoryUuid == null ) {
+                       throwLazyInitializationException( "SessionFactory UUID not known to create temporary Session for loading" );
+               }
+
+               SessionFactoryImplementor sf = (SessionFactoryImplementor)
+                               SessionFactoryRegistry.INSTANCE.getSessionFactory( sessionFactoryUuid );
+               return (SessionImplementor) sf.openSession();
+       }
+
+       protected Boolean readIndexExistence(final Object index) {
+               if ( !initialized ) {
+                       // In remoting we are sure that session is null
+                       // both when using property paths and switching off conversations
+                       if(session == null && remoting) {                       
+                               log.info("--> readIndexExistence, of " + getRole() + " with key " + getKey());
+                               read();                                                                         
+                       } else {
+                               Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
+                                               new LazyInitializationWork<Boolean>() {
+                                                       @Override
+                                                       public Boolean doWork() {
+                                                               CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
+                                                               CollectionPersister persister = entry.getLoadedPersister();
+                                                               if ( persister.isExtraLazy() ) {
+                                                                       if ( hasQueuedOperations() ) {
+                                                                               session.flush();
+                                                                       }
+                                                                       return persister.indexExists( entry.getLoadedKey(), index, session );
+                                                               }
+                                                               else {
+                                                                       read();
+                                                               }
+                                                               return null;
+                                                       }
+                                               }
+                                               );
+                               if ( extraLazyExistenceCheck != null ) {
+                                       return extraLazyExistenceCheck;
+                               }
+                       }
+               }
+               return null;
+       }
+
+       protected Boolean readElementExistence(final Object element) {
+               if ( !initialized ) {
+                       // In remoting we are sure that session is null
+                       // both when using property paths and switching off conversations
+                       if(session == null && remoting) {
+                               log.info("--> readElementExistence, of " + getRole() + " with key " + getKey());
+                               read();                         
+                               
+                       } else {
+                               Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
+                                               new LazyInitializationWork<Boolean>() {
+                                                       @Override
+                                                       public Boolean doWork() {
+                                                               CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
+                                                               CollectionPersister persister = entry.getLoadedPersister();
+                                                               if ( persister.isExtraLazy() ) {
+                                                                       if ( hasQueuedOperations() ) {
+                                                                               session.flush();
+                                                                       }
+                                                                       return persister.elementExists( entry.getLoadedKey(), element, session );
+                                                               }
+                                                               else {
+                                                                       read();
+                                                               }
+                                                               return null;
+                                                       }
+                                               }
+                                               );
+                               if ( extraLazyExistenceCheck != null ) {
+                                       return extraLazyExistenceCheck;
+                               }
+                       }
+               }
+               return null;
+       }
+
+       protected static final Object UNKNOWN = new MarkerObject( "UNKNOWN" );
+
+       protected Object readElementByIndex(final Object index) {
+               if ( !initialized ) {
+                       // In remoting we are sure that session is null
+                       // both when using property paths and switching off conversations
+                       if(session == null && remoting) {                               
+                               log.info("--> readElementByIndex, of " + getRole() + " with key " + getKey());
+                               read();                         
+                               
+                       } else {
+                               class ExtraLazyElementByIndexReader implements LazyInitializationWork {
+                                       private boolean isExtraLazy;
+                                       private Object element;
+
+                                       @Override
+                                       public Object doWork() {
+                                               CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
+                                               CollectionPersister persister = entry.getLoadedPersister();
+                                               isExtraLazy = persister.isExtraLazy();
+                                               if ( isExtraLazy ) {
+                                                       if ( hasQueuedOperations() ) {
+                                                               session.flush();
+                                                       }
+                                                       element = persister.getElementByIndex( entry.getLoadedKey(), index, session, owner );
+                                               }
+                                               else {
+                                                       read();
+                                               }
+                                               return null;
+                                       }
+                               }
+
+                               ExtraLazyElementByIndexReader reader = new ExtraLazyElementByIndexReader();
+                               //noinspection unchecked
+                               withTemporarySessionIfNeeded( reader );
+                               if ( reader.isExtraLazy ) {
+                                       return reader.element;
+                               }
+                       }
+               }
+               return UNKNOWN;
+
+       }
+
+       protected int getCachedSize() {
+               return cachedSize;
+       }
+
+       private boolean isConnectedToSession() {
+               return session != null &&
+                               session.isOpen() &&
+                               session.getPersistenceContext().containsCollection( this );
+       }
+
+       /**
+        * Called by any writer method of the collection interface
+        */
+       protected final void write() {
+               initialize( true );
+               dirty();
+       }
+
+       /**
+        * Is this collection in a state that would allow us to
+        * "queue" operations?
+        */
+       @SuppressWarnings({"JavaDoc"})
+       protected boolean isOperationQueueEnabled() {
+               return !initialized &&
+                               isConnectedToSession() &&
+                               isInverseCollection();
+       }
+
+       /**
+        * Is this collection in a state that would allow us to
+        * "queue" puts? This is a special case, because of orphan
+        * delete.
+        */
+       @SuppressWarnings({"JavaDoc"})
+       protected boolean isPutQueueEnabled() {
+               return !initialized &&
+                               isConnectedToSession() &&
+                               isInverseOneToManyOrNoOrphanDelete();
+       }
+
+       /**
+        * Is this collection in a state that would allow us to
+        * "queue" clear? This is a special case, because of orphan
+        * delete.
+        */
+       @SuppressWarnings({"JavaDoc"})
+       protected boolean isClearQueueEnabled() {
+               return !initialized &&
+                               isConnectedToSession() &&
+                               isInverseCollectionNoOrphanDelete();
+       }
+
+       /**
+        * Is this the "inverse" end of a bidirectional association?
+        */
+       @SuppressWarnings({"JavaDoc"})
+       private boolean isInverseCollection() {
+               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
+               return ce != null && ce.getLoadedPersister().isInverse();
+       }
+
+       /**
+        * Is this the "inverse" end of a bidirectional association with
+        * no orphan delete enabled?
+        */
+       @SuppressWarnings({"JavaDoc"})
+       private boolean isInverseCollectionNoOrphanDelete() {
+               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
+               return ce != null &&
+                               ce.getLoadedPersister().isInverse() &&
+                               !ce.getLoadedPersister().hasOrphanDelete();
+       }
+
+       /**
+        * Is this the "inverse" end of a bidirectional one-to-many, or
+        * of a collection with no orphan delete?
+        */
+       @SuppressWarnings({"JavaDoc"})
+       private boolean isInverseOneToManyOrNoOrphanDelete() {
+               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
+               return ce != null && ce.getLoadedPersister().isInverse() && (
+                               ce.getLoadedPersister().isOneToMany() ||
+                                               !ce.getLoadedPersister().hasOrphanDelete()
+               );
+       }
+
+       /**
+        * Queue an addition
+        */
+       @SuppressWarnings({"JavaDoc"})
+       protected final void queueOperation(DelayedOperation operation) {
+               if ( operationQueue == null ) {
+                       operationQueue = new ArrayList<DelayedOperation>( 10 );
+               }
+               operationQueue.add( operation );
+               dirty = true; //needed so that we remove this collection from the second-level cache
+       }
+
+       /**
+        * After reading all existing elements from the database,
+        * add the queued elements to the underlying collection.
+        */
+       protected final void performQueuedOperations() {
+               for ( DelayedOperation operation : operationQueue ) {
+                       operation.operate();
+               }
+       }
+
+       /**
+        * After flushing, re-init snapshot state.
+        */
+       public void setSnapshot(Serializable key, String role, Serializable snapshot) {
+               this.key = key;
+               this.role = role;
+               this.storedSnapshot = snapshot;
+       }
+
+       /**
+        * After flushing, clear any "queued" additions, since the
+        * database state is now synchronized with the memory state.
+        */
+       public void postAction() {
+               operationQueue = null;
+               cachedSize = -1;
+               clearDirty();
+       }
+
+       /**
+        * Not called by Hibernate, but used by non-JDK serialization,
+        * eg. SOAP libraries.
+        */
+       public AbstractPersistentCollection() {
+       }
+
+       protected AbstractPersistentCollection(SessionImplementor session) {
+               this.session = session;
+       }
+
+       /**
+        * return the user-visible collection (or array) instance
+        */
+       public Object getValue() {
+               return this;
+       }
+
+       /**
+        * Called just before reading any rows from the JDBC result set
+        */
+       public void beginRead() {
+               // override on some subclasses
+               initializing = true;
+       }
+
+       /**
+        * Called after reading all rows from the JDBC result set
+        */
+       public boolean endRead() {
+               //override on some subclasses
+               return afterInitialize();
+       }
+
+       public boolean afterInitialize() {
+               setInitialized();
+               //do this bit after setting initialized to true or it will recurse
+               if ( operationQueue != null ) {
+                       performQueuedOperations();
+                       operationQueue = null;
+                       cachedSize = -1;
+                       return false;
+               }
+               else {
+                       return true;
+               }
+       }
+
+       /**
+        * Initialize the collection, if possible, wrapping any exceptions
+        * in a runtime exception
+        *
+        * @param writing currently obsolete
+        *
+        * @throws LazyInitializationException if we cannot initialize
+        */
+       protected final void initialize(final boolean writing) {
+               // In remoting we are sure that session is null
+               // both when using property paths and switching off conversations
+               if(session == null && remoting) {
+                       remoteInitialize();                     
+               }
+               
+               if ( initialized ) {
+                       return;
+               }
+
+               
+               withTemporarySessionIfNeeded(
+                               new LazyInitializationWork<Object>() {
+                                       @Override
+                                       public Object doWork() {
+                                               session.initializeCollection( AbstractPersistentCollection.this, writing );
+                                               return null;
+                                       }
+                               }
+               );
+       }
+
+       private void throwLazyInitializationExceptionIfNotConnected() {
+               if ( !isConnectedToSession() ) {
+                       throwLazyInitializationException( "no session or session was closed" );
+               }
+               if ( !session.isConnected() ) {
+                       throwLazyInitializationException( "session is disconnected" );
+               }
+       }
+
+       private void throwLazyInitializationException(String message) {
+               throw new LazyInitializationException(
+                               "failed to lazily initialize a collection" +
+                                               (role == null ? "" : " of role: " + role) +
+                                               ", " + message
+               );
+       }
+
+       protected final void setInitialized() {
+               this.initializing = false;
+               this.initialized = true;
+       }
+
+       protected final void setDirectlyAccessible(boolean directlyAccessible) {
+               this.directlyAccessible = directlyAccessible;
+       }
+
+       /**
+        * Could the application possibly have a direct reference to
+        * the underlying collection implementation?
+        */
+       public boolean isDirectlyAccessible() {
+               return directlyAccessible;
+       }
+
+       /**
+        * Disassociate this collection from the given session.
+        *
+        * @return true if this was currently associated with the given session
+        */
+       public final boolean unsetSession(SessionImplementor currentSession) {
+               prepareForPossibleSpecialSpecjInitialization();
+               if ( currentSession == this.session ) {
+                       this.session = null;
+                       return true;
+               }
+               else {
+                       return false;
+               }
+       }
+
+       protected void prepareForPossibleSpecialSpecjInitialization() {
+               if ( session != null ) {
+                       specjLazyLoad = session.getFactory().getSettings().isInitializeLazyStateOutsideTransactionsEnabled();
+
+                       if ( specjLazyLoad && sessionFactoryUuid == null ) {
+                               try {
+                                       sessionFactoryUuid = (String) session.getFactory().getReference().get( "uuid" ).getContent();
+                               }
+                               catch (NamingException e) {
+                                       //not much we can do if this fails...
+                               }
+                       }
+               }
+       }
+
+
+       /**
+        * Associate the collection with the given session.
+        *
+        * @return false if the collection was already associated with the session
+        *
+        * @throws HibernateException if the collection was already associated
+        * with another open session
+        */
+       public final boolean setCurrentSession(SessionImplementor session) throws HibernateException {
+               if ( session == this.session ) {
+                       return false;
+               }
+               else {
+                       if ( isConnectedToSession() ) {
+                               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
+                               if ( ce == null ) {
+                                       throw new HibernateException(
+                                                       "Illegal attempt to associate a collection with two open sessions"
+                                       );
+                               }
+                               else {
+                                       throw new HibernateException(
+                                                       "Illegal attempt to associate a collection with two open sessions: " +
+                                                                       MessageHelper.collectionInfoString(
+                                                                                       ce.getLoadedPersister(), this,
+                                                                                       ce.getLoadedKey(), session
+                                                                       )
+                                       );
+                               }
+                       }
+                       else {
+                               this.session = session;
+                               return true;
+                       }
+               }
+       }
+
+       /**
+        * Do we need to completely recreate this collection when it changes?
+        */
+       public boolean needsRecreate(CollectionPersister persister) {
+               return false;
+       }
+
+       /**
+        * To be called internally by the session, forcing
+        * immediate initialization.
+        */
+       public final void forceInitialization() throws HibernateException {
+               if ( !initialized ) {
+                       if ( initializing ) {
+                               throw new AssertionFailure( "force initialize loading collection" );
+                       }
+                       if ( session == null ) {
+                               throw new HibernateException( "collection is not associated with any session" );
+                       }
+                       if ( !session.isConnected() ) {
+                               throw new HibernateException( "disconnected session" );
+                       }
+                       session.initializeCollection( this, false );
+               }
+       }
+
+
+       /**
+        * Get the current snapshot from the session
+        */
+       @SuppressWarnings({"JavaDoc"})
+       protected final Serializable getSnapshot() {
+               return session.getPersistenceContext().getSnapshot( this );
+       }
+
+       /**
+        * Is this instance initialized?
+        */
+       public final boolean wasInitialized() {
+               return initialized;
+       }
+
+       public boolean isRowUpdatePossible() {
+               return true;
+       }
+
+       /**
+        * Does this instance have any "queued" additions?
+        */
+       public final boolean hasQueuedOperations() {
+               return operationQueue != null;
+       }
+
+       /**
+        * Iterate the "queued" additions
+        */
+       public final Iterator queuedAdditionIterator() {
+               if ( hasQueuedOperations() ) {
+                       return new Iterator() {
+                               int i = 0;
+
+                               public Object next() {
+                                       return operationQueue.get( i++ ).getAddedInstance();
+                               }
+
+                               public boolean hasNext() {
+                                       return i < operationQueue.size();
+                               }
+
+                               public void remove() {
+                                       throw new UnsupportedOperationException();
+                               }
+                       };
+               }
+               else {
+                       return EmptyIterator.INSTANCE;
+               }
+       }
+
+       /**
+        * Iterate the "queued" additions
+        */
+       @SuppressWarnings({"unchecked"})
+       public final Collection getQueuedOrphans(String entityName) {
+               if ( hasQueuedOperations() ) {
+                       Collection additions = new ArrayList( operationQueue.size() );
+                       Collection removals = new ArrayList( operationQueue.size() );
+                       for ( DelayedOperation operation : operationQueue ) {
+                               additions.add( operation.getAddedInstance() );
+                               removals.add( operation.getOrphan() );
+                       }
+                       return getOrphans( removals, additions, entityName, session );
+               }
+               else {
+                       return Collections.EMPTY_LIST;
+               }
+       }
+
+       /**
+        * Called before inserting rows, to ensure that any surrogate keys
+        * are fully generated
+        */
+       public void preInsert(CollectionPersister persister) throws HibernateException {
+       }
+
+       /**
+        * Called after inserting a row, to fetch the natively generated id
+        */
+       public void afterRowInsert(CollectionPersister persister, Object entry, int i) throws HibernateException {
+       }
+
+       /**
+        * get all "orphaned" elements
+        */
+       public abstract Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException;
+
+       /**
+        * Get the current session
+        */
+       @SuppressWarnings({"JavaDoc"})
+       public final SessionImplementor getSession() {
+               return session;
+       }
+
+       protected final class IteratorProxy implements Iterator {
+               protected final Iterator itr;
+
+               public IteratorProxy(Iterator itr) {
+                       this.itr = itr;
+               }
+
+               public boolean hasNext() {
+                       return itr.hasNext();
+               }
+
+               public Object next() {
+                       return itr.next();
+               }
+
+               public void remove() {
+                       write();
+                       itr.remove();
+               }
+
+       }
+
+       protected final class ListIteratorProxy implements ListIterator {
+               protected final ListIterator itr;
+
+               public ListIteratorProxy(ListIterator itr) {
+                       this.itr = itr;
+               }
+
+               @SuppressWarnings({"unchecked"})
+               public void add(Object o) {
+                       write();
+                       itr.add( o );
+               }
+
+               public boolean hasNext() {
+                       return itr.hasNext();
+               }
+
+               public boolean hasPrevious() {
+                       return itr.hasPrevious();
+               }
+
+               public Object next() {
+                       return itr.next();
+               }
+
+               public int nextIndex() {
+                       return itr.nextIndex();
+               }
+
+               public Object previous() {
+                       return itr.previous();
+               }
+
+               public int previousIndex() {
+                       return itr.previousIndex();
+               }
+
+               public void remove() {
+                       write();
+                       itr.remove();
+               }
+
+               @SuppressWarnings({"unchecked"})
+               public void set(Object o) {
+                       write();
+                       itr.set( o );
+               }
+
+       }
+
+       protected class SetProxy implements java.util.Set {
+               protected final Collection set;
+
+               public SetProxy(Collection set) {
+                       this.set = set;
+               }
+
+               @SuppressWarnings({"unchecked"})
+               public boolean add(Object o) {
+                       write();
+                       return set.add( o );
+               }
+
+               @SuppressWarnings({"unchecked"})
+               public boolean addAll(Collection c) {
+                       write();
+                       return set.addAll( c );
+               }
+
+               public void clear() {
+                       write();
+                       set.clear();
+               }
+
+               public boolean contains(Object o) {
+                       return set.contains( o );
+               }
+
+               public boolean containsAll(Collection c) {
+                       return set.containsAll( c );
+               }
+
+               public boolean isEmpty() {
+                       return set.isEmpty();
+               }
+
+               public Iterator iterator() {
+                       return new IteratorProxy( set.iterator() );
+               }
+
+               public boolean remove(Object o) {
+                       write();
+                       return set.remove( o );
+               }
+
+               public boolean removeAll(Collection c) {
+                       write();
+                       return set.removeAll( c );
+               }
+
+               public boolean retainAll(Collection c) {
+                       write();
+                       return set.retainAll( c );
+               }
+
+               public int size() {
+                       return set.size();
+               }
+
+               public Object[] toArray() {
+                       return set.toArray();
+               }
+
+               @SuppressWarnings({"unchecked"})
+               public Object[] toArray(Object[] array) {
+                       return set.toArray( array );
+               }
+
+       }
+
+       protected final class ListProxy implements java.util.List {
+               protected final List list;
+
+               public ListProxy(List list) {
+                       this.list = list;
+               }
+
+               @Override
+               @SuppressWarnings({"unchecked"})
+               public void add(int index, Object value) {
+                       write();
+                       list.add( index, value );
+               }
+
+               @Override
+               @SuppressWarnings({"unchecked"})
+               public boolean add(Object o) {
+                       write();
+                       return list.add( o );
+               }
+
+               @Override
+               @SuppressWarnings({"unchecked"})
+               public boolean addAll(Collection c) {
+                       write();
+                       return list.addAll( c );
+               }
+
+               @Override
+               @SuppressWarnings({"unchecked"})
+               public boolean addAll(int i, Collection c) {
+                       write();
+                       return list.addAll( i, c );
+               }
+
+               @Override
+               public void clear() {
+                       write();
+                       list.clear();
+               }
+
+               @Override
+               public boolean contains(Object o) {
+                       return list.contains( o );
+               }
+
+               @Override
+               public boolean containsAll(Collection c) {
+                       return list.containsAll( c );
+               }
+
+               @Override
+               public Object get(int i) {
+                       return list.get( i );
+               }
+
+               @Override
+               public int indexOf(Object o) {
+                       return list.indexOf( o );
+               }
+
+               @Override
+               public boolean isEmpty() {
+                       return list.isEmpty();
+               }
+
+               @Override
+               public Iterator iterator() {
+                       return new IteratorProxy( list.iterator() );
+               }
+
+               @Override
+               public int lastIndexOf(Object o) {
+                       return list.lastIndexOf( o );
+               }
+
+               @Override
+               public ListIterator listIterator() {
+                       return new ListIteratorProxy( list.listIterator() );
+               }
+
+               @Override
+               public ListIterator listIterator(int i) {
+                       return new ListIteratorProxy( list.listIterator( i ) );
+               }
+
+               @Override
+               public Object remove(int i) {
+                       write();
+                       return list.remove( i );
+               }
+
+               @Override
+               public boolean remove(Object o) {
+                       write();
+                       return list.remove( o );
+               }
+
+               @Override
+               public boolean removeAll(Collection c) {
+                       write();
+                       return list.removeAll( c );
+               }
+
+               @Override
+               public boolean retainAll(Collection c) {
+                       write();
+                       return list.retainAll( c );
+               }
+
+               @Override
+               @SuppressWarnings({"unchecked"})
+               public Object set(int i, Object o) {
+                       write();
+                       return list.set( i, o );
+               }
+
+               @Override
+               public int size() {
+                       return list.size();
+               }
+
+               @Override
+               public List subList(int i, int j) {
+                       return list.subList( i, j );
+               }
+
+               @Override
+               public Object[] toArray() {
+                       return list.toArray();
+               }
+
+               @Override
+               @SuppressWarnings({"unchecked"})
+               public Object[] toArray(Object[] array) {
+                       return list.toArray( array );
+               }
+
+       }
+
+       /**
+        * Contract for operations which are part of a collection's operation queue.
+        */
+       protected interface DelayedOperation {
+               public void operate();
+
+               public Object getAddedInstance();
+
+               public Object getOrphan();
+       }
+
+       /**
+        * Given a collection of entity instances that used to
+        * belong to the collection, and a collection of instances
+        * that currently belong, return a collection of orphans
+        */
+       @SuppressWarnings({"JavaDoc", "unchecked"})
+       protected static Collection getOrphans(
+                       Collection oldElements,
+                       Collection currentElements,
+                       String entityName,
+                       SessionImplementor session) throws HibernateException {
+
+               // short-circuit(s)
+               if ( currentElements.size() == 0 ) {
+                       return oldElements; // no new elements, the old list contains only Orphans
+               }
+               if ( oldElements.size() == 0 ) {
+                       return oldElements; // no old elements, so no Orphans neither
+               }
+
+               final EntityPersister entityPersister = session.getFactory().getEntityPersister( entityName );
+               final Type idType = entityPersister.getIdentifierType();
+
+               // create the collection holding the Orphans
+               Collection res = new ArrayList();
+
+               // collect EntityIdentifier(s) of the *current* elements - add them into a HashSet for fast access
+               java.util.Set currentIds = new HashSet();
+               java.util.Set currentSaving = new IdentitySet();
+               for ( Object current : currentElements ) {
+                       if ( current != null && ForeignKeys.isNotTransient( entityName, current, null, session ) ) {
+                               EntityEntry ee = session.getPersistenceContext().getEntry( current );
+                               if ( ee != null && ee.getStatus() == Status.SAVING ) {
+                                       currentSaving.add( current );
+                               }
+                               else {
+                                       Serializable currentId = ForeignKeys.getEntityIdentifierIfNotUnsaved(
+                                                       entityName,
+                                                       current,
+                                                       session
+                                       );
+                                       currentIds.add( new TypedValue( idType, currentId, entityPersister.getEntityMode() ) );
+                               }
+                       }
+               }
+
+               // iterate over the *old* list
+               for ( Object old : oldElements ) {
+                       if ( !currentSaving.contains( old ) ) {
+                               Serializable oldId = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, old, session );
+                               if ( !currentIds.contains( new TypedValue( idType, oldId, entityPersister.getEntityMode() ) ) ) {
+                                       res.add( old );
+                               }
+                       }
+               }
+
+               return res;
+       }
+
+       public static void identityRemove(
+                       Collection list,
+                       Object object,
+                       String entityName,
+                       SessionImplementor session) throws HibernateException {
+
+               if ( object != null && ForeignKeys.isNotTransient( entityName, object, null, session ) ) {
+                       final EntityPersister entityPersister = session.getFactory().getEntityPersister( entityName );
+                       Type idType = entityPersister.getIdentifierType();
+
+                       Serializable idOfCurrent = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, object, session );
+                       Iterator itr = list.iterator();
+                       while ( itr.hasNext() ) {
+                               Serializable idOfOld = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, itr.next(), session );
+                               if ( idType.isEqual( idOfCurrent, idOfOld, session.getFactory() ) ) {
+                                       itr.remove();
+                                       break;
+                               }
+                       }
+
+               }
+       }
+
+       public Object getIdentifier(Object entry, int i) {
+               throw new UnsupportedOperationException();
+       }
+
+       public Object getOwner() {
+               return owner;
+       }
+
+       public void setOwner(Object owner) {
+               this.owner = owner;
+       }
+
+       /** ------ Below is section of code which makes remote service calls ----- */
+       // The affected methods are : 
+       // initialize(final boolean writing)
+       // readSize()
+       // readIndexExistence(final Object index)
+       // readElementExistence(final Object element)
+       // readElementByIndex(final Object index) 
+       
+       private static ICdmApplicationConfiguration configuration;
+       private static boolean remoting = false;
+       
+       public static void setConfiguration(ICdmApplicationConfiguration conf) {
+               configuration = conf;
+                       
+               if(conf instanceof CdmApplicationRemoteController) {
+                       remoting = true;
+               } else {
+                       remoting = false;
+               }
+       }
+       
+       
+       private void remoteInitialize() {
+               
+               if (getOwner() != null && !initialized) {                       
+                       
+                       try {
+                               String role = getRole();
+                               String fieldName = role.substring(role.lastIndexOf(".") + 1);
+                               log.info("--> Remote Lazy Initializing " + getRole() + " , key : " + getKey() + " , field : " + fieldName);
+                               Object owner = getOwner();
+                               
+                               if(configuration == null) {
+                                       throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");
+                               }
+                               ICommonService commonService = configuration.getCommonService();
+                               if(commonService == null) {
+                                       throw new HibernateException("commonService not initialized (null)");
+                               }
+                               
+                               PersistentCollection col = commonService.initializeCollection(this); 
+                               afterInitialize();
+
+                               Class<?> clazz = getClass();
+                               if (clazz != null) {    
+                                       CollectionField cf = getCollectionField(col);
+                                       Field field = clazz.getDeclaredField(cf.getFieldName());
+                                       field.setAccessible(true);
+                                       field.set(this, cf.getCollection());                           
+                               }               
+                       } catch (Exception ex) {
+                               log.warn(ex.getMessage());
+                       }                       
+               }
+       }
+       
+       
+       private CollectionField getCollectionField(PersistentCollection pc) {
+               if(pc != null) {
+                       if(pc instanceof PersistentSet) {
+                               return new CollectionField(new HashSet((Set)pc), "set");
+                       }
+                       if(pc instanceof PersistentSortedSet) {
+                               return new CollectionField(new TreeSet((Set)pc), "set");
+                       }
+                       if(pc instanceof PersistentList) {
+                               return new CollectionField(new ArrayList((List)pc), "list");
+                       }
+                       if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
+                               return new CollectionField(new HashMap((Map)pc), "map");
+                       }
+                       if(pc instanceof PersistentSortedMap) {
+                               return new CollectionField(new TreeMap((Map)pc), "map");
+                       }
+               }
+               return null;
+       }
+       
+       private String getCollectionFieldName(PersistentCollection pc) {
+               if(pc != null) {
+                       if(pc instanceof PersistentSet || pc instanceof PersistentSortedSet) {
+                               return "set";
+                       }                       
+                       if(pc instanceof PersistentList) {
+                               return "list";
+                       }
+                       if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
+                               return "map";
+                       }
+               }
+               return null;
+       }
+       
+       private class CollectionField {
+               private Object col;
+               private String fieldName;
+               public CollectionField(Object col, String fieldName) {
+                       this.col = col;
+                       this.fieldName = fieldName;
+               }
+               
+               public Object getCollection() {
+                       return this.col;
+               }
+               
+               public String getFieldName() {
+                       return this.fieldName;
+               }
+       }
+       
+       public static boolean isInitialized(List list) {
+               return ((AbstractPersistentCollection)list).initialized;
+       }
+       
+       public static boolean isInitialized(Map map) {
+               return ((AbstractPersistentCollection)map).initialized;
+       }
+       
+       public static boolean isInitialized(Set set) {
+               return ((AbstractPersistentCollection)set).initialized;
+       }
+       
+       //FIXME:Remoting These methods may no longer be required since we are 
+       //               initialising collections as default behaviour
+       private int remoteSize() {
+               int size = configuration.getCommonService().size(this);
+               log.debug("--> Remote Lazy Initializing size of " + getRole() + " to " + size);
+               if(size == -1) {
+                       throw new HibernateException("size of " + getClass() + " could not be retrieved from remote service");
+               }
+               return size;
+       }
+       
+       private Object remoteReadElementByIndex(int index) {
+               Object element = configuration.getCommonService().get(this,index);
+               log.debug("--> Remote Lazy Initializing element from " + getRole() + " at index " + index);
+               return element;
+       }
+       
+       private boolean remoteReadElementExistence(Object element) {
+               return configuration.getCommonService().contains(this,element);
+       }
+       
+       private boolean remoteReadIndexExistence(Object index) {
+               return false;
+       }
+}
+
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java b/eu.etaxonomy.taxeditor.remoting/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java
new file mode 100644 (file)
index 0000000..86a7ed3
--- /dev/null
@@ -0,0 +1,463 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008-2011, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors.  All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA  02110-1301  USA
+ */
+package org.hibernate.proxy;
+
+import java.io.Serializable;
+
+import javax.naming.NamingException;
+
+import org.hibernate.HibernateException;
+import org.hibernate.LazyInitializationException;
+import org.hibernate.Session;
+import org.hibernate.SessionException;
+import org.hibernate.TransientObjectException;
+import org.hibernate.engine.spi.EntityKey;
+import org.hibernate.engine.spi.SessionFactoryImplementor;
+import org.hibernate.engine.spi.SessionImplementor;
+import org.hibernate.internal.SessionFactoryRegistry;
+import org.hibernate.persister.entity.EntityPersister;
+import org.jboss.logging.Logger;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * Convenience base class for lazy initialization handlers.  Centralizes the basic plumbing of doing lazy
+ * initialization freeing subclasses to acts as essentially adapters to their intended entity mode and/or
+ * proxy generation strategy.
+ *
+ * @author Gavin King
+ */
+public abstract class AbstractLazyInitializer implements LazyInitializer {
+       private static final Logger log = Logger.getLogger( AbstractLazyInitializer.class );
+
+       private String entityName;
+       private Serializable id;
+       private Object target;
+       private boolean initialized;
+       private boolean readOnly;
+       private boolean unwrap;
+       private transient SessionImplementor session;
+       private Boolean readOnlyBeforeAttachedToSession;
+
+       private String sessionFactoryUuid;
+       private boolean specjLazyLoad = false;
+
+       /**
+        * For serialization from the non-pojo initializers (HHH-3309)
+        */
+       protected AbstractLazyInitializer() {
+       }
+
+       /**
+        * Main constructor.
+        *
+        * @param entityName The name of the entity being proxied.
+        * @param id The identifier of the entity being proxied.
+        * @param session The session owning the proxy.
+        */
+       protected AbstractLazyInitializer(String entityName, Serializable id, SessionImplementor session) {
+               this.entityName = entityName;
+               this.id = id;
+               // initialize other fields depending on session state
+               if ( session == null ) {
+                       unsetSession();
+               }
+               else {
+                       setSession( session );
+               }
+       }
+
+       @Override
+       public final String getEntityName() {
+               return entityName;
+       }
+
+       @Override
+       public final Serializable getIdentifier() {
+               return id;
+       }
+
+       @Override
+       public final void setIdentifier(Serializable id) {
+               this.id = id;
+       }
+
+       @Override
+       public final boolean isUninitialized() {
+               return !initialized;
+       }
+
+       @Override
+       public final SessionImplementor getSession() {
+               return session;
+       }
+
+       @Override
+       public final void setSession(SessionImplementor s) throws HibernateException {
+               if ( s != session ) {
+                       // check for s == null first, since it is least expensive
+                       if ( s == null ) {
+                               unsetSession();
+                       }
+                       else if ( isConnectedToSession() ) {
+                               //TODO: perhaps this should be some other RuntimeException...
+                               throw new HibernateException( "illegally attempted to associate a proxy with two open Sessions" );
+                       }
+                       else {
+                               // s != null
+                               session = s;
+                               if ( readOnlyBeforeAttachedToSession == null ) {
+                                       // use the default read-only/modifiable setting
+                                       final EntityPersister persister = s.getFactory().getEntityPersister( entityName );
+                                       setReadOnly( s.getPersistenceContext().isDefaultReadOnly() || !persister.isMutable() );
+                               }
+                               else {
+                                       // use the read-only/modifiable setting indicated during deserialization
+                                       setReadOnly( readOnlyBeforeAttachedToSession.booleanValue() );
+                                       readOnlyBeforeAttachedToSession = null;
+                               }
+                       }
+               }
+       }
+
+       private static EntityKey generateEntityKeyOrNull(Serializable id, SessionImplementor s, String entityName) {
+               if ( id == null || s == null || entityName == null ) {
+                       return null;
+               }
+               return s.generateEntityKey( id, s.getFactory().getEntityPersister( entityName ) );
+       }
+
+       @Override
+       public final void unsetSession() {
+               prepareForPossibleSpecialSpecjInitialization();
+               session = null;
+               readOnly = false;
+               readOnlyBeforeAttachedToSession = null;
+       }
+
+       @Override
+       public final void initialize() throws HibernateException {
+               // In remoting we are sure that session is null
+               // both when using property paths and switching off conversations
+               if(session == null && remoting) {
+                       remoteInitialize();
+               }
+               if ( !initialized ) {
+                       if ( specjLazyLoad ) {
+                               specialSpecjInitialization();
+                       }
+                       else if ( session == null ) {
+                               throw new LazyInitializationException( "could not initialize proxy - no Session" );
+                       }
+                       else if ( !session.isOpen() ) {
+                               throw new LazyInitializationException( "could not initialize proxy - the owning Session was closed" );
+                       }
+                       else if ( !session.isConnected() ) {
+                               throw new LazyInitializationException( "could not initialize proxy - the owning Session is disconnected" );
+                       }
+                       else {
+                               target = session.immediateLoad( entityName, id );
+                               initialized = true;
+                               checkTargetState();
+                       }
+               }
+               else {
+                       checkTargetState();
+               }
+       }
+
+       protected void specialSpecjInitialization() {
+               if ( session == null ) {
+                       //we have a detached collection thats set to null, reattach
+                       if ( sessionFactoryUuid == null ) {
+                               throw new LazyInitializationException( "could not initialize proxy - no Session" );
+                       }
+                       try {
+                               SessionFactoryImplementor sf = (SessionFactoryImplementor)
+                                               SessionFactoryRegistry.INSTANCE.getSessionFactory( sessionFactoryUuid );
+                               SessionImplementor session = (SessionImplementor) sf.openSession();
+
+                               // TODO: On the next major release, add an
+                               // 'isJTA' or 'getTransactionFactory' method to Session.
+                               boolean isJTA = session.getTransactionCoordinator()
+                                               .getTransactionContext().getTransactionEnvironment()
+                                               .getTransactionFactory()
+                                               .compatibleWithJtaSynchronization();
+
+                               if ( !isJTA ) {
+                                       // Explicitly handle the transactions only if we're not in
+                                       // a JTA environment.  A lazy loading temporary session can
+                                       // be created even if a current session and transaction are
+                                       // open (ex: session.clear() was used).  We must prevent
+                                       // multiple transactions.
+                                       ( ( Session) session ).beginTransaction();
+                               }
+
+                               try {
+                                       target = session.immediateLoad( entityName, id );
+                               }
+                               finally {
+                                       // make sure the just opened temp session gets closed!
+                                       try {
+                                               if ( !isJTA ) {
+                                                       ( ( Session) session ).getTransaction().commit();
+                                               }
+                                               ( (Session) session ).close();
+                                       }
+                                       catch (Exception e) {
+                                               log.warn( "Unable to close temporary session used to load lazy proxy associated to no session" );
+                                       }
+                               }
+                               initialized = true;
+                               checkTargetState();
+                       }
+                       catch (Exception e) {
+                               e.printStackTrace();
+                               throw new LazyInitializationException( e.getMessage() );
+                       }
+               }
+               else if ( session.isOpen() && session.isConnected() ) {
+                       target = session.immediateLoad( entityName, id );
+                       initialized = true;
+                       checkTargetState();
+               }
+               else {
+                       throw new LazyInitializationException( "could not initialize proxy - Session was closed or disced" );
+               }
+       }
+
+       protected void prepareForPossibleSpecialSpecjInitialization() {
+               if ( session != null ) {
+                       specjLazyLoad = session.getFactory().getSettings().isInitializeLazyStateOutsideTransactionsEnabled();
+
+                       if ( specjLazyLoad && sessionFactoryUuid == null ) {
+                               try {
+                                       sessionFactoryUuid = (String) session.getFactory().getReference().get( "uuid" ).getContent();
+                               }
+                               catch (NamingException e) {
+                                       //not much we can do if this fails...
+                               }
+                       }
+               }
+       }
+
+       private void checkTargetState() {
+               if ( !unwrap ) {
+                       if ( target == null ) {
+                               getSession().getFactory().getEntityNotFoundDelegate().handleEntityNotFound( entityName, id );
+                       }
+               }
+       }
+
+       /**
+        * Getter for property 'connectedToSession'.
+        *
+        * @return Value for property 'connectedToSession'.
+        */
+       protected final boolean isConnectedToSession() {
+               return getProxyOrNull() != null;
+       }
+
+       private Object getProxyOrNull() {
+               final EntityKey entityKey = generateEntityKeyOrNull( getIdentifier(), session, getEntityName() );
+               if ( entityKey != null && session != null && session.isOpen() ) {
+                       return session.getPersistenceContext().getProxy( entityKey );
+               }
+               return null;
+       }
+
+       @Override
+       public final Object getImplementation() {
+               initialize();
+               return target;
+       }
+
+       @Override
+       public final void setImplementation(Object target) {
+               this.target = target;
+               initialized = true;
+       }
+
+       @Override
+       public final Object getImplementation(SessionImplementor s) throws HibernateException {
+               final EntityKey entityKey = generateEntityKeyOrNull( getIdentifier(), s, getEntityName() );
+               return (entityKey == null ? null : s.getPersistenceContext().getEntity( entityKey ));
+       }
+
+       /**
+        * Getter for property 'target'.
+        * <p/>
+        * Same as {@link #getImplementation()} except that this method will not force initialization.
+        *
+        * @return Value for property 'target'.
+        */
+       protected final Object getTarget() {
+               return target;
+       }
+
+       @Override
+       public final boolean isReadOnlySettingAvailable() {
+               return (session != null && !session.isClosed());
+       }
+
+       private void errorIfReadOnlySettingNotAvailable() {
+               if ( session == null ) {
+                       throw new TransientObjectException(
+                                       "Proxy is detached (i.e, session is null). The read-only/modifiable setting is only accessible when the proxy is associated with an open session."
+                       );
+               }
+               if ( session.isClosed() ) {
+                       throw new SessionException(
+                                       "Session is closed. The read-only/modifiable setting is only accessible when the proxy is associated with an open session."
+                       );
+               }
+       }
+
+       @Override
+       public final boolean isReadOnly() {
+               errorIfReadOnlySettingNotAvailable();
+               return readOnly;
+       }
+
+       @Override
+       public final void setReadOnly(boolean readOnly) {
+               errorIfReadOnlySettingNotAvailable();
+               // only update if readOnly is different from current setting
+               if ( this.readOnly != readOnly ) {
+                       final EntityPersister persister = session.getFactory().getEntityPersister( entityName );
+                       if ( !persister.isMutable() && !readOnly ) {
+                               throw new IllegalStateException( "cannot make proxies for immutable entities modifiable" );
+                       }
+                       this.readOnly = readOnly;
+                       if ( initialized ) {
+                               EntityKey key = generateEntityKeyOrNull( getIdentifier(), session, getEntityName() );
+                               if ( key != null && session.getPersistenceContext().containsEntity( key ) ) {
+                                       session.getPersistenceContext().setReadOnly( target, readOnly );
+                               }
+                       }
+               }
+       }
+
+       /**
+        * Get the read-only/modifiable setting that should be put in affect when it is
+        * attached to a session.
+        * <p/>
+        * This method should only be called during serialization when read-only/modifiable setting
+        * is not available (i.e., isReadOnlySettingAvailable() == false)
+        *
+        * @return null, if the default setting should be used;
+        *         true, for read-only;
+        *         false, for modifiable
+        *
+        * @throws IllegalStateException if isReadOnlySettingAvailable() == true
+        */
+       protected final Boolean isReadOnlyBeforeAttachedToSession() {
+               if ( isReadOnlySettingAvailable() ) {
+                       throw new IllegalStateException(
+                                       "Cannot call isReadOnlyBeforeAttachedToSession when isReadOnlySettingAvailable == true"
+                       );
+               }
+               return readOnlyBeforeAttachedToSession;
+       }
+
+       /**
+        * Set the read-only/modifiable setting that should be put in affect when it is
+        * attached to a session.
+        * <p/>
+        * This method should only be called during deserialization, before associating
+        * the proxy with a session.
+        *
+        * @param readOnlyBeforeAttachedToSession, the read-only/modifiable setting to use when
+        * associated with a session; null indicates that the default should be used.
+        *
+        * @throws IllegalStateException if isReadOnlySettingAvailable() == true
+        */
+       /* package-private */
+       final void setReadOnlyBeforeAttachedToSession(Boolean readOnlyBeforeAttachedToSession) {
+               if ( isReadOnlySettingAvailable() ) {
+                       throw new IllegalStateException(
+                                       "Cannot call setReadOnlyBeforeAttachedToSession when isReadOnlySettingAvailable == true"
+                       );
+               }
+               this.readOnlyBeforeAttachedToSession = readOnlyBeforeAttachedToSession;
+       }
+
+       @Override
+       public boolean isUnwrap() {
+               return unwrap;
+       }
+
+       @Override
+       public void setUnwrap(boolean unwrap) {
+               this.unwrap = unwrap;
+       }
+
+       /** Below is section of code which makes remote service calls */
+
+       private static ICdmApplicationConfiguration configuration;
+       private static boolean remoting = false;
+
+       public static void setConfiguration(ICdmApplicationConfiguration conf) {
+               configuration = conf;
+
+               if(conf instanceof CdmApplicationRemoteController) {
+                       remoting = true;
+               } else {
+                       remoting = false;
+               }
+       }
+
+
+       private void remoteInitialize() {
+
+               if(!initialized) {
+                       int classid = ((Integer)getIdentifier()).intValue();
+                       log.debug("--> Remote Lazy Initializing" + getEntityName() + " with id " + classid);
+                       Class clazz;
+                       try {
+                               clazz = Class.forName(getEntityName());
+                       } catch (ClassNotFoundException e) {
+                               throw new HibernateException("Class for " + getEntityName() + " not found", e);
+                       }
+                       if(configuration == null) {
+                               throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");
+                       }
+                       ICommonService commonService = configuration.getCommonService();
+                       if(commonService == null) {
+                               throw new HibernateException("commonService not initialized (null)");
+                       }
+
+                       CdmBase cdmBase = CdmBase.deproxy(commonService.find(clazz,classid),clazz);
+                       setImplementation(cdmBase);
+
+               }
+       }
+
+       public static boolean isInitialized(AbstractLazyInitializer obj) {
+               return obj.initialized;
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar b/eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar
new file mode 100644 (file)
index 0000000..91c88d6
Binary files /dev/null and b/eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar differ
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar b/eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar
new file mode 100644 (file)
index 0000000..ef2faaf
Binary files /dev/null and b/eu.etaxonomy.taxeditor.remoting/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar differ
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/config.properties b/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/config.properties
new file mode 100644 (file)
index 0000000..f706a6e
--- /dev/null
@@ -0,0 +1,2 @@
+serverName=localhost:8080
+contextPath=remoting
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml b/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml
new file mode 100644 (file)
index 0000000..e3c0f9f
--- /dev/null
@@ -0,0 +1,480 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xmlns:context="http://www.springframework.org/schema/context"\r
+       xmlns:tx="http://www.springframework.org/schema/tx"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd\r
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
+\r
+       \r
+   <bean id="agentService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/agent.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IAgentService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="annotationService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/annotation.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IAnnotationService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="auditeventService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/auditevent.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IAuditEventService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="classificationService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/classification.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IClassificationService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="collectionService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/collection.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.ICollectionService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="commonService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/common.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.ICommonService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="descriptionService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/description.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IDescriptionService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+   <bean id="editGeoService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/editgeo.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.ext.geo.IEditGeoService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="featureNodeService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/featurenode.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IFeatureNodeService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="featureTreeService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/featuretree.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IFeatureTreeService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="groupService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/group.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IGroupService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="identificationKeyService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/identificationkey.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IIdentificationKeyService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="locationService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/location.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.ILocationService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="markerService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/marker.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IMarkerService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="mediaService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/media.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IMediaService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="nameService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/name.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.INameService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="occurrenceService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/occurrence.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IOccurrenceService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="polytomousKeyNodeService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/polytomouskeynode.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="polytomousKeyService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/polytomouskey.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IPolytomousKeyService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="referenceService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/reference.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IReferenceService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+<!-- \r
+   <bean id="serviceService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/service.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IService</value>\r
+               </property>\r
+       </bean>\r
+ -->\r
\r
+   <bean id="taxonNodeService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/taxonnode.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.ITaxonNodeService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="taxonService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/taxon.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.ITaxonService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="termService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/term.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.ITermService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="userService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/user.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IUserService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="vocabularyService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/vocabulary.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IVocabularyService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+   <bean id="workingSetService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/workingset.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IWorkingSetService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+   <bean id="grantedAuthorityService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/grantedauthority.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IGrantedAuthorityService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+   <bean id="databaseService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/database.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.IDatabaseService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+   <bean id="lsidAuthorityService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/lsidauthoruty.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.lsid.LSIDAuthorityService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+   <bean id="lsidMetadataService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/lsidmetadata.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.lsid.LSIDMetadataService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+   <bean id="lsiDataService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/lsiddata.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.lsid.LSIDDataService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+       <bean id="providerManager"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/authenticationManager.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>org.springframework.security.authentication.AuthenticationManager</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+       <bean id="primerService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/primer.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.molecular.IPrimerService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+       <bean id="amplificationService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/amplification.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.molecular.IAmplificationService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+       \r
+       <bean id="sequenceService"\r
+               class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+               <property name="serviceUrl">\r
+                       <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/sequence.service</value>\r
+               </property>\r
+               <property name="serviceInterface">\r
+                       <value>eu.etaxonomy.cdm.api.service.molecular.ISequenceService</value>\r
+               </property>\r
+               <property name="httpInvokerRequestExecutor">\r
+                       <bean class="org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor" />\r
+               </property>\r
+       </bean>\r
+\r
+\r
+\r
+</beans>\r
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml b/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml
new file mode 100644 (file)
index 0000000..11a206b
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:tx="http://www.springframework.org/schema/tx"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+       
+       
+    <!-- Default application context and term initializer -->
+  <import resource="classpath:/eu/etaxonomy/cdm/defaultApplicationContext.xml"/>
+  <bean id="persistentTermInitializer" class="eu.etaxonomy.cdm.database.PersistentTermInitializer">
+    <property name="omit" value="false" />
+  </bean>
+    
+  <import resource="classpath:/eu/etaxonomy/cdm/remote.xml"/>
+  <import resource="classpath:eu/etaxonomy/cdm/remote/json/jsonConfigurations.xml"/>
+  
+  <context:component-scan base-package="eu/etaxonomy/cdm/ext"/>
+  
+  <context:component-scan base-package="eu/etaxonomy/cdm/remote">
+    <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.remote\.config\.DataSourceConfigurer" />
+    <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.remote\.config\.LoggingConfigurer" />
+    <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.remote\.view\.PatternViewResolver" />
+    <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.remote\.vaadin\..*" />
+    <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.remote\.controller\..*Portal.*" /> 
+  </context:component-scan>
+  
+
+</beans>
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml b/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml
new file mode 100644 (file)
index 0000000..66be8d6
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xmlns:context="http://www.springframework.org/schema/context"\r
+       xmlns:tx="http://www.springframework.org/schema/tx"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
+       \r
+       \r
+    <!--  <bean id="remoteTermInitializer" class="eu.etaxonomy.cdm.remote.service.RemoteTermInitializer"/>-->\r
+        \r
+       <context:annotation-config/>\r
+    \r
+    <import resource="classpath:/eu/etaxonomy/cdm/httpInvokerServiceClients.xml"/>\r
+    \r
+    <bean id="cdmApplicationRemoteConfiguration" class="eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration"/>    \r
+    \r
+       <import resource="classpath:/eu/etaxonomy/cdm/remoting_services_security.xml"/>         \r
+       \r
+       <bean id="cdmServiceCacher" class="eu.etaxonomy.cdm.api.cache.CdmServiceCacher"/>\r
+       \r
+       \r
+       <!-- EditGeoService was moved to ext. Therefore it will not be found by the default component scan.
+       We added it here because the Editor needs it. However, this is only a temporary solution.
+       In the future we want to pass in an application context with the editor. -->\r
+\r
+\r
+       <!-- <bean id="conversationHolder" class="eu.etaxonomy.cdm.api.conversation.ConversationHolder" scope="prototype"/> -->\r
+\r
+       <!-- TODO move to io -->\r
+<!-- \r
+       <context:component-scan base-package="eu/etaxonomy/cdm/io">\r
+               <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.io\.berlinModel.*" />\r
+       </context:component-scan>\r
+ -->\r
+       <!-- enable the configuration of transactional behavior based on annotations -->\r
+       <!-- <tx:annotation-driven transaction-manager="transactionManager"/> -->\r
+\r
+</beans>\r
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml b/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml
new file mode 100644 (file)
index 0000000..46916f5
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"\r
+  xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"\r
+  xsi:schemaLocation="http://www.springframework.org/schema/beans\r
+    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd\r
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd\r
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd\r
+    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd\r
+    ">\r
+\r
+\r
+    <!--\r
+      ============================== SECURITY ==============================\r
+    -->\r
+    <bean id="accessDecisionManager" class="eu.etaxonomy.cdm.persistence.hibernate.permission.UnanimousBasedUnrevokable">\r
+        <property name="decisionVoters">\r
+            <list>\r
+                <bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.GrantAlwaysVoter" />\r
+                <bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonNodeVoter" />\r
+                <bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonBaseVoter" />\r
+                <bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionBaseVoter" />\r
+                <bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionElementVoter" />\r
+            </list>\r
+        </property>\r
+    </bean>\r
+\r
+    <!--\r
+        CdmPermissionEvaluator.hasPermissions() evaluates the CdmPermissions like TAXONNODE.UPDATE{20c8f083-5870-4cbd-bf56-c5b2b98ab6a7}\r
+    -->\r
+    <bean id="cdmPermissionEvaluator" class="eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionEvaluator">\r
+        <property name="accessDecisionManager" ref="accessDecisionManager" />\r
+    </bean>\r
+\r
+    <!-- The CdmSecurityHibernateInterceptor checks onSave() and on flushDirty() if the currently authenticated principal or token  has\r
+    sufficient permissions on the entity to be persisted -->\r
+    <bean id="securityHibernateInterceptor" class="eu.etaxonomy.cdm.persistence.hibernate.CdmSecurityHibernateInterceptor">\r
+        <property name="permissionEvaluator" ref="cdmPermissionEvaluator" />\r
+    </bean>\r
+\r
+</beans>\r
diff --git a/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml b/eu.etaxonomy.taxeditor.remoting/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml
new file mode 100644 (file)
index 0000000..4b5a565
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+  xmlns:context="http://www.springframework.org/schema/context"\r
+  xmlns:security="http://www.springframework.org/schema/security"\r
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd\r
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd\r
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd\r
+    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"\r
+    >\r
+\r
+    <import resource="classpath:/eu/etaxonomy/cdm/remoting_persistence_security.xml"/>\r
+    <!--\r
+        ======================================================================\r
+          security specific configuration\r
+        ======================================================================\r
+     -->\r
+    <security:global-method-security pre-post-annotations="enabled" run-as-manager-ref="runAsManager" >\r
+        <security:expression-handler ref="expressionHandler" />\r
+    </security:global-method-security>\r
+\r
+    <!--\r
+        To use "hasPermission()" in the Spring EL method annotations like @PreAuthorize we explicitly configure the permissionEvaluator\r
+        the cdmPermissionEvaluator is already defined in the persistence security context\r
+    -->\r
+    <bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">\r
+        <property name="permissionEvaluator" ref="cdmPermissionEvaluator" />\r
+    </bean>\r
+\r
+    <bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">\r
+        <property name="providers">\r
+            <list>\r
+                <ref local="daoAuthenticationProvider"/>\r
+            </list>\r
+        </property>\r
+    </bean>\r
+\r
+    <bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">\r
+        <property name="userDetailsService" ref="userService"/>\r
+        <property name="saltSource" ref="saltSource"/>\r
+        <property name="passwordEncoder" ref="passwordEncoder"/>\r
+    </bean>\r
+\r
+    <bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>\r
+\r
+    <bean id="saltSource" class="org.springframework.security.authentication.dao.ReflectionSaltSource">\r
+        <property name="userPropertyToUse" value="getUsername"/>\r
+    </bean>\r
+\r
+    <!--\r
+        Run-As Authentication Replacement for system operations\r
+        as e.g. performed by the eu.etaxonomy.cdm.api.application.FirstDataInserter\r
+\r
+        the key must match FirstDataInserter.RUN_AS_KEY\r
+     -->\r
+    <bean id="runAsManager"\r
+        class="org.springframework.security.access.intercept.RunAsManagerImpl">\r
+      <property name="key" value="TtlCx3pgKC4l"/>\r
+    </bean>\r
+\r
+\r
+</beans>\r
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java
new file mode 100644 (file)
index 0000000..29eb359
--- /dev/null
@@ -0,0 +1,27 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.exception;
+
+/**
+ * @author cmathew
+ * @date 23 Sep 2014
+ *
+ */
+public class CDMServerException extends Exception {
+
+    public CDMServerException(String message) {
+        super(message);
+    }
+
+    public CDMServerException(Exception e) {
+        super(e);
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java
new file mode 100644 (file)
index 0000000..4700471
--- /dev/null
@@ -0,0 +1,102 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.UnitilsJUnit4;
+import org.unitils.database.DatabaseUnitils;
+import org.unitils.database.annotations.Transactional;
+import org.unitils.database.util.TransactionMode;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.remote.CdmPersistentRemoteSource;
+import eu.etaxonomy.cdm.remote.CdmRemoteSource;
+import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
+import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
+
+
+/**
+ * Base class for remoting tests, responsible for
+ * - starting / stop the cdm server
+ * - running some basic connection tests
+ * - setting up the remote configuration.
+ *
+ */
+@Transactional(TransactionMode.DISABLED)
+public class BaseRemotingTest extends UnitilsJUnit4 {
+    private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+
+    private static ICdmApplicationConfiguration remoteApplicationController;
+    private static ICdmRemoteSource cdmRemoteSource;
+    private static CdmPersistentRemoteSource remotePersistentSource;
+
+    private static boolean stoppingServer = false;
+
+    @BeforeClass
+    public static void  initializeBaseRemotingTest() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+
+        //DatabaseUnitils.disableConstraints();
+        try {
+            CDMServer.getInstance().start();
+        } catch (Exception e) {
+            e.printStackTrace();
+            Assert.fail("Server failed to start. Reason : " + e.getMessage());
+        }
+        cdmRemoteSource = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+                CDMServer.getInstance().getHost(),
+                CDMServer.getInstance().getPort(),
+                CDMServer.getInstance().getContextPath(),
+                NomenclaturalCode.ICNAFP);
+        remoteApplicationController =
+                CdmApplicationRemoteController.NewInstance(cdmRemoteSource,
+                        false,
+                        null,
+                        null);
+
+        try {
+            remotePersistentSource = CdmPersistentRemoteSource.NewInstance("default");
+        } catch (CdmRemoteSourceException e) {
+            Assert.fail("Default Remote Persistent Source failed to load. Reason : " + e.getMessage());
+        }
+
+    }
+
+
+    protected static ICdmApplicationConfiguration getRemoteApplicationController() {
+        return remoteApplicationController;
+    }
+
+    protected static ICdmRemoteSource getCdmRemoteSource() {
+        return cdmRemoteSource;
+    }
+
+    protected static CdmPersistentRemoteSource getCdmPersistentRemoteSource() {
+        return remotePersistentSource;
+    }
+
+    @AfterClass
+    public static void cleanup() {
+        try {
+            CDMServer.getInstance().stop();
+        } catch (Exception e) {
+            Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+        }
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java
new file mode 100644 (file)
index 0000000..9f01ae8
--- /dev/null
@@ -0,0 +1,279 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.unitils.database.annotations.TestDataSource;
+import org.unitils.spring.annotation.SpringApplicationContext;
+
+import eu.etaxonomy.cdm.remote.CdmRemoteSourceBase;
+import eu.etaxonomy.taxeditor.exception.CDMServerException;
+
+/**
+ *
+ * Inspired by http://javabitch.blogspot.de/2012/02/junit-with-jetty-restful-cxf.html
+ * @author cmathew
+ * @date 23 Sep 2014
+ *
+ */
+@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml")
+public class CDMServer {
+
+    public static final Logger logger = Logger.getLogger(CDMServer.class);
+
+    @TestDataSource
+    protected DataSource dataSource;
+
+    private boolean runDefaultCDMServer;
+
+    private final String name = "test-cdm-server";
+    private final String host = "127.0.0.1";
+    private final int port = 9090;
+    private final int stopPort = 9191;
+    private final String stopKey = "jetty-cdm-server";
+    private final String contextPath = "";
+
+    private boolean keepServerRunning = true;
+
+    public static final Resource DEFAULT_CDM_WEBAPP_RESOURCE =
+            new ClassPathResource("/etc/jetty/cdmlib-remote-webapp.war");
+
+    public static final Resource DEFAULT_JETTY_CONFIG_RESOURCE =
+            new ClassPathResource("/etc/jetty/jetty.xml");
+
+    public static final Resource DEFAULT_JETTY_TEMP_RESOURCE =
+            new ClassPathResource("/etc/jetty/temp");
+
+    public static final Resource DEFAULT_JETTY_TEMP_WAR_LIB_RESOURCE =
+            new ClassPathResource("/etc/jetty/temp/webapp/WEB-INF/lib");
+
+    public static final Resource DEFAULT_DATASOURCE_FILE =
+            new ClassPathResource("datasources.xml");
+
+    public static final Resource DEFAULT_JETTY_RUNNER_RESOURCE =
+            new ClassPathResource("/etc/jetty/jetty-runner-9.2.3.v20140905.jar");
+
+    public static final Resource DEFAULT_JETTY_RESOURCE =
+            new ClassPathResource("/etc/jetty/start-9.2.3.v20140905.jar");
+
+
+
+    private static CDMServer cdmServer = null;
+    private static CDMServerException cdmse = null;
+
+    private void CDMServer() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+    }
+
+    public static CDMServer getInstance() {
+        if(cdmServer == null) {
+            cdmServer = new CDMServer();
+        }
+        return cdmServer;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public String getContextPath() {
+        return contextPath;
+    }
+
+    public boolean getKeepServerRunning() {
+        return keepServerRunning;
+    }
+
+    public void setKeepServerRunning(boolean keepServerRunning) {
+        this.keepServerRunning = keepServerRunning;
+    }
+
+    public static boolean isRunningInEclipse() {
+        return (System.getProperty("sun.java.command") != null &&
+                System.getProperty("sun.java.command").startsWith("org.eclipse.jdt.internal.junit.runner.RemoteTestRunner"));
+    }
+
+    private String getVMArgs() throws IOException {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" -Dspring.profiles.active=remoting");
+        sb.append(" -Dcdm.beanDefinitionFile=" + DEFAULT_DATASOURCE_FILE.getFile().getAbsolutePath());
+        sb.append(" -Dcdm.datasource=cdmTest");
+        return sb.toString();
+    }
+
+    private String getStartServerArgs() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" --port ");
+        sb.append(port);
+        return sb.toString();
+    }
+
+    private String getStopServerSettings() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" --stop-port ");
+        sb.append(stopPort);
+        sb.append(" --stop-key ");
+        sb.append(stopKey);
+        return sb.toString();
+    }
+
+    private String getStopServerArgs() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" STOP.PORT=");
+        sb.append(stopPort);
+        sb.append(" STOP.KEY=");
+        sb.append(stopKey);
+        return sb.toString();
+    }
+
+    public void start() throws CDMServerException {
+
+        if(isRunning(1)) {
+            logger.info("[CDM-Server] Server already running @ " + host + ":" + port );
+            return;
+        }
+
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                StringBuffer output = new StringBuffer();
+                try{
+                    Process p;
+                    String command = "java "
+                            + getVMArgs()
+                            + " -jar "
+                            + DEFAULT_JETTY_RUNNER_RESOURCE.getFile().getAbsolutePath()
+                            + getStartServerArgs()
+                            + getStopServerSettings()
+                            + " "
+                            + DEFAULT_CDM_WEBAPP_RESOURCE.getFile().getAbsolutePath();
+                    logger.info("[CDM-Server] Start Command : " + command);
+                    p = Runtime.getRuntime().exec(command);
+
+                    BufferedReader reader =
+                            new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+                    String line = "";
+                    while ((line = reader.readLine())!= null) {
+                        logger.info("[CDM-Server] Start : " + line);
+                    }
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    cdmse = new CDMServerException(e);
+                }
+
+            }
+        };
+
+        t.setDaemon(true);
+        cdmse = null;
+        t.start();
+
+        if(isRunning(50)) {
+            logger.info("[CDM-Server] Started Server @ " + host + ":" + port );
+        } else {
+            logger.info("[CDM-Server] Server not started within given interval");
+            throw new CDMServerException("CDM Server not started");
+        }
+
+    }
+
+
+    public boolean isRunning(int checkingIntervals)  {
+        CdmRemoteSourceBase crsb = new CdmRemoteSourceBase("local-cdm-server",
+                host,
+                port,
+                contextPath,
+                null);
+        int intervalsCount = 0;
+        do {
+            try {
+                if(cdmse != null) {
+                    return false;
+                }
+                if(crsb.checkConnection()) {
+                    return true;
+                }
+            } catch (Exception e) {
+                // TODO Auto-generated catch block
+                //e.printStackTrace();
+            }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                // TODO Auto-generated catch block
+                //e.printStackTrace();
+            }
+            intervalsCount++;
+        } while (intervalsCount < checkingIntervals);
+        return false;
+    }
+
+    public void stop() throws Exception {
+
+
+        if(!getInstance().isRunning(1)) {
+            logger.info("[CDM-Server] Server already stopped @ " + host + ":" + port );
+            return;
+        }
+
+        if(getInstance().getKeepServerRunning()) {
+            logger.info("[CDM-Server] Server @ " + host + ":" + port + " is set to keep running");
+            return;
+        }
+
+
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                StringBuffer output = new StringBuffer();
+                try{
+                    Process p;
+                    String command = "java -jar " + DEFAULT_JETTY_RESOURCE.getFile().getAbsolutePath()
+                            + getStopServerArgs() + " --stop ";
+                    logger.info("[CDM-Server] Stop Command : " + command);
+                    p = Runtime.getRuntime().exec(command);
+                    p.waitFor();
+                    BufferedReader reader =
+                            new BufferedReader(new InputStreamReader(p.getInputStream()));
+                    String line = "";
+                    while ((line = reader.readLine())!= null) {
+                        logger.info("CDM-Server Stop : " + line + "\n");
+                    }
+                    logger.info("[CDM-Server] Stopped Server @ " + host + ":" + port );
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+            }
+        };
+
+        t.setDaemon(true);
+        t.start();
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java
new file mode 100644 (file)
index 0000000..3240c38
--- /dev/null
@@ -0,0 +1,221 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+
+import static org.hamcrest.CoreMatchers.containsString;
+
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
+import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.remote.CdmPersistentRemoteSource;
+import eu.etaxonomy.cdm.remote.CdmRemoteSource;
+import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
+import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
+
+/**
+ * Class to test the cdm persistent source functionality, including
+ * initialising / saving / updating and deleting
+ *
+ * Corresponding test sources settings can be found at
+ * /src/text/resources/eu.etaxonomy.cdm/cdm.datasources.xml
+ *
+ */
+public class CdmPersistentRemoteSourceTest extends BaseRemotingTest {
+    private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSourceTest.class);
+
+    private CdmPersistentRemoteSource remotePersistentSource;
+
+    @BeforeClass
+    public static void initialize() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+    }
+
+    @Test
+    public void whenLoadingExistingCompleteRemoteSourceThenLoadIsSuccessful() {
+
+        remotePersistentSource = getCdmPersistentRemoteSource();
+
+        String expectedServer = "127.0.0.1";
+        String expectedPort = "9090";
+        String expectedContextPath = "";
+        logger.info("Default remote source server : " + remotePersistentSource.getServer());
+        Assert.assertTrue("Default server should be " + expectedServer,
+                expectedServer.equals(remotePersistentSource.getServer()));
+
+        logger.info("Default remote source port : " + remotePersistentSource.getPort());
+        Assert.assertTrue("Default port should be 9090",
+                expectedPort.equals(String.valueOf(remotePersistentSource.getPort())));
+
+        logger.info("Default remote source context path : " + remotePersistentSource.getContextPath());
+        Assert.assertTrue("Default remote source context path should be " + expectedContextPath,
+                expectedContextPath.equals(remotePersistentSource.getContextPath()));
+
+        logger.info("Default remote source nomenclatural code : " + remotePersistentSource.getNomenclaturalCode().toString());
+        Assert.assertTrue("Default NomenclaturalCode should be ICNAFP",
+                NomenclaturalCode.ICNAFP.equals(remotePersistentSource.getNomenclaturalCode()));
+    }
+
+
+
+
+    @Test
+    public void whenConnectingToAnActiveServerThenConnectSuccessfully() {
+        // check if active server throws the right exception
+
+        remotePersistentSource = getCdmPersistentRemoteSource();
+
+        String dbSchemaVersion = "";
+        try {
+            dbSchemaVersion = remotePersistentSource.getDbSchemaVersion();
+        } catch (CdmSourceException e) {
+            Assert.fail("getDbSchemaVersion() on active cdm server should not have thrown CdmSourceException");
+        }
+        logger.info("dbSchemaVersion is " + dbSchemaVersion);
+
+
+        boolean isDbEmpty = false;
+        try {
+            isDbEmpty = remotePersistentSource.isDbEmpty();
+        } catch (CdmSourceException e) {
+            Assert.fail("isDbEmpty() on active cdm server should not have thrown CdmSourceException");
+        }
+        Assert.assertFalse(isDbEmpty);
+
+
+        boolean check = false;
+        try {
+            check = remotePersistentSource.checkConnection();
+        } catch (CdmSourceException e) {
+            Assert.fail("checkConnection() on active cdm server should not have thrown CdmSourceException");
+        }
+        Assert.assertTrue(check);
+
+
+    }
+
+    @Test
+    public void whenRequestingMetadatFromRemoteSourceThenMetaDataIsRetrieved() {
+        try {
+            remotePersistentSource = getCdmPersistentRemoteSource();
+            Map<MetaDataPropertyName, String> cdmMetaDataMap = remotePersistentSource.getMetaDataMap();
+            for(MetaDataPropertyName mdpn : cdmMetaDataMap.keySet()) {
+                String value = cdmMetaDataMap.get(mdpn);
+                logger.info("MetaData Property " + mdpn.name() + " has value " + value);
+                Assert.assertNotNull("Meta Data Value for property for " + mdpn.name() + " should not be null", value);
+            }
+        } catch (CdmSourceException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void whenLoadingNonExistingRemoteSourceThenThrowException() {
+        try {
+            remotePersistentSource = CdmPersistentRemoteSource.NewInstance("nonExistingSource");
+            Assert.fail("Initialising a non-existing remote source should throw an exception");
+        } catch (CdmRemoteSourceException e) {
+            logger.info(e.getMessage());
+        }
+    }
+
+    @Test
+    public void whenLoadingExistingIncompleteRemoteSourceThenThrowException() {
+        try {
+            remotePersistentSource = CdmPersistentRemoteSource.NewInstance("incomplete");
+            Assert.fail("Initialising an incomplete remote source should throw an exception");
+        } catch (CdmRemoteSourceException e) {
+            Assert.assertThat(e.getMessage(), containsString("Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing"));
+        }
+    }
+
+    @Test
+    public void whenSavingUpdatingDeletingNewCompleteRemoteSourceThenSaveUpdateDeleteIsSuccessful() {
+        String strRemoteSource = "local";
+        Assert.assertFalse("New remote source '" + strRemoteSource + "' should not yet exist in source settings file",
+                CdmPersistentRemoteSource.exists(strRemoteSource));
+        try {
+            ICdmRemoteSource remoteSource =
+                    CdmRemoteSource.NewInstance(strRemoteSource,
+                            "127.0.0.1",
+                            8080,
+                            "col",
+                            NomenclaturalCode.ICNAFP);
+            remotePersistentSource = CdmPersistentRemoteSource.save(strRemoteSource,remoteSource);
+
+            logger.info("Server : " + remotePersistentSource.getServer());
+            Assert.assertTrue("Server value should be equal",
+                    remoteSource.getServer().equals(remotePersistentSource.getServer()));
+
+            logger.info("Port : " + remotePersistentSource.getPort());
+            Assert.assertTrue("Port value should be equal",
+                    remoteSource.getPort() == remotePersistentSource.getPort());
+
+            logger.info("Context Path : " + remotePersistentSource.getContextPath());
+            Assert.assertTrue("Context Path value should be equal",
+                    remoteSource.getContextPath().equals(remotePersistentSource.getContextPath()));
+
+            logger.info("Nomenclatural Code : " + remotePersistentSource.getNomenclaturalCode().name());
+            Assert.assertTrue("Nomenclatural Code value should be equal",
+                    remoteSource.getNomenclaturalCode().name().equals(remotePersistentSource.getNomenclaturalCode().name()));
+
+            Assert.assertTrue("New remote source '" + strRemoteSource + "' should be saved in source settings file",
+                    CdmPersistentRemoteSource.exists(strRemoteSource));
+
+            remoteSource = CdmRemoteSource.NewInstance(strRemoteSource,
+                    "127.0.0.55",
+                    9090,
+                    "cyprus",
+                    NomenclaturalCode.ICNB);
+            remotePersistentSource = CdmPersistentRemoteSource.update(strRemoteSource,remoteSource);
+
+            logger.info("Server : " + remotePersistentSource.getServer());
+            Assert.assertTrue("Server value should be equal",
+                    remoteSource.getServer().equals(remotePersistentSource.getServer()));
+
+            logger.info("Port : " + remotePersistentSource.getPort());
+            Assert.assertTrue("Port value should be equal",
+                    remoteSource.getPort() == remotePersistentSource.getPort());
+
+            logger.info("Context Path : " + remotePersistentSource.getContextPath());
+            Assert.assertTrue("Context Path value should be equal",
+                    remoteSource.getContextPath().equals(remotePersistentSource.getContextPath()));
+
+            logger.info("Nomenclatural Code : " + remotePersistentSource.getNomenclaturalCode().name());
+            Assert.assertTrue("Nomenclatural Code value should be equal",
+                    remoteSource.getNomenclaturalCode().name().equals(remotePersistentSource.getNomenclaturalCode().name()));
+
+            Assert.assertTrue("New remote source '" + strRemoteSource + "' should be saved in source settings file",
+                    CdmPersistentRemoteSource.exists(strRemoteSource));
+
+            CdmPersistentSourceUtils.delete(remotePersistentSource);
+
+            Assert.assertFalse("New remote source '" + strRemoteSource + "' should no longer exist in source settings file",
+                    CdmPersistentRemoteSource.exists(strRemoteSource));
+
+        } catch (CdmRemoteSourceException e) {
+            Assert.fail("Saving a new complete remote source should not throw an exception");
+            logger.info(e.getMessage());
+        }
+    }
+
+
+
+}
similarity index 78%
rename from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmRemoteSourceTest.java
rename to eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java
index 096f660bd11963396b0981f0c1d3901231eff76c..4cbfcf5c38fcb4239ea2a9803bedae94a6176ff3 100644 (file)
@@ -1,79 +1,86 @@
 /**
 * Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.remoting;
+package eu.etaxonomy.taxeditor.httpinvoker;
 
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.junit.Assert;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.springframework.remoting.RemoteAccessException;
-import org.unitils.UnitilsJUnit4;
 
 import eu.etaxonomy.cdm.config.CdmSourceException;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.remote.CdmRemoteSource;
+import eu.etaxonomy.taxeditor.lazyloading.RemotePersistentCollectionTest;
 
-public class CdmRemoteSourceTest extends UnitilsJUnit4 {
+public class CdmRemoteSourceTest extends BaseRemotingTest {
        private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
 
-       
+
        @BeforeClass
        public static void initialize() {
+
                Logger.getRootLogger().setLevel(Level.INFO);
-               
+
        }
-       
+
        @Test
        public void whenConnectingToInactiveServerThenFailToConnect() {
                // check if non-active server throws the right exception
-               CdmRemoteSource inactiveCrs = CdmRemoteSource.NewInstance("local", "127.0.0.1", 808080, "", NomenclaturalCode.ICNAFP);
+               CdmRemoteSource inactiveCrs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+                       CDMServer.getInstance().getHost(),
+                       808080,
+                       CDMServer.getInstance().getContextPath(),
+                       NomenclaturalCode.ICNAFP);
                try {
                        inactiveCrs.getDbSchemaVersion();
                        Assert.fail("getDbSchemaVersion() on inactive cdm server should have thrown RemoteAccessException");
                } catch(CdmSourceException cse) {
                        Assert.fail("getDbSchemaVersion() on inactive cdm server should have thrown RemoteAccessException and not CdmSourceException");
                } catch(RemoteAccessException rae){
-                       
+
                }
-               
+
                try {
                        inactiveCrs.isDbEmpty();
                        Assert.fail("isDbEmpty() on inactive cdm server should have thrown RemoteAccessException");
                } catch(CdmSourceException cse) {
                        Assert.fail("isDbEmpty() on inactive cdm server should have thrown RemoteAccessException and not CdmSourceException");
                } catch(RemoteAccessException rae){
-                       
+
                }
-               
+
                try {
                        inactiveCrs.checkConnection();
                        Assert.fail("checkConnection() on inactive cdm server should have thrown RemoteAccessException");
                } catch(CdmSourceException cse) {
                        Assert.fail("checkConnection() on inactive cdm server should have thrown RemoteAccessException and not CdmSourceException");
                } catch(RemoteAccessException rae){
-                       
+
                }
-               
+
        }
-       
+
        @Test
        public void whenConnectingToAnActiveServerWithServicesBlockedThenFailToAccessServices() {
-               
+
        }
-       
+
        @Test
        public void whenConnectingToAnActiveServerThenConnectSuccessfully() {
                // check if active server throws the right exception
-               CdmRemoteSource activeCrs = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
+               CdmRemoteSource activeCrs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+                CDMServer.getInstance().getHost(),
+                CDMServer.getInstance().getPort(),
+                CDMServer.getInstance().getContextPath(),
+                NomenclaturalCode.ICNAFP);
                String dbSchemaVersion = "";
                try {
                        dbSchemaVersion = activeCrs.getDbSchemaVersion();
@@ -81,7 +88,7 @@ public class CdmRemoteSourceTest extends UnitilsJUnit4 {
                        Assert.fail("getDbSchemaVersion() on active cdm server should not have thrown CdmSourceException");
                }
                logger.info("dbSchemaVersion is " + dbSchemaVersion);
-               
+
 
                boolean isDbEmpty = false;
                try {
@@ -90,8 +97,8 @@ public class CdmRemoteSourceTest extends UnitilsJUnit4 {
                        Assert.fail("isDbEmpty() on active cdm server should not have thrown CdmSourceException");
                }
                Assert.assertFalse(isDbEmpty);
-               
-               
+
+
                boolean check = true;
                try {
                        isDbEmpty = activeCrs.checkConnection();
@@ -99,7 +106,7 @@ public class CdmRemoteSourceTest extends UnitilsJUnit4 {
                        Assert.fail("checkConnection() on active cdm server should not have thrown CdmSourceException");
                }
                Assert.assertTrue(check);
-               
+
        }
 
 }
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java
new file mode 100644 (file)
index 0000000..a7a206e
--- /dev/null
@@ -0,0 +1,41 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.UnitilsJUnit4;
+
+import eu.etaxonomy.taxeditor.lazyloading.AbstractLazyInitializerTest;
+
+/**
+ * @author cmathew
+ * @date 6 Oct 2014
+ *
+ */
+public class CdmServerTest extends UnitilsJUnit4 {
+    private static final Logger logger = Logger.getLogger(CdmServerTest.class);
+
+
+    @Test
+    public void stopCdmServer() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+        CDMServer.getInstance().setKeepServerRunning(false);
+        try {
+            CDMServer.getInstance().stop();
+        } catch (Exception e) {
+            Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+        }
+    }
+
+}
similarity index 74%
rename from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/HttpInvokerServicesTest.java
rename to eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java
index 6bd0959c1a9107c4e85487abd1c4465256af57c7..b05d362e99c5daf70eb36269de5d1710f38cf924 100644 (file)
@@ -1,12 +1,12 @@
 /**
 * Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.remoting;
+package eu.etaxonomy.taxeditor.httpinvoker;
 
 import org.apache.log4j.Logger;
 import org.junit.Assert;
@@ -18,13 +18,13 @@ import eu.etaxonomy.cdm.config.CdmSourceException;
  * Class to test the HttpInvoker services exposed by the CDM Sever
  *
  */
-public class HttpInvokerServicesTest extends RemoteApplicationConfigurationTest {
+public class HttpInvokerServicesTest extends BaseRemotingTest {
        private static final Logger logger = Logger.getLogger(HttpInvokerServicesTest.class);
-       
+
        @Test
        public void whenCallingMethodsOnRemoteServicesThenSuceed() {
                try {
-                       String dbSchemaVersion = applicationController.getDatabaseService().getDbSchemaVersion();
+                       String dbSchemaVersion = getRemoteApplicationController().getDatabaseService().getDbSchemaVersion();
                        logger.info("dbSchemaVersion is " + dbSchemaVersion);
                } catch (CdmSourceException e) {
                        Assert.fail("pinging database service on active cdm server should not have thrown CdmSourceException");
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java
new file mode 100644 (file)
index 0000000..727802a
--- /dev/null
@@ -0,0 +1,214 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+
+
+
+/**
+ * Class to test the {@link CdmApplicationRemoteController}
+ *
+ */
+@DataSet
+public class AbstractLazyInitializerTest extends BaseRemotingTest {
+    private static final Logger logger = Logger.getLogger(AbstractLazyInitializerTest.class);
+
+    private static IClassificationService classificationService;
+    private static ITaxonService taxonService;
+
+    private static List<TaxonNode> taxonNodes;
+
+    private final UUID taxonUuid1 = UUID.fromString("8217ef77-2ab1-4318-bd67-ccd0cdef07c4");
+    private final UUID taxonUuid2 = UUID.fromString("ef96fafa-7750-4141-b31b-1ad1daab3e76");
+
+
+    @BeforeClass
+    public static void initializeRemoteLazyLoading() {
+
+        Logger.getRootLogger().setLevel(Level.DEBUG);
+
+        taxonService = getRemoteApplicationController().getTaxonService();
+        classificationService= getRemoteApplicationController().getClassificationService();
+        List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+        Assert.assertFalse(classifications.isEmpty());
+
+        Classification classification = classifications.get(0);
+        Assert.assertNotNull(classification);
+        taxonNodes = classificationService.getAllNodes();
+        Assert.assertFalse(taxonNodes.isEmpty());
+
+    }
+
+
+
+    @Test
+    public void testCDMEntityGet() {
+        //ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+        Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
+        int maxcount = 30;
+        int count = 0;
+        while(taxonNodeItr.hasNext() && count <= maxcount) {
+            TaxonNode taxonNode = taxonNodeItr.next();
+            Assert.assertNotNull(taxonNode);
+
+            Taxon taxon = taxonNode.getTaxon();
+            Assert.assertNotNull(taxon);
+
+            String taxonTitle = taxon.getTitleCache();
+            logger.info("Taxon : " + taxonTitle);
+
+            TaxonNameBase name = taxon.getName();
+            Assert.assertNotNull(name);
+
+            String nameTitle = name.getTitleCache();
+            logger.info("Taxon Name : " + nameTitle);
+
+            count++;
+        }
+    }
+
+    @Test
+    public void taxonReadTest() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+    }
+
+
+    @Test
+    public void testCDMEntitySave() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+        String oldTitleCache = taxon.getTitleCache();
+
+        System.out.println("Taxon title : " + oldTitleCache);
+
+        taxon.setTitleCache(oldTitleCache + ":updated", true);
+        taxonService.merge(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("New Taxon Title : " + taxonNew.getTitleCache());
+
+        Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,taxonNew.getTitleCache());
+
+        taxonNew.setTitleCache(oldTitleCache, true);
+        taxonService.merge(taxonNew);
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("Old Taxon Title : " + taxonOld.getTitleCache());
+
+        Assert.assertEquals("Title caches should be equal",oldTitleCache,taxonOld.getTitleCache());
+
+    }
+
+
+        @Test
+        public void testCDMEntitySaveLazyNew() {
+            Team combAuthor = Team.NewInstance();
+            combAuthor.addTeamMember(Person.NewTitledInstance("test member"));
+            BotanicalName name = BotanicalName.NewInstance(null, "Test1", null, null, null, null, null, null, null);
+            name.setCombinationAuthorTeam(combAuthor);
+            Taxon tax1 = Taxon.NewInstance(name, null);
+            UUID taxonUuid1 = taxonService.save(tax1);
+
+            Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+            NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+            String oldTitleCache = nvn.getTitleCache();
+            logger.info("Taxon Name Title : " + oldTitleCache);
+            nvn.setTitleCache(oldTitleCache + ":updated",false);
+            taxonService.update(taxon);
+
+            Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+            NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+            logger.info("New Taxon Name Title : " + nvnNew.getTitleCache());
+
+            Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
+
+            nvnNew.setTitleCache(oldTitleCache, true);
+            taxonService.update(taxon);
+
+            Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+            NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+            logger.info("Old Taxon Name Title : " + nvnNew.getTitleCache());
+
+            Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
+        }
+
+        @Ignore
+        @Test
+        public void testCDMEntitySaveCollection() {
+            Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+            Set<SynonymRelationship> synRelations = taxon.getSynonymRelations();
+            Set<String> relToTitles = new HashSet<String>();
+            Iterator<SynonymRelationship> srItr = synRelations.iterator();
+            while(srItr.hasNext()) {
+                SynonymRelationship sr = srItr.next();
+                System.out.println("Synonym Title Cache : " + sr.getSynonym().getTitleCache());
+                relToTitles.add(sr.getSynonym().getTitleCache());
+                sr.getSynonym().setTitleCache(sr.getSynonym().getTitleCache() + ":updated");
+
+            }
+            taxonService.merge(taxon);
+
+            Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+            Set<SynonymRelationship> synRelationsNew = taxonNew.getSynonymRelations();
+
+            Iterator<SynonymRelationship> srItrNew = synRelationsNew.iterator();
+            Iterator<String> relToTitlesItr = relToTitles.iterator();
+            while(srItrNew.hasNext() && relToTitlesItr.hasNext()) {
+                SynonymRelationship srNew = srItrNew.next();
+                String relToTitle = relToTitlesItr.next();
+                System.out.println("New Synonym Title Cache: " + srNew.getSynonym().getTitleCache());
+                Assert.assertNotEquals("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache(), relToTitle);
+                srNew.getSynonym().setTitleCache(relToTitle);
+            }
+
+            Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+
+            Set<SynonymRelationship> synRelationsOld = taxonNew.getSynonymRelations();
+            Iterator<SynonymRelationship> srItrOld = synRelationsOld.iterator();
+            relToTitlesItr = relToTitles.iterator();
+            while(srItrOld.hasNext() && relToTitlesItr.hasNext()) {
+                SynonymRelationship srOld = srItrOld.next();
+                String relToTitle = relToTitlesItr.next();
+                System.out.println("New Synonym Title Cache: " + srOld.getSynonym().getTitleCache());
+                Assert.assertEquals("Synonym Title caches should be equal", srOld.getSynonym().getTitleCache(), relToTitle);
+
+            }
+        }
+}
similarity index 70%
rename from eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmServiceCacherTest.java
rename to eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java
index a8564a5622dcb9cbdff763b41202c0e062874002..dfcea64ec83ecc58c38e037e27870e54626ab641 100644 (file)
@@ -1,38 +1,38 @@
-package eu.etaxonomy.taxeditor.remoting;
+package eu.etaxonomy.taxeditor.lazyloading;
 
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
 
-public class CdmServiceCacherTest extends RemoteApplicationConfigurationTest {
+public class CdmServiceCacherTest extends BaseRemotingTest {
        private static final Logger logger = Logger.getLogger(CdmServiceCacherTest.class);
-       
-       
+
+
        private static CdmServiceCacher cdmServiceCacher;
-       
+
        @BeforeClass
        public static void initialize() {
                Logger.getRootLogger().setLevel(Level.INFO);
-               cdmServiceCacher = (CdmServiceCacher)applicationController.getBean("cdmServiceCacher");
+               cdmServiceCacher = (CdmServiceCacher)getRemoteApplicationController().getBean("cdmServiceCacher");
        }
-       
+
        @Test
        public void testLanguageCache() {
-               Language defaultLanguage = Language.getDefaultLanguage();       
-               
+               Language defaultLanguage = Language.getDefaultLanguage();
+
                Language defaultLanguageInCache = (Language)cdmServiceCacher.getFromCache(defaultLanguage.getUuid());
-               Assert.assertEquals("Loaded Language Term should match Language Term in Cache",defaultLanguage,defaultLanguageInCache);         
-               
+               Assert.assertEquals("Loaded Language Term should match Language Term in Cache",defaultLanguage,defaultLanguageInCache);
+
                Language language = Language.getLanguageFromUuid(Language.uuidFrench);
                Language languageInCache = (Language)cdmServiceCacher.getFromCache(language.getUuid());
                Assert.assertEquals("Loaded Language Term should match Language Term in Cache",language,languageInCache);
-               
+
        }
 
 }
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java b/eu.etaxonomy.taxeditor.remoting/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java
new file mode 100644 (file)
index 0000000..30fe70b
--- /dev/null
@@ -0,0 +1,278 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+
+
+/**
+ * Test class which tests remoting for persistent cdm entities.
+ *
+ * FIXME:Remoting saving tests are ignored until the merge development is underway
+ * @author c.mathew
+ *
+ */
+//@DataSet
+public class RemoteLazyLoadingTest extends BaseRemotingTest {
+
+    private static final Logger logger = Logger.getLogger(RemoteLazyLoadingTest.class);
+
+    private static IClassificationService classificationService;
+    private static ITaxonService taxonService;
+
+    private static List<TaxonNode> taxonNodes;
+
+    private final UUID taxonUuid1 = UUID.fromString("8217ef77-2ab1-4318-bd67-ccd0cdef07c4");
+    private final UUID taxonUuid2 = UUID.fromString("ef96fafa-7750-4141-b31b-1ad1daab3e76");
+
+
+    @BeforeClass
+    public static void initializeRemoteLazyLoading() {
+
+        Logger.getRootLogger().setLevel(Level.DEBUG);
+        taxonService = getRemoteApplicationController().getTaxonService();
+
+        classificationService= getRemoteApplicationController().getClassificationService();
+        //List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+//        Assert.assertFalse(classifications.isEmpty());
+//
+//        Classification classification = classifications.get(0);
+//        Assert.assertNotNull(classification);
+        taxonNodes = classificationService.getAllNodes();
+        Assert.assertFalse(taxonNodes.isEmpty());
+
+    }
+
+
+
+    @Test
+    public void testCDMEntityGet() {
+        Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
+        int maxcount = 30;
+        int count = 0;
+        while(taxonNodeItr.hasNext() && count <= maxcount) {
+            TaxonNode taxonNode = taxonNodeItr.next();
+            Assert.assertNotNull(taxonNode);
+
+            Taxon taxon = taxonNode.getTaxon();
+            Assert.assertNotNull(taxon);
+
+            String taxonTitle = taxon.getTitleCache();
+            logger.info("Taxon : " + taxonTitle);
+
+            TaxonNameBase name = taxon.getName();
+            Assert.assertNotNull(name);
+
+            String nameTitle = name.getTitleCache();
+            logger.info("Taxon Name : " + nameTitle);
+
+            count++;
+        }
+
+
+    }
+
+    @Test
+    public void test() {
+
+    }
+
+    @Test
+    public void testCDMEntitySaveEager() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+        String oldTitleCache = taxon.getTitleCache();
+
+        System.out.println("Taxon title : " + oldTitleCache);
+
+        taxon.setTitleCache(oldTitleCache + ":updated");
+        taxonService.merge(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("New Taxon Title : " + taxonNew.getTitleCache());
+
+        Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,taxonNew.getTitleCache());
+
+        taxonNew.setTitleCache(oldTitleCache);
+        taxonService.merge(taxonNew);
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("Old Taxon Title : " + taxonOld.getTitleCache());
+
+        Assert.assertEquals("Title caches should be equal",oldTitleCache,taxonOld.getTitleCache());
+
+    }
+
+
+    @Test
+    public void testCDMEntityUpdate() {
+
+        Team combAuthor = Team.NewInstance();
+        combAuthor.addTeamMember(Person.NewTitledInstance("test member"));
+        BotanicalName name = BotanicalName.NewInstance(null, "Test1", null, null, null, null, null, null, null);
+        name.setCombinationAuthorTeam(combAuthor);
+        Taxon taxon = Taxon.NewInstance(name, null);
+        UUID taxonUuid = taxonService.save(taxon);
+
+        //        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+        //        NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        //        String oldTitleCache = nvn.getTitleCache();
+        //        System.out.println("Taxon Name Title : " + oldTitleCache);
+        //        nvn.setTitleCache(oldTitleCache + ":updated", true);
+        //
+        //        taxon.setTitleCache(oldTitleCache + ":updated",true);
+        //        try {
+        //            taxonService.update(taxon);
+        //        } catch (LazyInitializationException lie) {
+        //            lie.printStackTrace();
+        //        }
+
+        List<String> TAXON_INIT_STRATEGY = Arrays.asList(new String[] {
+                "name"
+        });
+        Taxon taxonNew = (Taxon)taxonService.findTaxonByUuid(taxonUuid,TAXON_INIT_STRATEGY);
+        NonViralName nvn = CdmBase.deproxy(taxonNew.getName(),NonViralName.class);
+        Team team = CdmBase.deproxy(nvn.getCombinationAuthorTeam(),Team.class);
+        String oldTitleCache = nvn.getTitleCache();
+        System.out.println("Taxon Name Title : " + oldTitleCache);
+        nvn.setTitleCache(oldTitleCache + ":updated", true);
+        taxonService.update(taxonNew);
+
+    }
+
+
+    @Test
+    public void testCDMEntitySaveLazy() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+        NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        String oldTitleCache = nvn.getTitleCache();
+        System.out.println("Taxon Name Title : " + oldTitleCache);
+        nvn.setTitleCache(oldTitleCache + ":updated", true);
+        taxonService.update(taxon);
+
+        //             Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        //             NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        //             System.out.println("New Taxon Name Title : " + nvnNew.getTitleCache());
+        //
+        //             Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
+        //
+        //             nvnNew.setTitleCache(oldTitleCache, true);
+        //             taxonService.update(taxon);
+        //
+        //             Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        //             NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        //             System.out.println("Old Taxon Name Title : " + nvnNew.getTitleCache());
+        //
+        //             Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
+    }
+
+    @Test
+    public void testCDMEntitySaveLazyNew() {
+        Team combAuthor = Team.NewInstance();
+        combAuthor.addTeamMember(Person.NewTitledInstance("test member"));
+        BotanicalName name = BotanicalName.NewInstance(null, "Test1", null, null, null, null, null, null, null);
+        name.setCombinationAuthorTeam(combAuthor);
+        Taxon tax1 = Taxon.NewInstance(name, null);
+        UUID taxonUuid1 = taxonService.save(tax1);
+
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+        NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        String oldTitleCache = nvn.getTitleCache();
+        logger.info("Taxon Name Title : " + oldTitleCache);
+        nvn.setTitleCache(oldTitleCache + ":updated",false);
+        taxonService.update(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        logger.info("New Taxon Name Title : " + nvnNew.getTitleCache());
+
+        Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
+
+        nvnNew.setTitleCache(oldTitleCache, true);
+        taxonService.update(taxon);
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        logger.info("Old Taxon Name Title : " + nvnNew.getTitleCache());
+
+        Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
+    }
+    @Ignore
+    @Test
+    public void testCDMEntitySaveCollection() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+        Set<SynonymRelationship> synRelations = taxon.getSynonymRelations();
+        Set<String> relToTitles = new HashSet<String>();
+        Iterator<SynonymRelationship> srItr = synRelations.iterator();
+        while(srItr.hasNext()) {
+            SynonymRelationship sr = srItr.next();
+            System.out.println("Synonym Title Cache : " + sr.getSynonym().getTitleCache());
+            relToTitles.add(sr.getSynonym().getTitleCache());
+            sr.getSynonym().setTitleCache(sr.getSynonym().getTitleCache() + ":updated");
+
+        }
+        taxonService.merge(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        Set<SynonymRelationship> synRelationsNew = taxonNew.getSynonymRelations();
+
+        Iterator<SynonymRelationship> srItrNew = synRelationsNew.iterator();
+        Iterator<String> relToTitlesItr = relToTitles.iterator();
+        while(srItrNew.hasNext() && relToTitlesItr.hasNext()) {
+            SynonymRelationship srNew = srItrNew.next();
+            String relToTitle = relToTitlesItr.next();
+            System.out.println("New Synonym Title Cache: " + srNew.getSynonym().getTitleCache());
+            Assert.assertNotEquals("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache(), relToTitle);
+            srNew.getSynonym().setTitleCache(relToTitle);
+        }
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+
+        Set<SynonymRelationship> synRelationsOld = taxonNew.getSynonymRelations();
+        Iterator<SynonymRelationship> srItrOld = synRelationsOld.iterator();
+        relToTitlesItr = relToTitles.iterator();
+        while(srItrOld.hasNext() && relToTitlesItr.hasNext()) {
+            SynonymRelationship srOld = srItrOld.next();
+            String relToTitle = relToTitlesItr.next();
+            System.out.println("New Synonym Title Cache: " + srOld.getSynonym().getTitleCache());
+            Assert.assertEquals("Synonym Title caches should be equal", srOld.getSynonym().getTitleCache(), relToTitle);
+
+        }
+    }
+}
@@ -1,12 +1,12 @@
 /**
 * Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.remoting;
+package eu.etaxonomy.taxeditor.lazyloading;
 
 import java.util.Iterator;
 import java.util.List;
@@ -20,151 +20,151 @@ import org.hibernate.collection.spi.PersistentCollection;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.unitils.UnitilsJUnit4;
 
 import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.strategy.match.MatchException;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
 
 /**
  * Test class which tests remoting for persistent collections.
- * 
+ *
  * @author c.mathew
  * @created 13.03.2014
  */
-public class RemotePersistentCollectionTest extends RemoteApplicationConfigurationTest {
+public class RemotePersistentCollectionTest extends BaseRemotingTest {
        private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
-               
+
        private static IClassificationService classificationService;
+       private static ICommonService commonService;
 
        @BeforeClass
        public static void initializeServices() {
                Logger.getRootLogger().setLevel(Level.INFO);
-               classificationService= applicationController.getClassificationService();
+               classificationService = getRemoteApplicationController().getClassificationService();
+               commonService = getRemoteApplicationController().getCommonService();
        }
-       
+
        /**
         * Test method which checks remoting for persistent lists.
-        * 
+        *
         */
        @Test
        public void persistentListTest() {
-               
-               List<TaxonNode> taxonNodes = classificationService.getAllNodes();                               
+
+               List<TaxonNode> taxonNodes = classificationService.getAllNodes();
                int size = taxonNodes.size();
                logger.debug("classificationService.getAllNodes() size : " + size);
                TaxonNode taxonNode = null;
                if(size > 0) {
-                       Assert.assertFalse(taxonNodes.isEmpty());               
-                       
+                       Assert.assertFalse(taxonNodes.isEmpty());
+
                        taxonNode = taxonNodes.get(0);
                        Assert.assertNotNull(taxonNode);
                        Assert.assertTrue(taxonNodes.contains(taxonNode));
-                                               
+
                        // get the list of child nodes, which will give a
                        // proxy list which is not yet initialised
-                       List<TaxonNode> childNodes = taxonNode.getChildNodes();                 
+                       List<TaxonNode> childNodes = taxonNode.getChildNodes();
                        // this size call will first initialise the list locally by internally
                        // calling the ICommonService.initializeCollection method and then
                        // call size on the initialised list
                        int childCount = childNodes.size();
-                       
+
                        // this size call will initialise the list remotely and only return the
                        // size of the list
-                       int remoteChildCount = applicationController.getCommonService().size((PersistentCollection)childNodes);
+                       int remoteChildCount = commonService.size((PersistentCollection)childNodes);
                        Assert.assertEquals(childCount, remoteChildCount);
-                       
+
                        String firstNodeTaxonTitle = taxonNode.getTaxon().getTitleCache();
-                       Assert.assertNotNull(firstNodeTaxonTitle);                                      
-                       
+                       Assert.assertNotNull(firstNodeTaxonTitle);
+
                        if(childCount > 0) {
                                Assert.assertFalse(childNodes.isEmpty());
                                // this get call will use the already initialised list to get the
                                // 0th element
                                TaxonNode localTaxonNode = childNodes.get(0);
-                                                               
+
                                // this get call will initialise the list remotely and only return the
                                // 0th element from the list
-                               TaxonNode remoteTaxonNode = (TaxonNode)applicationController.getCommonService().get((PersistentCollection)childNodes,0);
-                               
+                               TaxonNode remoteTaxonNode = (TaxonNode)commonService.get((PersistentCollection)childNodes,0);
+
                                // the locally and remotely retrieved taxon node should exist in the
-                               // (local and remote) child nodes list, should be not-null and should be equal to each other                            
+                               // (local and remote) child nodes list, should be not-null and should be equal to each other
                                Assert.assertTrue(taxonNode.getChildNodes().contains(localTaxonNode));
                                Assert.assertTrue(taxonNode.getChildNodes().contains(remoteTaxonNode));
-                               Assert.assertTrue(applicationController.getCommonService().contains((PersistentCollection)childNodes, localTaxonNode));
-                               Assert.assertTrue(applicationController.getCommonService().contains((PersistentCollection)childNodes, remoteTaxonNode));
+                               Assert.assertTrue(commonService.contains((PersistentCollection)childNodes, localTaxonNode));
+                               Assert.assertTrue(commonService.contains((PersistentCollection)childNodes, remoteTaxonNode));
                                Assert.assertNotNull(remoteTaxonNode);
                                Assert.assertNotNull(localTaxonNode);
-                               Assert.assertEquals(remoteTaxonNode,localTaxonNode);                                                                                                            
-                       }                       
-               }                                                       
-       }
-       
-       @Test
-       public void persistentSetTest() {                       
-               List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
-               int size = classifications.size();
-               if(size > 0) {
-                       Assert.assertFalse(classifications.isEmpty());
-                       
-                       Classification classification = classifications.get(0);
-                       Assert.assertNotNull(classification);
-                       Assert.assertTrue(classifications.contains(classification));
-                       
-                       TaxonNode rootTaxonNode = classification.getRootNode();
-                       // get the list of child nodes, which will give a
-                       // proxy list which is not yet initialised
-                       List<TaxonNode> childNodes = rootTaxonNode.getChildNodes();
-                       
-                       // this size call will initialise the list locally by internally
-                       // calling the ICommonService.initializeCollection method
-                       int childCount = childNodes.size();
-                       
-                       if(childCount > 0) {
-                               Assert.assertFalse(childNodes.isEmpty());
-                               
-                               // this get call will use the already initialised list to get the
-                               // 0th element
-                               Taxon localTaxon = childNodes.get(0).getTaxon();
-                               Assert.assertNotNull(localTaxon);
-                                                               
-                               TaxonNameBase taxonName = localTaxon.getName(); 
-                               Assert.assertNotNull(taxonName);
-                               
-                               // get the list of taxa, which will give a
-                               // proxy set which is not yet initialised
-                               Set<Taxon> taxa = taxonName.getTaxonBases();
-
-                               // this size call will initialise the list locally by internally
-                               // calling the ICommonService.initializeCollection method
-                               int taxaCount = taxa.size();
-                               Assert.assertNotEquals(taxaCount,-1);
-                                                               
-                               if(taxaCount > 0) {
-                                       Assert.assertFalse(taxa.isEmpty());             
-                                       // the locally retrieved taxon should exist in the
-                                       // (local and remote) taxon list and should be not-null 
-                                       Assert.assertTrue(taxa.contains(localTaxon));   
-                                       Assert.assertNotNull(localTaxon);       
-                                       Assert.assertTrue(applicationController.getCommonService().contains((PersistentCollection)taxa, localTaxon));                                                                           
-                               }
-                       }                       
+                               Assert.assertEquals(remoteTaxonNode,localTaxonNode);
+                       }
                }
        }
-       
+
+//     @Test
+//     public void persistentSetTest() {
+//             List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+//             int size = classifications.size();
+//             if(size > 0) {
+//                     Assert.assertFalse(classifications.isEmpty());
+//
+//                     Classification classification = classifications.get(0);
+//                     Assert.assertNotNull(classification);
+//                     Assert.assertTrue(classifications.contains(classification));
+//
+//                     TaxonNode rootTaxonNode = classification.getRootNode();
+//                     // get the list of child nodes, which will give a
+//                     // proxy list which is not yet initialised
+//                     List<TaxonNode> childNodes = rootTaxonNode.getChildNodes();
+//
+//                     // this size call will initialise the list locally by internally
+//                     // calling the ICommonService.initializeCollection method
+//                     int childCount = childNodes.size();
+//
+//                     if(childCount > 0) {
+//                             Assert.assertFalse(childNodes.isEmpty());
+//
+//                             // this get call will use the already initialised list to get the
+//                             // 0th element
+//                             Taxon localTaxon = childNodes.get(0).getTaxon();
+//                             Assert.assertNotNull(localTaxon);
+//
+//                             TaxonNameBase taxonName = localTaxon.getName();
+//                             Assert.assertNotNull(taxonName);
+//
+//                             // get the list of taxa, which will give a
+//                             // proxy set which is not yet initialised
+//                             Set<Taxon> taxa = taxonName.getTaxonBases();
+//
+//                             // this size call will initialise the list locally by internally
+//                             // calling the ICommonService.initializeCollection method
+//                             int taxaCount = taxa.size();
+//                             Assert.assertNotEquals(taxaCount,-1);
+//
+//                             if(taxaCount > 0) {
+//                                     Assert.assertFalse(taxa.isEmpty());
+//                                     // the locally retrieved taxon should exist in the
+//                                     // (local and remote) taxon list and should be not-null
+//                                     Assert.assertTrue(taxa.contains(localTaxon));
+//                                     Assert.assertNotNull(localTaxon);
+//                                     Assert.assertTrue(commonService.contains((PersistentCollection)taxa, localTaxon));
+//                             }
+//                     }
+//             }
+//     }
+
        @Test
-       public void persistentMapTest() {       
-               List<TaxonNode> taxonNodes = classificationService.getAllNodes();       
+       public void persistentMapTest() {
+               List<TaxonNode> taxonNodes = classificationService.getAllNodes();
                // calling iterator will initialise the collection
                Iterator<TaxonNode> taxonNodesItr = taxonNodes.iterator();
                while(taxonNodesItr.hasNext()) {
@@ -177,46 +177,46 @@ public class RemotePersistentCollectionTest extends RemoteApplicationConfigurati
                                while(descriptionsItr.hasNext()) {
                                        TaxonDescription desc = descriptionsItr.next();
                                        if(desc != null) {
-                                               for (DescriptionElementBase element : desc.getElements()){                                                      
+                                               for (DescriptionElementBase element : desc.getElements()){
                                                        if (element.isInstanceOf(TextData.class)){
                                                                // usually a call to 'get' collections should not initialise the collection,
                                                                // but the 'getMultilanguageText' call internally calls readSize on the collection
                                                                // which triggers the initialisation
                                                                Map<Language, LanguageString> multilanguagetextMap = ((TextData)element).getMultilanguageText();
-                                                               boolean init = AbstractPersistentCollection.isInitialized(multilanguagetextMap); 
+                                                               boolean init = AbstractPersistentCollection.isInitialized(multilanguagetextMap);
                                                                Assert.assertTrue(init);
-                                                               
+
                                                                if(!multilanguagetextMap.isEmpty()) {
                                                                        // found a map whcih we can test!
                                                                        logger.info("Found Non-empty multilanguagetextMap");
-                                                                       boolean empty = applicationController.getCommonService().isEmpty((PersistentCollection)multilanguagetextMap);
+                                                                       boolean empty = commonService.isEmpty((PersistentCollection)multilanguagetextMap);
                                                                        Assert.assertFalse(empty);
                                                                        // test retrieval of key set, which should already by initialised
                                                                        Set<Language> langKeySet = multilanguagetextMap.keySet();
                                                                        Iterator<Language> langKeySetItr = langKeySet.iterator();
                                                                        while(langKeySetItr.hasNext()) {
-                                                                               Language key = langKeySetItr.next();            
+                                                                               Language key = langKeySetItr.next();
                                                                                // testing 'containsKey' on locally initialised collection
                                                                                boolean localContainsKey = multilanguagetextMap.containsKey(key);
                                                                                Assert.assertTrue(localContainsKey);
                                                                                // testing 'containsKey' on remotely initialised collection
-                                                                               boolean remoteContainsKey = 
-                                                                                               applicationController.getCommonService().containsKey((PersistentCollection)multilanguagetextMap, key);
+                                                                               boolean remoteContainsKey =
+                                                                                               commonService.containsKey((PersistentCollection)multilanguagetextMap, key);
                                                                                Assert.assertTrue(remoteContainsKey);
-                                                                               
+
                                                                                LanguageString value = multilanguagetextMap.get(key);
                                                                                // testing 'containsValue' on locally initialised collection
                                                                                boolean localContainsValue = multilanguagetextMap.containsValue(value);
                                                                                Assert.assertTrue(localContainsValue);
                                                                                // testing 'containsValue' on remotely initialised collection
-                                                                               boolean remoteContainsValue = 
-                                                                                               applicationController.getCommonService().containsValue((PersistentCollection)multilanguagetextMap, value);
+                                                                               boolean remoteContainsValue =
+                                                                                               commonService.containsValue((PersistentCollection)multilanguagetextMap, value);
                                                                                Assert.assertTrue(remoteContainsValue);
-                                                                               
+
                                                                        }
-                                                                       return;                                                                 
+                                                                       return;
                                                                }
-                                                       }                                                       
+                                                       }
                                                }
                                        }
                                }
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/datasources.xml b/eu.etaxonomy.taxeditor.remoting/src/test/resources/datasources.xml
new file mode 100644 (file)
index 0000000..98ae815
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:tx="http://www.springframework.org/schema/tx"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+    http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
+    http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+    ">
+
+    <!--
+      DataSourceProperties allow configuring specific properties of the datasources
+
+       * cdmlib-remote.xslBasePath:
+            alternative base path for REST services to retrieve XSL style sheets from.
+            the base path must be on the same domain since cross domain xsl loading is
+            not permitted
+      -->
+      <bean id="dataSourceProperties" class="eu.etaxonomy.cdm.remote.config.DataSourceProperties">
+        <property name="propsMap">
+          <map>
+            <!--
+            <entry key="dataSourceBeanID">
+                <props>
+                    <prop key="cdmlib-remote.xslBasePath">/xsl</prop>
+                </props>
+            </entry>
+             -->
+            </map>
+        </property>
+      </bean>
+
+    <bean id="cdmTest"  lazy-init="true" class="com.mchange.v2.c3p0.ComboPooledDataSource">
+        <property name="driverClass" value="eu.etaxonomy.cdm.database.LocalH2"/>
+        <property name="user" value="sa" />
+        <property name="password" value="" />
+        <property name="jdbcUrl" value="jdbc:h2:file:./h2/cdmTest;AUTO_SERVER=TRUE"/>
+    </bean>
+</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml b/eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml
new file mode 100644 (file)
index 0000000..f5d1afb
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+xmlns:context="http://www.springframework.org/schema/context" 
+xsi:schemaLocation="http://www.springframework.org/schema/beans      
+http://www.springframework.org/schema/beans/spring-beans-3.1.xsd     
+http://www.springframework.org/schema/context     
+http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+  <bean id="defaultRemoteSource">
+    <property name="server" value="127.0.0.1" />
+    <property name="port" value="9090" />
+    <property name="contextPath" value="" />
+  </bean>
+  
+  <bean id="incompleteRemoteSource">
+    <property name="port" value="9090" />
+    <property name="contextPath" value="" />
+  </bean>
+</beans>
+
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml b/eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml
new file mode 100644 (file)
index 0000000..361881a
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:context="http://www.springframework.org/schema/context"
+  xmlns:tx="http://www.springframework.org/schema/tx"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans
+    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+    http://www.springframework.org/schema/context
+    http://www.springframework.org/schema/context/spring-context-2.5.xsd
+    http://www.springframework.org/schema/tx
+    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
+
+    <bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean"/>
+
+    <import resource="classpath:/eu/etaxonomy/cdm/remotingApplicationContext" />
+
+</beans>
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml b/eu.etaxonomy.taxeditor.remoting/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml
new file mode 100644 (file)
index 0000000..59cfc00
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Mon Oct 06 13:11:21 CEST 2014 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  TaxonBase where uuid like '8217ef77-2ab1-4318-bd67-ccd0cdef07c4' (extractionmodel/by-example/SbE-TaxonBase-13-09-59-049.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     2
+      TaxonBase                      1
+      TaxonNameBase                  1
+  
+--><dataset>
+  <TaxonNameBase DTYPE="BotanicalName" id="32" created="2010-12-21 15:09:43.0" uuid="f8be96d0-9af9-4e19-b9f1-52a4c0ecc580" protectedtitlecache="true" titleCache="Achillea arabica Kotschy" fullTitleCache="Achillea arabica Kotschy" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Kotschy" binomhybrid="false" genusoruninomial="Achillea" hybridformula="false" monomhybrid="false" namecache="Achillea arabica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="arabica" trinomhybrid="false" anamorphic="false" createdby_id="11" homotypicalgroup_id="32" rank_id="778" combinationauthorteam_id="36"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" updated="2014-09-17 09:27:47.0" protectedtitlecache="true" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" name_id="32" sec_id="10" publish="true"/>
+
+  
+</dataset>
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.h2.db b/eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.h2.db
new file mode 100644 (file)
index 0000000..5fc9322
Binary files /dev/null and b/eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.h2.db differ
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.trace.db b/eu.etaxonomy.taxeditor.remoting/src/test/resources/h2/cdmTest.trace.db
new file mode 100644 (file)
index 0000000..c612108
--- /dev/null
@@ -0,0 +1,6118 @@
+10-09 16:14:18 jdbc[4]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+SELECT value FROM CdmMetaData WHERE propertyname=0 [42102-170]
+10-09 16:14:21 jdbc[7]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+SELECT value FROM CdmMetaData WHERE propertyname=0 [42102-170]
+10-09 16:14:38 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-09 16:14:38 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-09 16:14:38 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-09 16:14:38 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-09 16:14:38 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-09 16:14:38 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D44FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4CDD3C17E [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4132A2FE8 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS_AUD" not found; SQL statement:
+alter table Address_AUD drop constraint FK115657A534869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D3564FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D356BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D356A830578 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AUD" not found; SQL statement:
+alter table AgentBase_AUD drop constraint FK29CC662734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS" not found; SQL statement:
+alter table AgentBase_Address drop constraint FK1EDFF7EB50751EC5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS" not found; SQL statement:
+alter table AgentBase_Address drop constraint FK1EDFF7EB86EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS_AUD" not found; SQL statement:
+alter table AgentBase_Address_AUD drop constraint FK3D28383C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE" not found; SQL statement:
+alter table AgentBase_AgentBase drop constraint FK4D34EDADE9E535F9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE" not found; SQL statement:
+alter table AgentBase_AgentBase drop constraint FK4D34EDAD1C0E9907 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE_AUD" not found; SQL statement:
+alter table AgentBase_AgentBase_AUD drop constraint FKA8A87CFE34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION" not found; SQL statement:
+alter table AgentBase_Annotation drop constraint FK44D5F7D81E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION" not found; SQL statement:
+alter table AgentBase_Annotation drop constraint FK44D5F7D886EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table AgentBase_Annotation_AUD drop constraint FK771279A934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT" not found; SQL statement:
+alter table AgentBase_Credit drop constraint FK2636742232D1B9F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT" not found; SQL statement:
+alter table AgentBase_Credit drop constraint FK2636742286EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT_AUD" not found; SQL statement:
+alter table AgentBase_Credit_AUD drop constraint FK7FE7C0F334869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE" not found; SQL statement:
+alter table AgentBase_DefinedTermBase drop constraint FK6665C77DF116FEB0 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE" not found; SQL statement:
+alter table AgentBase_DefinedTermBase drop constraint FK6665C77D8D9AB196 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table AgentBase_DefinedTermBase_AUD drop constraint FKA737EECE34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION" not found; SQL statement:
+alter table AgentBase_Extension drop constraint FK8E1E5676927DE9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION" not found; SQL statement:
+alter table AgentBase_Extension drop constraint FK8E1E567686EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION_AUD" not found; SQL statement:
+alter table AgentBase_Extension_AUD drop constraint FK11AE594734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER" not found; SQL statement:
+alter table AgentBase_Marker drop constraint FK365D5D63777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER" not found; SQL statement:
+alter table AgentBase_Marker drop constraint FK365D5D6386EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER_AUD" not found; SQL statement:
+alter table AgentBase_Marker_AUD drop constraint FKE40621B434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA" not found; SQL statement:
+alter table AgentBase_Media drop constraint FKE8FC5D9BC2C29593 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA" not found; SQL statement:
+alter table AgentBase_Media drop constraint FKE8FC5D9B86EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA_AUD" not found; SQL statement:
+alter table AgentBase_Media_AUD drop constraint FK323A45EC34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase drop constraint FKB482C5E63A6735D9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase drop constraint FKB482C5E686EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase_AUD drop constraint FK886D90B734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO" not found; SQL statement:
+alter table AgentBase_RightsInfo drop constraint FK4FD6A3CEC13F7B21 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO" not found; SQL statement:
+alter table AgentBase_RightsInfo drop constraint FK4FD6A3CE86EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table AgentBase_RightsInfo_AUD drop constraint FK79503A9F34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_EMAILADDRESSES" not found; SQL statement:
+alter table AgentBase_contact_emailaddresses drop constraint FK4BD2B08E86EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_EMAILADDRESSES_AUD" not found; SQL statement:
+alter table AgentBase_contact_emailaddresses_AUD drop constraint FKCAF7E75F34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_FAXNUMBERS" not found; SQL statement:
+alter table AgentBase_contact_faxnumbers drop constraint FK52E1AD9586EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_FAXNUMBERS_AUD" not found; SQL statement:
+alter table AgentBase_contact_faxnumbers_AUD drop constraint FK88A308E634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_PHONENUMBERS" not found; SQL statement:
+alter table AgentBase_contact_phonenumbers drop constraint FKC171CC2486EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_PHONENUMBERS_AUD" not found; SQL statement:
+alter table AgentBase_contact_phonenumbers_AUD drop constraint FKDDD347F534869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_URLS" not found; SQL statement:
+alter table AgentBase_contact_urls drop constraint FK9A9643EC86EFC5D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_URLS_AUD" not found; SQL statement:
+alter table AgentBase_contact_urls_AUD drop constraint FK1CE69BBD34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4164FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4163DA462D5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416DEC4385F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4166D2CE418 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416E671A9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4163781DA30 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416825BDDD3 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416AFCA96F8 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4161600EAB3 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_AUD" not found; SQL statement:
+alter table Amplification_AUD drop constraint FK448EE6E734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION" not found; SQL statement:
+alter table Amplification_Annotation drop constraint FK6B251F181E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION" not found; SQL statement:
+alter table Amplification_Annotation drop constraint FK6B251F18614CEB1F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Amplification_Annotation_AUD drop constraint FK6FC00E934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER" not found; SQL statement:
+alter table Amplification_Marker drop constraint FK46E224A3777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER" not found; SQL statement:
+alter table Amplification_Marker drop constraint FK46E224A3614CEB1F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER_AUD" not found; SQL statement:
+alter table Amplification_Marker_AUD drop constraint FKA5548F434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_SINGLEREAD" not found; SQL statement:
+alter table Amplification_SingleRead drop constraint FKFE4921E7BBC12E3E [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_SINGLEREAD" not found; SQL statement:
+alter table Amplification_SingleRead drop constraint FKFE4921E7614CEB1F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_SINGLEREAD_AUD" not found; SQL statement:
+alter table Amplification_SingleRead_AUD drop constraint FK8FB4043834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74F4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FBC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FE8D36B00 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FDF299D00 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FE7692740 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_AUD" not found; SQL statement:
+alter table Annotation_AUD drop constraint FK1A6BB5A034869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION" not found; SQL statement:
+alter table Annotation_Annotation drop constraint FKC99DFE3F1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION" not found; SQL statement:
+alter table Annotation_Annotation drop constraint FKC99DFE3F994CCE20 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Annotation_Annotation_AUD drop constraint FKB212F49034869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER" not found; SQL statement:
+alter table Annotation_Marker drop constraint FKB17EAF4A777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER" not found; SQL statement:
+alter table Annotation_Marker drop constraint FKB17EAF4A994CCE20 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER_AUD" not found; SQL statement:
+alter table Annotation_Marker_AUD drop constraint FK68CE281B34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDM_VIEW" not found; SQL statement:
+alter table CDM_VIEW drop constraint FKC5DE8EF84FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDM_VIEW" not found; SQL statement:
+alter table CDM_VIEW drop constraint FKC5DE8EF88D0FB4DA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDM_VIEW_CDM_VIEW" not found; SQL statement:
+alter table CDM_VIEW_CDM_VIEW drop constraint FK230A885F7208BB38 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDM_VIEW_CDM_VIEW" not found; SQL statement:
+alter table CDM_VIEW_CDM_VIEW drop constraint FK230A885FC00D1213 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+alter table CdmMetaData drop constraint FK6EA78F7B4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB1100064FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB110006BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB11000677E2F09E [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB1100068D0FB4DA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB110006D1E08681 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_AUD" not found; SQL statement:
+alter table Classification_AUD drop constraint FKEB11BAD734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION" not found; SQL statement:
+alter table Classification_Annotation drop constraint FKC978FD281E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION" not found; SQL statement:
+alter table Classification_Annotation drop constraint FKC978FD2884A3CE1B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Classification_Annotation_AUD drop constraint FK3D1256F934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT" not found; SQL statement:
+alter table Classification_Credit drop constraint FK4950A17232D1B9F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT" not found; SQL statement:
+alter table Classification_Credit drop constraint FK4950A17284A3CE1B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT_AUD" not found; SQL statement:
+alter table Classification_Credit_AUD drop constraint FK48AC64334869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION" not found; SQL statement:
+alter table Classification_Extension drop constraint FK715D6726927DE9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION" not found; SQL statement:
+alter table Classification_Extension drop constraint FK715D672684A3CE1B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION_AUD" not found; SQL statement:
+alter table Classification_Extension_AUD drop constraint FK289591F734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER" not found; SQL statement:
+alter table Classification_Marker drop constraint FK59778AB3777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER" not found; SQL statement:
+alter table Classification_Marker drop constraint FK59778AB384A3CE1B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER_AUD" not found; SQL statement:
+alter table Classification_Marker_AUD drop constraint FK68A9270434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Classification_OriginalSourceBase drop constraint FK91B37B363A6735D9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Classification_OriginalSourceBase drop constraint FK91B37B3684A3CE1B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Classification_OriginalSourceBase_AUD drop constraint FK48A31E0734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO" not found; SQL statement:
+alter table Classification_RightsInfo drop constraint FKD479A91EC13F7B21 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO" not found; SQL statement:
+alter table Classification_RightsInfo drop constraint FKD479A91E84A3CE1B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Classification_RightsInfo_AUD drop constraint FK3F5017EF34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABE4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABEBC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABE16B9CA77 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABECEB38EFF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_AUD" not found; SQL statement:
+alter table Collection_AUD drop constraint FKD6D4298F34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION" not found; SQL statement:
+alter table Collection_Annotation drop constraint FKEA970F701E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION" not found; SQL statement:
+alter table Collection_Annotation drop constraint FKEA970F70EB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION_AUD" not found; SQL statement:
+alter table Collection_Annotation_AUD drop constraint FKA0CE054134869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT" not found; SQL statement:
+alter table Collection_Credit drop constraint FKE0A317BA32D1B9F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT" not found; SQL statement:
+alter table Collection_Credit drop constraint FKE0A317BAEB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT_AUD" not found; SQL statement:
+alter table Collection_Credit_AUD drop constraint FK25A8D88B34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION" not found; SQL statement:
+alter table Collection_Extension drop constraint FKF68FEBDE927DE9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION" not found; SQL statement:
+alter table Collection_Extension drop constraint FKF68FEBDEEB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION_AUD" not found; SQL statement:
+alter table Collection_Extension_AUD drop constraint FK1306FAAF34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER" not found; SQL statement:
+alter table Collection_Marker drop constraint FKF0CA00FB777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER" not found; SQL statement:
+alter table Collection_Marker drop constraint FKF0CA00FBEB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER_AUD" not found; SQL statement:
+alter table Collection_Marker_AUD drop constraint FK89C7394C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA" not found; SQL statement:
+alter table Collection_Media drop constraint FK7320E703C2C29593 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA" not found; SQL statement:
+alter table Collection_Media drop constraint FK7320E703EB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA_AUD" not found; SQL statement:
+alter table Collection_Media_AUD drop constraint FK9AABDB5434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Collection_OriginalSourceBase drop constraint FK37DEC57E3A6735D9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Collection_OriginalSourceBase drop constraint FK37DEC57EEB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Collection_OriginalSourceBase_AUD drop constraint FKF810044F34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO" not found; SQL statement:
+alter table Collection_RightsInfo drop constraint FKF597BB66C13F7B21 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO" not found; SQL statement:
+alter table Collection_RightsInfo drop constraint FKF597BB66EB62BE9A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Collection_RightsInfo_AUD drop constraint FKA30BC63734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA97194FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719E8D36B00 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719F7976FC5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_AUD" not found; SQL statement:
+alter table Credit_AUD drop constraint FK5533906A34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION" not found; SQL statement:
+alter table Credit_Annotation drop constraint FKE8DA4C351E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION" not found; SQL statement:
+alter table Credit_Annotation drop constraint FKE8DA4C354CF694E0 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION_AUD" not found; SQL statement:
+alter table Credit_Annotation_AUD drop constraint FK1DEB578634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER" not found; SQL statement:
+alter table Credit_Marker drop constraint FK10CC6840777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER" not found; SQL statement:
+alter table Credit_Marker drop constraint FK10CC68404CF694E0 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER_AUD" not found; SQL statement:
+alter table Credit_Marker_AUD drop constraint FK880A761134869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A664FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A663B0DA0EF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66D040DBF0 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6647AF954C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6624AF3F70 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6636C6F6F6 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66CC0240B6 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6688206484 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table DefinedTermBase_AUD drop constraint FK86E8953734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION" not found; SQL statement:
+alter table DefinedTermBase_Annotation drop constraint FK589B6C81E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION" not found; SQL statement:
+alter table DefinedTermBase_Annotation drop constraint FK589B6C8C0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_Annotation_AUD drop constraint FK28ED409934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT" not found; SQL statement:
+alter table DefinedTermBase_Continent drop constraint FK45F60AFB9AEE7205 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT" not found; SQL statement:
+alter table DefinedTermBase_Continent drop constraint FK45F60AFB901A60CE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT_AUD" not found; SQL statement:
+alter table DefinedTermBase_Continent_AUD drop constraint FKF5DE434C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY" not found; SQL statement:
+alter table DefinedTermBase_Country drop constraint FKA2ADDA9D47CE41A0 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY" not found; SQL statement:
+alter table DefinedTermBase_Country drop constraint FKA2ADDA9DCE5C0F9E [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY_AUD" not found; SQL statement:
+alter table DefinedTermBase_Country_AUD drop constraint FK8D0171EE34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT" not found; SQL statement:
+alter table DefinedTermBase_Credit drop constraint FK78FF2B1232D1B9F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT" not found; SQL statement:
+alter table DefinedTermBase_Credit drop constraint FK78FF2B12C0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT_AUD" not found; SQL statement:
+alter table DefinedTermBase_Credit_AUD drop constraint FK409B7FE334869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION" not found; SQL statement:
+alter table DefinedTermBase_Extension drop constraint FK397EF986927DE9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION" not found; SQL statement:
+alter table DefinedTermBase_Extension drop constraint FK397EF986C0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION_AUD" not found; SQL statement:
+alter table DefinedTermBase_Extension_AUD drop constraint FK6E6F45734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER" not found; SQL statement:
+alter table DefinedTermBase_Marker drop constraint FK89261453777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER" not found; SQL statement:
+alter table DefinedTermBase_Marker drop constraint FK89261453C0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER_AUD" not found; SQL statement:
+alter table DefinedTermBase_Marker_AUD drop constraint FKA4B9E0A434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit drop constraint FKE9D17767F3BB39BD [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit drop constraint FKE9D17767D0BDAE9B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT_AUD" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit_AUD drop constraint FK2C1599B834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA" not found; SQL statement:
+alter table DefinedTermBase_Media drop constraint FK6FC908ABC2C29593 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA" not found; SQL statement:
+alter table DefinedTermBase_Media drop constraint FK6FC908ABC0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA_AUD" not found; SQL statement:
+alter table DefinedTermBase_Media_AUD drop constraint FKDD9AE8FC34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase drop constraint FKDCC094D63A6735D9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase drop constraint FKDCC094D6C0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase_AUD drop constraint FKAE4A67A734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration drop constraint FKA72FB5AE5255EAFD [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration drop constraint FKA72FB5AED0BDAE9B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration_AUD drop constraint FK780D5C7F34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION" not found; SQL statement:
+alter table DefinedTermBase_Representation drop constraint FKAAC8AFE6B31C4747 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION" not found; SQL statement:
+alter table DefinedTermBase_Representation drop constraint FKAAC8AFE6C0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_Representation_AUD drop constraint FKB5AE7AB734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo drop constraint FK108A62BEC13F7B21 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo drop constraint FK108A62BEC0DB4934 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo_AUD drop constraint FK2B2B018F34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure drop constraint FK6FF15DFCC9CD5B57 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure drop constraint FK6FF15DFCD0BDAE9B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE_AUD" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure_AUD drop constraint FK3C062DCD34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration drop constraint FK2170B25C5AF2C74 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration drop constraint FK2170B25CD0BDAE9B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration_AUD drop constraint FKBB04522D34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC034FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC03BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC033DA462D5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC038524B89D [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_AUD" not found; SQL statement:
+alter table DerivationEvent_AUD drop constraint FKDABF305434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DerivationEvent_Annotation drop constraint FKEFA0D10B1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DerivationEvent_Annotation drop constraint FKEFA0D10B4AAB411A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table DerivationEvent_Annotation_AUD drop constraint FKA197815C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER" not found; SQL statement:
+alter table DerivationEvent_Marker drop constraint FKE412C816777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER" not found; SQL statement:
+alter table DerivationEvent_Marker drop constraint FKE412C8164AAB411A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER_AUD" not found; SQL statement:
+alter table DerivationEvent_Marker_AUD drop constraint FK8ED0FAE734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CD4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDBC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDB56856A4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDDE9A3E39 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDDA935185 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_AUD" not found; SQL statement:
+alter table DescriptionBase_AUD drop constraint FK7456581E34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionBase_Annotation drop constraint FKF3AD32011E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionBase_Annotation drop constraint FKF3AD3201F1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table DescriptionBase_Annotation_AUD drop constraint FK15FE775234869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT" not found; SQL statement:
+alter table DescriptionBase_Credit drop constraint FK510B2ACB32D1B9F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT" not found; SQL statement:
+alter table DescriptionBase_Credit drop constraint FK510B2ACBF1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT_AUD" not found; SQL statement:
+alter table DescriptionBase_Credit_AUD drop constraint FK2EBEFB1C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION" not found; SQL statement:
+alter table DescriptionBase_Extension drop constraint FKD5D2B32D927DE9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION" not found; SQL statement:
+alter table DescriptionBase_Extension drop constraint FKD5D2B32DF1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION_AUD" not found; SQL statement:
+alter table DescriptionBase_Extension_AUD drop constraint FK79E7827E34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE" not found; SQL statement:
+alter table DescriptionBase_GeoScope drop constraint FK3ADD7CD586D04E74 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE" not found; SQL statement:
+alter table DescriptionBase_GeoScope drop constraint FK3ADD7CD5D86445CE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE_AUD" not found; SQL statement:
+alter table DescriptionBase_GeoScope_AUD drop constraint FK63A5382634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER" not found; SQL statement:
+alter table DescriptionBase_Marker drop constraint FK6132140C777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER" not found; SQL statement:
+alter table DescriptionBase_Marker drop constraint FK6132140CF1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER_AUD" not found; SQL statement:
+alter table DescriptionBase_Marker_AUD drop constraint FK92DD5BDD34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase drop constraint FKDC75C70F3A6735D9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase drop constraint FKDC75C70FF1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase_AUD drop constraint FK8F39D56034869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE" not found; SQL statement:
+alter table DescriptionBase_Reference drop constraint FKC330D6395C601E49 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE" not found; SQL statement:
+alter table DescriptionBase_Reference drop constraint FKC330D639F1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE_AUD" not found; SQL statement:
+alter table DescriptionBase_Reference_AUD drop constraint FK76253F8A34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table DescriptionBase_RightsInfo drop constraint FKFEADDDF7C13F7B21 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table DescriptionBase_RightsInfo drop constraint FKFEADDDF7F1DDBFAB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table DescriptionBase_RightsInfo_AUD drop constraint FK183C384834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE" not found; SQL statement:
+alter table DescriptionBase_Scope drop constraint FKB9257C4294E290CA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE" not found; SQL statement:
+alter table DescriptionBase_Scope drop constraint FKB9257C42D86445CE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE_AUD" not found; SQL statement:
+alter table DescriptionBase_Scope_AUD drop constraint FK75D5B91334869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76714FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76714220AFEB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE767134AF0E81 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76711C3C3FF7 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671E8D36B00 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76715E9914B8 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76716561D9B1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE767110A80E07 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76719108D9B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76716D0D7A56 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_AUD drop constraint FKF3803C234869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionElementBase_Annotation drop constraint FK7EE5E5DD1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionElementBase_Annotation drop constraint FK7EE5E5DD3B8BB609 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Annotation_AUD drop constraint FK2BC1DD2E34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137ACF5F60B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137C6D55834 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137C086B46F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString_AUD drop constraint FK2D26AB8834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER" not found; SQL statement:
+alter table DescriptionElementBase_Marker drop constraint FK1CB715E8777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER" not found; SQL statement:
+alter table DescriptionElementBase_Marker drop constraint FK1CB715E83B8BB609 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Marker_AUD drop constraint FK1E160FB934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA" not found; SQL statement:
+alter table DescriptionElementBase_Media drop constraint FK21F70076C2C29593 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA" not found; SQL statement:
+alter table DescriptionElementBase_Media drop constraint FK21F700763B8BB609 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Media_AUD drop constraint FK5522034734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER" not found; SQL statement:
+alter table DescriptionElementBase_Modifier drop constraint FK97E0D105F4E35BCD [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER" not found; SQL statement:
+alter table DescriptionElementBase_Modifier drop constraint FK97E0D1053B8BB609 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Modifier_AUD drop constraint FK2982F45634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C7F05D08D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C79682414B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C73B8BB609 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT_AUD" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText_AUD drop constraint FK6C06031834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase drop constraint FKF41ADEEBA6473CCC [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase drop constraint FKF41ADEEB3B8BB609 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase_AUD drop constraint FK9C979F3C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATEDATA" not found; SQL statement:
+alter table DescriptionElementBase_StateData drop constraint FK592D6F6D8E7BF9AB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATEDATA" not found; SQL statement:
+alter table DescriptionElementBase_StateData drop constraint FK592D6F6D987CC6A4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATEDATA_AUD" not found; SQL statement:
+alter table DescriptionElementBase_StateData_AUD drop constraint FK1D0A1EBE34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table DescriptionElementBase_StatisticalMeasurementValue drop constraint FK8AF511C2D883945E [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table DescriptionElementBase_StatisticalMeasurementValue drop constraint FK8AF511C28F213219 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATISTICALMEASUREMENTVALUE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_StatisticalMeasurementValue_AUD drop constraint FK2DE8E9334869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24974FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24973DA462D5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24974B251DAD [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497BD54CF92 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497AEC8CCAA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_AUD" not found; SQL statement:
+alter table DeterminationEvent_AUD drop constraint FKA0252EE834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DeterminationEvent_Annotation drop constraint FKB74F03F71E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DeterminationEvent_Annotation drop constraint FKB74F03F76BE0BFDA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table DeterminationEvent_Annotation_AUD drop constraint FKAFDA5E4834869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER" not found; SQL statement:
+alter table DeterminationEvent_Marker drop constraint FK5C475102777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER" not found; SQL statement:
+alter table DeterminationEvent_Marker drop constraint FK5C4751026BE0BFDA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER_AUD" not found; SQL statement:
+alter table DeterminationEvent_Marker_AUD drop constraint FK567F2DD334869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE" not found; SQL statement:
+alter table DeterminationEvent_Reference drop constraint FK8FB1ED8355A53F64 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE" not found; SQL statement:
+alter table DeterminationEvent_Reference drop constraint FK8FB1ED836BE0BFDA [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE_AUD" not found; SQL statement:
+alter table DeterminationEvent_Reference_AUD drop constraint FK6255A1D434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1F4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1FBC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1FAD392BD3 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION_AUD" not found; SQL statement:
+alter table Extension_AUD drop constraint FK92D2427034869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F84FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F8BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F84220AFEB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F847C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F8E0AD2C59 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_AUD" not found; SQL statement:
+alter table FeatureNode_AUD drop constraint FK25AD4BC934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_INAPPLICABLEIF" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_InapplicableIf drop constraint FK56833D011128E63B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_INAPPLICABLEIF" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_InapplicableIf drop constraint FK56833D0152FCC4B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_INAPPLICABLEIF_AUD" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_InapplicableIf_AUD drop constraint FKB8D7025234869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_ONLYAPPLICABLE" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_OnlyApplicable drop constraint FK6AE876AB57FA94D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_ONLYAPPLICABLE" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_OnlyApplicable drop constraint FK6AE876AB52FCC4B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_ONLYAPPLICABLE_AUD" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_OnlyApplicable_AUD drop constraint FK3F5356FC34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F944FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F94BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F94B7892921 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_AUD" not found; SQL statement:
+alter table FeatureTree_AUD drop constraint FK355BE36534869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION" not found; SQL statement:
+alter table FeatureTree_Annotation drop constraint FK5D8B8DA1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION" not found; SQL statement:
+alter table FeatureTree_Annotation drop constraint FK5D8B8DA47C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION_AUD" not found; SQL statement:
+alter table FeatureTree_Annotation_AUD drop constraint FK86E8E9AB34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT" not found; SQL statement:
+alter table FeatureTree_Credit drop constraint FK7536062432D1B9F [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT" not found; SQL statement:
+alter table FeatureTree_Credit drop constraint FK7536062447C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT_AUD" not found; SQL statement:
+alter table FeatureTree_Credit_AUD drop constraint FK40EA81F534869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION" not found; SQL statement:
+alter table FeatureTree_Extension drop constraint FKAD1E6D34927DE9DF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION" not found; SQL statement:
+alter table FeatureTree_Extension drop constraint FKAD1E6D3447C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION_AUD" not found; SQL statement:
+alter table FeatureTree_Extension_AUD drop constraint FKF128E10534869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER" not found; SQL statement:
+alter table FeatureTree_Marker drop constraint FK855CEF65777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER" not found; SQL statement:
+alter table FeatureTree_Marker drop constraint FK855CEF6547C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER_AUD" not found; SQL statement:
+alter table FeatureTree_Marker_AUD drop constraint FKA508E2B634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase drop constraint FK13BD64E83A6735D9 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase drop constraint FK13BD64E847C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase_AUD drop constraint FK7B5CDEB934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION" not found; SQL statement:
+alter table FeatureTree_Representation drop constraint FK8C458F8B31C4747 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION" not found; SQL statement:
+alter table FeatureTree_Representation drop constraint FK8C458F847C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION_AUD" not found; SQL statement:
+alter table FeatureTree_Representation_AUD drop constraint FKECAB4AC934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO" not found; SQL statement:
+alter table FeatureTree_RightsInfo drop constraint FK10D964D0C13F7B21 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO" not found; SQL statement:
+alter table FeatureTree_RightsInfo drop constraint FK10D964D047C496CB [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table FeatureTree_RightsInfo_AUD drop constraint FK8926AAA134869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F34FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F33DA462D5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3C15704E [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3F55AFD89 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F38B455EC6 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_AUD" not found; SQL statement:
+alter table GatheringEvent_AUD drop constraint FK3EC034434869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION" not found; SQL statement:
+alter table GatheringEvent_Annotation drop constraint FK76DDD01B1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION" not found; SQL statement:
+alter table GatheringEvent_Annotation drop constraint FK76DDD01BF95F225A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table GatheringEvent_Annotation_AUD drop constraint FK351E786C34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase drop constraint FK69D9A11A7C34B6D6 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase drop constraint FK69D9A11AF95F225A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase_AUD drop constraint FKB3BBB1EB34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER" not found; SQL statement:
+alter table GatheringEvent_Marker drop constraint FK7B49CF26777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER" not found; SQL statement:
+alter table GatheringEvent_Marker drop constraint FK7B49CF26F95F225A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER_AUD" not found; SQL statement:
+alter table GatheringEvent_Marker_AUD drop constraint FK160DF9F734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table GrantedAuthorityImpl drop constraint FKB05CF9284FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP" not found; SQL statement:
+alter table HomotypicalGroup drop constraint FK7DECCC184FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP" not found; SQL statement:
+alter table HomotypicalGroup drop constraint FK7DECCC18BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_AUD" not found; SQL statement:
+alter table HomotypicalGroup_AUD drop constraint FKE4252DE934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION" not found; SQL statement:
+alter table HomotypicalGroup_Annotation drop constraint FK7A0351D61E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION" not found; SQL statement:
+alter table HomotypicalGroup_Annotation drop constraint FK7A0351D6BFEAE500 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION_AUD" not found; SQL statement:
+alter table HomotypicalGroup_Annotation_AUD drop constraint FK41E6A4A734869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER" not found; SQL statement:
+alter table HomotypicalGroup_Marker drop constraint FK97D36661777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER" not found; SQL statement:
+alter table HomotypicalGroup_Marker drop constraint FK97D36661BFEAE500 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER_AUD" not found; SQL statement:
+alter table HomotypicalGroup_Marker_AUD drop constraint FK19337BB234869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE744FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74AEB7F3BE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE749DD57A93 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74AF4F9F62 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE7455F241D4 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_AUD" not found; SQL statement:
+alter table HybridRelationship_AUD drop constraint FK9C2BA24534869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table HybridRelationship_Annotation drop constraint FK2C7E7DFA1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table HybridRelationship_Annotation drop constraint FK2C7E7DFA59832240 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table HybridRelationship_Annotation_AUD drop constraint FKACE71ECB34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER" not found; SQL statement:
+alter table HybridRelationship_Marker drop constraint FKCEF24485777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER" not found; SQL statement:
+alter table HybridRelationship_Marker drop constraint FKCEF2448559832240 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table HybridRelationship_Marker_AUD drop constraint FKCBAEA7D634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC02BEBA58D [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC028459272 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC084FF3EDF [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table IndividualAssociation_LanguageString_AUD drop constraint FKB1A62C9134869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF94FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF9BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF916B9CA77 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF9AAC1B820 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP_AUD" not found; SQL statement:
+alter table InstitutionalMembership_AUD drop constraint FK847A94A34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT" not found; SQL statement:
+alter table KeyStatement drop constraint FK7125B9F04FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT" not found; SQL statement:
+alter table KeyStatement drop constraint FK7125B9F0BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_AUD" not found; SQL statement:
+alter table KeyStatement_AUD drop constraint FK93036FC134869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD89C782795 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD8DA0C376A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD8AAA67049 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table KeyStatement_LanguageString_AUD drop constraint FKE203E1A934869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LSIDAUTHORITY" not found; SQL statement:
+alter table LSIDAuthority drop constraint FK759DB8814FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LSIDAUTHORITY_NAMESPACES" not found; SQL statement:
+alter table LSIDAuthority_namespaces drop constraint FKB04948F64FFCFD94 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A94FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A9BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A9E8D36B00 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_AUD" not found; SQL statement:
+alter table LanguageString_AUD drop constraint FK896AFAFA34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION" not found; SQL statement:
+alter table LanguageString_Annotation drop constraint FK8400DFA51E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION" not found; SQL statement:
+alter table LanguageString_Annotation drop constraint FK8400DFA537998500 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION_AUD" not found; SQL statement:
+alter table LanguageString_Annotation_AUD drop constraint FKD3BAB2F634869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER" not found; SQL statement:
+alter table LanguageString_Marker drop constraint FK8DA633B0777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER" not found; SQL statement:
+alter table LanguageString_Marker drop constraint FK8DA633B037998500 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER_AUD" not found; SQL statement:
+alter table LanguageString_Marker_AUD drop constraint FK2331098134869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805A4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805ABC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805AD64DC020 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER_AUD" not found; SQL statement:
+alter table Marker_AUD drop constraint FKB951F12B34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F4FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264FBC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F3DA462D5 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F14D2C695 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F3781DA30 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F1600EAB3 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F9A129634 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_AUD drop constraint FK8C8C94A034869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation drop constraint FKD9943F3F1E403E0B [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation drop constraint FKD9943F3F2F50355A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation_AUD drop constraint FK6B00B59034869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker drop constraint FKF0BD704A777265A1 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker drop constraint FKF0BD704A2F50355A [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker_AUD drop constraint FK78C4691B34869AAE [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC44FF2DB2C [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC4BC5DA539 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC4C2445443 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA" not found; SQL statement:
+alter table MediaKey_NamedArea drop constraint FK31E7D4023FF8E7B2 [42102-170]
+10-09 16:14:55 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA" not found; SQL statement:
+alter table MediaKey_NamedArea drop constraint FK31E7D402BE59D760 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA_AUD" not found; SQL statement:
+alter table MediaKey_NamedArea_AUD drop constraint FK922630D334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE" not found; SQL statement:
+alter table MediaKey_Scope drop constraint FKBFFEE8F05431B96E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE" not found; SQL statement:
+alter table MediaKey_Scope drop constraint FKBFFEE8F0BE59D760 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE_AUD" not found; SQL statement:
+alter table MediaKey_Scope_AUD drop constraint FK63AD1EC134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON" not found; SQL statement:
+alter table MediaKey_Taxon drop constraint FKC00C3966DE9A3E39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON" not found; SQL statement:
+alter table MediaKey_Taxon drop constraint FKC00C3966815C7E9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON_AUD" not found; SQL statement:
+alter table MediaKey_Taxon_AUD drop constraint FK311443734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB14FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB1BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB1C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A455444FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A45544BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A45544E3818E37 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART_AUD" not found; SQL statement:
+alter table MediaRepresentationPart_AUD drop constraint FKA75C411534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION_AUD" not found; SQL statement:
+alter table MediaRepresentation_AUD drop constraint FK67AAAB0234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION_MEDIAREPRESENTATIONPART_AUD" not found; SQL statement:
+alter table MediaRepresentation_MediaRepresentationPart_AUD drop constraint FK3544378734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_AUD" not found; SQL statement:
+alter table Media_AUD drop constraint FKF70B2B9534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION" not found; SQL statement:
+alter table Media_Annotation drop constraint FKA020DAAA1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION" not found; SQL statement:
+alter table Media_Annotation drop constraint FKA020DAAAC2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION_AUD" not found; SQL statement:
+alter table Media_Annotation_AUD drop constraint FK99ABA37B34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT" not found; SQL statement:
+alter table Media_Credit drop constraint FKC1F78FF432D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT" not found; SQL statement:
+alter table Media_Credit drop constraint FKC1F78FF4C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT_AUD" not found; SQL statement:
+alter table Media_Credit_AUD drop constraint FKDB32A3C534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E12BEBA58D [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E128459272 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E1C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION_AUD" not found; SQL statement:
+alter table Media_Description_AUD drop constraint FK6817D93234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION" not found; SQL statement:
+alter table Media_Extension drop constraint FKDB62D164927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION" not found; SQL statement:
+alter table Media_Extension drop constraint FKDB62D164C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION_AUD" not found; SQL statement:
+alter table Media_Extension_AUD drop constraint FKE13FAD3534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784A1CA19B1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784A0A6EDCE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table Media_LanguageString_AUD drop constraint FK68FA835534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER" not found; SQL statement:
+alter table Media_Marker drop constraint FKD21E7935777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER" not found; SQL statement:
+alter table Media_Marker drop constraint FKD21E7935C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER_AUD" not found; SQL statement:
+alter table Media_Marker_AUD drop constraint FK3F51048634869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Media_OriginalSourceBase drop constraint FK2FEEB6B83A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Media_OriginalSourceBase drop constraint FK2FEEB6B8C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Media_OriginalSourceBase_AUD drop constraint FK97F0C88934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION" not found; SQL statement:
+alter table Media_Representation drop constraint FK1B8712C88F6CABE6 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION" not found; SQL statement:
+alter table Media_Representation drop constraint FK1B8712C8BE59D760 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION_AUD" not found; SQL statement:
+alter table Media_Representation_AUD drop constraint FK8DC9C9934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO" not found; SQL statement:
+alter table Media_RightsInfo drop constraint FKAB2186A0C13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO" not found; SQL statement:
+alter table Media_RightsInfo drop constraint FKAB2186A0C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Media_RightsInfo_AUD drop constraint FK9BE9647134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE" not found; SQL statement:
+alter table Media_Sequence drop constraint FK61D09FCF29B4761 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE" not found; SQL statement:
+alter table Media_Sequence drop constraint FK61D09FC3282B64 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE_AUD" not found; SQL statement:
+alter table Media_Sequence_AUD drop constraint FK3C7BD9CD34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE" not found; SQL statement:
+alter table Media_TaxonBase drop constraint FK1ABD49E07C3D0017 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE" not found; SQL statement:
+alter table Media_TaxonBase drop constraint FK1ABD49E0BE59D760 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE_AUD" not found; SQL statement:
+alter table Media_TaxonBase_AUD drop constraint FK857187B134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA" not found; SQL statement:
+alter table MultiAccessKey_NamedArea drop constraint FK1F5A74893FF8E7B2 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA" not found; SQL statement:
+alter table MultiAccessKey_NamedArea drop constraint FK1F5A7489B4555A9A [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA_AUD" not found; SQL statement:
+alter table MultiAccessKey_NamedArea_AUD drop constraint FK4CB735DA34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE" not found; SQL statement:
+alter table MultiAccessKey_Scope drop constraint FKCC6CE4F75431B96E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE" not found; SQL statement:
+alter table MultiAccessKey_Scope drop constraint FKCC6CE4F7B4555A9A [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE_AUD" not found; SQL statement:
+alter table MultiAccessKey_Scope_AUD drop constraint FK511FBF4834869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON" not found; SQL statement:
+alter table MultiAccessKey_Taxon drop constraint FKCC7A356DDE9A3E39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON" not found; SQL statement:
+alter table MultiAccessKey_Taxon drop constraint FKCC7A356DB64A7B29 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON_AUD" not found; SQL statement:
+alter table MultiAccessKey_Taxon_AUD drop constraint FKF083E4BE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E510834FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083AEB7F3BE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E5108316CDFF85 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E5108328482454 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083AF619DE3 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_AUD" not found; SQL statement:
+alter table NameRelationship_AUD drop constraint FK743F44D434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table NameRelationship_Annotation drop constraint FK2E38AC8B1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table NameRelationship_Annotation drop constraint FK2E38AC8B7B4CB560 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table NameRelationship_Annotation_AUD drop constraint FKD1D59CDC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER" not found; SQL statement:
+alter table NameRelationship_Marker drop constraint FKE3E46396777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER" not found; SQL statement:
+alter table NameRelationship_Marker drop constraint FKE3E463967B4CB560 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table NameRelationship_Marker_AUD drop constraint FKCD68D66734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88B4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88BBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88BAEB7F3BE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88B7029BD9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_AUD drop constraint FKFB2DB8DC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation drop constraint FKE6E91F831E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation drop constraint FKE6E91F838D2CB1D4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation_AUD drop constraint FK6A3D3D434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER" not found; SQL statement:
+alter table NomenclaturalStatus_Marker drop constraint FK2F5128E777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER" not found; SQL statement:
+alter table NomenclaturalStatus_Marker drop constraint FK2F5128E8D2CB1D4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_Marker_AUD drop constraint FK8619495F34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5D4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5DBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5DAEB7F3BE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5D966B96B2 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table OriginalSourceBase_AUD drop constraint FK9662E5AE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION" not found; SQL statement:
+alter table OriginalSourceBase_Annotation drop constraint FK208142711E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION" not found; SQL statement:
+alter table OriginalSourceBase_Annotation drop constraint FK20814271B029DDA0 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table OriginalSourceBase_Annotation_AUD drop constraint FKA074CFC234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER" not found; SQL statement:
+alter table OriginalSourceBase_Marker drop constraint FKB3FFDC7C777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER" not found; SQL statement:
+alter table OriginalSourceBase_Marker drop constraint FKB3FFDC7CB029DDA0 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER_AUD" not found; SQL statement:
+alter table OriginalSourceBase_Marker_AUD drop constraint FKBFB16C4D34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP" not found; SQL statement:
+alter table PermissionGroup drop constraint FK629941D04FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table PermissionGroup_GrantedAuthorityImpl drop constraint FK53114371857F6C2 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table PermissionGroup_GrantedAuthorityImpl drop constraint FK5311437CA0971A3 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B1384FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B138BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B138576595C3 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775ABC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4220AFEB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775AC73A7584 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4FEE4393 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A808998FB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A9D3C2E93 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4382686A [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A1C0483C4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775ADE9A3E39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_AUD" not found; SQL statement:
+alter table PolytomousKeyNode_AUD drop constraint FK6A6D682B34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12EF05D08D4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12E9682414B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12EF135C42B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString_AUD drop constraint FKE0D0C7FF34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_AUD" not found; SQL statement:
+alter table PolytomousKey_AUD drop constraint FK867830934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION" not found; SQL statement:
+alter table PolytomousKey_Annotation drop constraint FK278CF8B61E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION" not found; SQL statement:
+alter table PolytomousKey_Annotation drop constraint FK278CF8B689D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION_AUD" not found; SQL statement:
+alter table PolytomousKey_Annotation_AUD drop constraint FK3281DB8734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT" not found; SQL statement:
+alter table PolytomousKey_Credit drop constraint FKADC940032D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT" not found; SQL statement:
+alter table PolytomousKey_Credit drop constraint FKADC940089D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT_AUD" not found; SQL statement:
+alter table PolytomousKey_Credit_AUD drop constraint FK629EC1D134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION" not found; SQL statement:
+alter table PolytomousKey_Extension drop constraint FKAE34C1D8927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION" not found; SQL statement:
+alter table PolytomousKey_Extension drop constraint FKAE34C1D889D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION_AUD" not found; SQL statement:
+alter table PolytomousKey_Extension_AUD drop constraint FK1FFC43A934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER" not found; SQL statement:
+alter table PolytomousKey_Marker drop constraint FK1B037D41777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER" not found; SQL statement:
+alter table PolytomousKey_Marker drop constraint FK1B037D4189D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER_AUD" not found; SQL statement:
+alter table PolytomousKey_Marker_AUD drop constraint FKC6BD229234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA" not found; SQL statement:
+alter table PolytomousKey_NamedArea drop constraint FK1C727CFF3FF8E7B2 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA" not found; SQL statement:
+alter table PolytomousKey_NamedArea drop constraint FK1C727CFF89D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA_AUD" not found; SQL statement:
+alter table PolytomousKey_NamedArea_AUD drop constraint FK750A135034869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase drop constraint FK839208C43A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase drop constraint FK839208C489D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase_AUD drop constraint FKE644349534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO" not found; SQL statement:
+alter table PolytomousKey_RightsInfo drop constraint FK328DA4ACC13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO" not found; SQL statement:
+alter table PolytomousKey_RightsInfo drop constraint FK328DA4AC89D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO_AUD" not found; SQL statement:
+alter table PolytomousKey_RightsInfo_AUD drop constraint FK34BF9C7D34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE" not found; SQL statement:
+alter table PolytomousKey_Scope drop constraint FK8D97986D5431B96E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE" not found; SQL statement:
+alter table PolytomousKey_Scope drop constraint FK8D97986D89D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE_AUD" not found; SQL statement:
+alter table PolytomousKey_Scope_AUD drop constraint FK4E37C7BE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON" not found; SQL statement:
+alter table PolytomousKey_Taxon drop constraint FK8DA4E8E3DE9A3E39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON" not found; SQL statement:
+alter table PolytomousKey_Taxon drop constraint FK8DA4E8E389D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE" not found; SQL statement:
+alter table PolytomousKey_TaxonBase drop constraint FKED8F3A547C3D0017 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE" not found; SQL statement:
+alter table PolytomousKey_TaxonBase drop constraint FKED8F3A5489D97CB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE_AUD" not found; SQL statement:
+alter table PolytomousKey_TaxonBase_AUD drop constraint FKC42E1E2534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON_AUD" not found; SQL statement:
+alter table PolytomousKey_Taxon_AUD drop constraint FKED9BED3434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F34FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3D0374392 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3D57FFDD5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_AUD" not found; SQL statement:
+alter table Primer_AUD drop constraint FK319B864434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION" not found; SQL statement:
+alter table Primer_Annotation drop constraint FK9044ED1B1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION" not found; SQL statement:
+alter table Primer_Annotation drop constraint FK9044ED1B48BD1F55 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION_AUD" not found; SQL statement:
+alter table Primer_Annotation_AUD drop constraint FKDBAF156C34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER" not found; SQL statement:
+alter table Primer_Marker drop constraint FKF6C76C26777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER" not found; SQL statement:
+alter table Primer_Marker drop constraint FKF6C76C2648BD1F55 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER_AUD" not found; SQL statement:
+alter table Primer_Marker_AUD drop constraint FK2F7516F734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B697665E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BAD54327F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B403E17F4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BAEC3B8B8 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_AUD" not found; SQL statement:
+alter table Reference_AUD drop constraint FK8F0FFF7C34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION" not found; SQL statement:
+alter table Reference_Annotation drop constraint FKFC824E31E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION" not found; SQL statement:
+alter table Reference_Annotation drop constraint FKFC824E38D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION_AUD" not found; SQL statement:
+alter table Reference_Annotation_AUD drop constraint FKF3C1293434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT" not found; SQL statement:
+alter table Reference_Credit drop constraint FK5BC6DEAD32D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT" not found; SQL statement:
+alter table Reference_Credit drop constraint FK5BC6DEAD8D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT_AUD" not found; SQL statement:
+alter table Reference_Credit_AUD drop constraint FK4AD9EDFE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION" not found; SQL statement:
+alter table Reference_Extension drop constraint FKDEFCDC0B927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION" not found; SQL statement:
+alter table Reference_Extension drop constraint FKDEFCDC0B8D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION_AUD" not found; SQL statement:
+alter table Reference_Extension_AUD drop constraint FK1DF60C5C34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER" not found; SQL statement:
+alter table Reference_Marker drop constraint FK6BEDC7EE777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER" not found; SQL statement:
+alter table Reference_Marker drop constraint FK6BEDC7EE8D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER_AUD" not found; SQL statement:
+alter table Reference_Marker_AUD drop constraint FKAEF84EBF34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA" not found; SQL statement:
+alter table Reference_Media drop constraint FKBBEF5B0C2C29593 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA" not found; SQL statement:
+alter table Reference_Media drop constraint FKBBEF5B08D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA_AUD" not found; SQL statement:
+alter table Reference_Media_AUD drop constraint FK8318CB8134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Reference_OriginalSourceBase drop constraint FKD3E8B7F13A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Reference_OriginalSourceBase drop constraint FKD3E8B7F18D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Reference_OriginalSourceBase_AUD drop constraint FKC025854234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO" not found; SQL statement:
+alter table Reference_RightsInfo drop constraint FK1AC8D0D9C13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO" not found; SQL statement:
+alter table Reference_RightsInfo drop constraint FK1AC8D0D98D0FB4DA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Reference_RightsInfo_AUD drop constraint FKF5FEEA2A34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation drop constraint FK98592F33473FB677 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation drop constraint FK98592F33ECEEF4AF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION_AUD" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation_AUD drop constraint FK5D248B8434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724ED4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724EDBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724EDE8D36B00 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_AUD" not found; SQL statement:
+alter table Representation_AUD drop constraint FK294D143E34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION" not found; SQL statement:
+alter table Representation_Annotation drop constraint FK371091E11E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION" not found; SQL statement:
+alter table Representation_Annotation drop constraint FK371091E147E8AE60 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Representation_Annotation_AUD drop constraint FK36EEE73234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER" not found; SQL statement:
+alter table Representation_Marker drop constraint FK560063EC777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER" not found; SQL statement:
+alter table Representation_Marker drop constraint FK560063EC47E8AE60 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER_AUD" not found; SQL statement:
+alter table Representation_Marker_AUD drop constraint FKD640BBBD34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK252273454FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345E8D36B00 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345F7976FC5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345E6D2D338 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_AUD" not found; SQL statement:
+alter table RightsInfo_AUD drop constraint FK1CA9769634869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION" not found; SQL statement:
+alter table RightsInfo_Annotation drop constraint FKECC95C891E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION" not found; SQL statement:
+alter table RightsInfo_Annotation drop constraint FKECC95C89EFE62333 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION_AUD" not found; SQL statement:
+alter table RightsInfo_Annotation_AUD drop constraint FK78721DDA34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER" not found; SQL statement:
+alter table RightsInfo_Marker drop constraint FK81D8C294777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER" not found; SQL statement:
+alter table RightsInfo_Marker drop constraint FK81D8C294EFE62333 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER_AUD" not found; SQL statement:
+alter table RightsInfo_Marker_AUD drop constraint FK8BF9866534869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE14FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE1BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE19F65E72B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE16D2CE418 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE1E671A9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_AUD" not found; SQL statement:
+alter table Sequence_AUD drop constraint FK39F4313234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION" not found; SQL statement:
+alter table Sequence_Annotation drop constraint FK1010BA6D1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION" not found; SQL statement:
+alter table Sequence_Annotation drop constraint FK1010BA6DD57FFDD5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION_AUD" not found; SQL statement:
+alter table Sequence_Annotation_AUD drop constraint FKCB4FE9BE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER" not found; SQL statement:
+alter table Sequence_Marker drop constraint FK3D22B278777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER" not found; SQL statement:
+alter table Sequence_Marker drop constraint FK3D22B278D57FFDD5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER_AUD" not found; SQL statement:
+alter table Sequence_Marker_AUD drop constraint FKAF40E44934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE" not found; SQL statement:
+alter table Sequence_Reference drop constraint FK6944904D1DDDC219 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE" not found; SQL statement:
+alter table Sequence_Reference drop constraint FK6944904DD57FFDD5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE_AUD" not found; SQL statement:
+alter table Sequence_Reference_AUD drop constraint FK18E5CF9E34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_SINGLEREAD" not found; SQL statement:
+alter table Sequence_SingleRead drop constraint FKA334BD3CBBC12E3E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_SINGLEREAD" not found; SQL statement:
+alter table Sequence_SingleRead drop constraint FKA334BD3CD57FFDD5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_SINGLEREAD_AUD" not found; SQL statement:
+alter table Sequence_SingleRead_AUD drop constraint FK5407ED0D34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1EBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E3DA462D5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E614CEB1F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1EE0EBCFFE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E55DDFE96 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E48BD1F55 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_AUD" not found; SQL statement:
+alter table SingleRead_AUD drop constraint FKA323B8EF34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION" not found; SQL statement:
+alter table SingleRead_Annotation drop constraint FK33E974101E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION" not found; SQL statement:
+alter table SingleRead_Annotation drop constraint FK33E974103A5A5E15 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION_AUD" not found; SQL statement:
+alter table SingleRead_Annotation_AUD drop constraint FK7B1D19E134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER" not found; SQL statement:
+alter table SingleRead_Marker drop constraint FKCF47B59B777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER" not found; SQL statement:
+alter table SingleRead_Marker drop constraint FKCF47B59B3A5A5E15 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER_AUD" not found; SQL statement:
+alter table SingleRead_Marker_AUD drop constraint FKD3199DEC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32724FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272F53E6AFA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32728C35BD07 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272E35D77A3 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272EB62BE9A [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272156CF96 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272C8505DB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32727CC340C5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32724FF2F98B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272F95F225A [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272DADF76EA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_AUD drop constraint FKF3D3D74334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation drop constraint FK365E4F3C1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation drop constraint FK365E4F3C3B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation_AUD drop constraint FK34187F0D34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit drop constraint FK7E3A1D8632D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit drop constraint FK7E3A1D863B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit_AUD drop constraint FK7170185734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent drop constraint FK20132036BD59A1AD [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent drop constraint FK2013203654C216AA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent_AUD drop constraint FKA4A8430734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension drop constraint FKE03B8292927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension drop constraint FKE03B82923B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension_AUD drop constraint FK7AE0176334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA9316CD55E0D6 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA93168028C309 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA93163B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString_AUD drop constraint FK38B45E734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker drop constraint FK8E6106C7777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker drop constraint FK8E6106C73B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker_AUD drop constraint FKD58E791834869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase drop constraint FKCA7F794A3A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase drop constraint FKCA7F794A3B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase_AUD drop constraint FK2059F21B34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo drop constraint FK415EFB32C13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo drop constraint FK415EFB323B8A5ABA [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo_AUD drop constraint FK3656400334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_SEQUENCE" not found; SQL statement:
+alter table SpecimenOrObservationBase_Sequence drop constraint FKBBF27B0E35B10F24 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_SEQUENCE" not found; SQL statement:
+alter table SpecimenOrObservationBase_Sequence drop constraint FKBBF27B0E7EE2770E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_SEQUENCE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Sequence_AUD drop constraint FK392E71DF34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BBBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB682A4E4B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_AUD" not found; SQL statement:
+alter table StateData_AUD drop constraint FKDA6A700C34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE" not found; SQL statement:
+alter table StateData_DefinedTermBase drop constraint FK107321E2F4E35BCD [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE" not found; SQL statement:
+alter table StateData_DefinedTermBase drop constraint FK107321E28E7BF9AB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table StateData_DefinedTermBase_AUD drop constraint FK7C978EB334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2ADF05D08D4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2AD9682414B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2AD8E7BF9AB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table StateData_LanguageString_AUD drop constraint FK1578E1FE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE02904FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE0290BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE02904C428112 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_AUD" not found; SQL statement:
+alter table StatisticalMeasurementValue_AUD drop constraint FKBB16686134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase drop constraint FK686C42B7F4E35BCD [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase drop constraint FK686C42B75C9F4F2B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase_AUD drop constraint FKFEBA3D0834869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB34FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3AEB7F3BE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB34BAC703F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3F8991B9D [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB380924EEC [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_AUD" not found; SQL statement:
+alter table SynonymRelationship_AUD drop constraint FK8AEBCA0434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table SynonymRelationship_Annotation drop constraint FKF494F15B1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table SynonymRelationship_Annotation drop constraint FKF494F15B260A8379 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table SynonymRelationship_Annotation_AUD drop constraint FKD3E2F9AC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER" not found; SQL statement:
+alter table SynonymRelationship_Marker drop constraint FK7A439066777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER" not found; SQL statement:
+alter table SynonymRelationship_Marker drop constraint FK7A439066260A8379 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table SynonymRelationship_Marker_AUD drop constraint FK93C51B3734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49BBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B8492378F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B74FED214 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B7C7B5AED [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_AUD" not found; SQL statement:
+alter table TaxonBase_AUD drop constraint FK37041CEC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonBase_Annotation drop constraint FK41ED09731E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonBase_Annotation drop constraint FK41ED09739C9D39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonBase_Annotation_AUD drop constraint FK8C145C434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT" not found; SQL statement:
+alter table TaxonBase_Credit drop constraint FK4CB48B3D32D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT" not found; SQL statement:
+alter table TaxonBase_Credit drop constraint FK4CB48B3D9C9D39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT_AUD" not found; SQL statement:
+alter table TaxonBase_Credit_AUD drop constraint FK7CFED28E34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION" not found; SQL statement:
+alter table TaxonBase_Extension drop constraint FKF961257B927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION" not found; SQL statement:
+alter table TaxonBase_Extension drop constraint FKF961257B9C9D39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION_AUD" not found; SQL statement:
+alter table TaxonBase_Extension_AUD drop constraint FK71381DCC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER" not found; SQL statement:
+alter table TaxonBase_Marker drop constraint FK5CDB747E777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER" not found; SQL statement:
+alter table TaxonBase_Marker drop constraint FK5CDB747E9C9D39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER_AUD" not found; SQL statement:
+alter table TaxonBase_Marker_AUD drop constraint FKE11D334F34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase drop constraint FKFB680C813A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase drop constraint FKFB680C819C9D39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase_AUD drop constraint FKB7C811D234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonBase_RightsInfo drop constraint FK4CEDB569C13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonBase_RightsInfo drop constraint FK4CEDB5699C9D39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table TaxonBase_RightsInfo_AUD drop constraint FKAFF06BA34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC02BEBA58D [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC028459272 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC086C86FE0 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table TaxonInteraction_LanguageString_AUD drop constraint FK9E016B9134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C64FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6BFEAE500 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6617E62B3 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6D7BE55A0 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C62B4FEDD6 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6B14B73EF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C67F90DF03 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C662AD57A2 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_AUD drop constraint FK5CA2CB9734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonNameBase_Annotation drop constraint FK9E7794681E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonNameBase_Annotation drop constraint FK9E7794688C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonNameBase_Annotation_AUD drop constraint FKB6734E3934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT" not found; SQL statement:
+alter table TaxonNameBase_Credit drop constraint FK29BCD8B232D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT" not found; SQL statement:
+alter table TaxonNameBase_Credit drop constraint FK29BCD8B28C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT_AUD" not found; SQL statement:
+alter table TaxonNameBase_Credit_AUD drop constraint FKD9895D8334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION" not found; SQL statement:
+alter table TaxonNameBase_Extension drop constraint FKC28EE7E6927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION" not found; SQL statement:
+alter table TaxonNameBase_Extension drop constraint FKC28EE7E68C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION_AUD" not found; SQL statement:
+alter table TaxonNameBase_Extension_AUD drop constraint FK8F98B2B734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER" not found; SQL statement:
+alter table TaxonNameBase_Marker drop constraint FK39E3C1F3777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER" not found; SQL statement:
+alter table TaxonNameBase_Marker drop constraint FK39E3C1F38C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER_AUD" not found; SQL statement:
+alter table TaxonNameBase_Marker_AUD drop constraint FK3DA7BE4434869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus drop constraint FK560BA7926615E90D [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus drop constraint FK560BA7928C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS_AUD" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus_AUD drop constraint FK9215BC6334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase drop constraint FKF746D2763A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase drop constraint FKF746D2768C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase_AUD drop constraint FK7A38D54734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo drop constraint FKA978405EC13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo drop constraint FKA978405E8C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo_AUD drop constraint FKB8B10F2F34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase drop constraint FKC0D6BBB5C7DF530C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase drop constraint FKC0D6BBB58C85CF94 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase_AUD drop constraint FKBB24070634869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC84A3CE1B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC39DB2DFB [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC381381B5 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCCC05993E [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCDE9A3E39 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_AUD" not found; SQL statement:
+alter table TaxonNode_AUD drop constraint FKE090C39D34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION" not found; SQL statement:
+alter table TaxonNode_Annotation drop constraint FKD8A9A9A21E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION" not found; SQL statement:
+alter table TaxonNode_Annotation drop constraint FKD8A9A9A2927D8399 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonNode_Annotation_AUD drop constraint FKB2C4367334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER" not found; SQL statement:
+alter table TaxonNode_Marker drop constraint FK395842D777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER" not found; SQL statement:
+alter table TaxonNode_Marker drop constraint FK395842D927D8399 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER_AUD" not found; SQL statement:
+alter table TaxonNode_Marker_AUD drop constraint FK77D9D37E34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA024FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02AEB7F3BE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02E71EF6CE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02F8991B9D [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02F11BD77B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_AUD" not found; SQL statement:
+alter table TaxonRelationship_AUD drop constraint FKA0DE16D334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table TaxonRelationship_Annotation drop constraint FK82C86DAC1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table TaxonRelationship_Annotation drop constraint FK82C86DAC2BD180D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonRelationship_Annotation_AUD drop constraint FKE86DE57D34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER" not found; SQL statement:
+alter table TaxonRelationship_Marker drop constraint FK69FBDD37777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER" not found; SQL statement:
+alter table TaxonRelationship_Marker drop constraint FK69FBDD372BD180D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table TaxonRelationship_Marker_AUD drop constraint FK21F8978834869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY" not found; SQL statement:
+alter table TermVocabulary drop constraint FK487AA6924FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY" not found; SQL statement:
+alter table TermVocabulary drop constraint FK487AA692BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_AUD" not found; SQL statement:
+alter table TermVocabulary_AUD drop constraint FKA6ED3B6334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION" not found; SQL statement:
+alter table TermVocabulary_Annotation drop constraint FK76D2071C1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION" not found; SQL statement:
+alter table TermVocabulary_Annotation drop constraint FK76D2071C258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION_AUD" not found; SQL statement:
+alter table TermVocabulary_Annotation_AUD drop constraint FK222D46ED34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT" not found; SQL statement:
+alter table TermVocabulary_Credit drop constraint FK7604C56632D1B9F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT" not found; SQL statement:
+alter table TermVocabulary_Credit drop constraint FK7604C566258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT_AUD" not found; SQL statement:
+alter table TermVocabulary_Credit_AUD drop constraint FKB1E3D03734869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION" not found; SQL statement:
+alter table TermVocabulary_Extension drop constraint FKA8814EB2927DE9DF [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION" not found; SQL statement:
+alter table TermVocabulary_Extension drop constraint FKA8814EB2258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION_AUD" not found; SQL statement:
+alter table TermVocabulary_Extension_AUD drop constraint FKD522D38334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER" not found; SQL statement:
+alter table TermVocabulary_Marker drop constraint FK862BAEA7777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER" not found; SQL statement:
+alter table TermVocabulary_Marker drop constraint FK862BAEA7258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER_AUD" not found; SQL statement:
+alter table TermVocabulary_Marker_AUD drop constraint FK160230F834869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase drop constraint FK8F2D512A3A6735D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase drop constraint FK8F2D512A258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase_AUD drop constraint FKA898D9FB34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION" not found; SQL statement:
+alter table TermVocabulary_Representation drop constraint FKA408B63AB31C4747 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION" not found; SQL statement:
+alter table TermVocabulary_Representation drop constraint FKA408B63A258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION_AUD" not found; SQL statement:
+alter table TermVocabulary_Representation_AUD drop constraint FK681B370B34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO" not found; SQL statement:
+alter table TermVocabulary_RightsInfo drop constraint FK81D2B312C13F7B21 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO" not found; SQL statement:
+alter table TermVocabulary_RightsInfo drop constraint FK81D2B312258E060 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO_AUD" not found; SQL statement:
+alter table TermVocabulary_RightsInfo_AUD drop constraint FK246B07E334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE4FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEBC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEAEB7F3BE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE9E3ED08 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE4CB0F315 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEFBFA41D9 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_AUD" not found; SQL statement:
+alter table TypeDesignationBase_AUD drop constraint FK243C037F34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION" not found; SQL statement:
+alter table TypeDesignationBase_Annotation drop constraint FK4D7327801E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION" not found; SQL statement:
+alter table TypeDesignationBase_Annotation drop constraint FK4D73278044E9E6D4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table TypeDesignationBase_Annotation_AUD drop constraint FK88BF955134869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER" not found; SQL statement:
+alter table TypeDesignationBase_Marker drop constraint FKB914A10B777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER" not found; SQL statement:
+alter table TypeDesignationBase_Marker drop constraint FKB914A10B44E9E6D4 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER_AUD" not found; SQL statement:
+alter table TypeDesignationBase_Marker_AUD drop constraint FKECA3515C34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT" not found; SQL statement:
+alter table UserAccount drop constraint FKB3F13C24FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT" not found; SQL statement:
+alter table UserAccount drop constraint FKB3F13C2AAC1B820 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_AUD" not found; SQL statement:
+alter table UserAccount_AUD drop constraint FK6A57909334869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table UserAccount_GrantedAuthorityImpl drop constraint FKFD724D851857F6C2 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table UserAccount_GrantedAuthorityImpl drop constraint FKFD724D855EA5DD89 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_PERMISSIONGROUP" not found; SQL statement:
+alter table UserAccount_PermissionGroup drop constraint FK812DE753DA9DCB5F [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_PERMISSIONGROUP" not found; SQL statement:
+alter table UserAccount_PermissionGroup drop constraint FK812DE753887E3D12 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B914FF2DB2C [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B91BC5DA539 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B9123DB7F04 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_AUD" not found; SQL statement:
+alter table WorkingSet_AUD drop constraint FK628F58E234869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION" not found; SQL statement:
+alter table WorkingSet_Annotation drop constraint FKCBBA8CBD1E403E0B [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION" not found; SQL statement:
+alter table WorkingSet_Annotation drop constraint FKCBBA8CBDBBD2C869 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION_AUD" not found; SQL statement:
+alter table WorkingSet_Annotation_AUD drop constraint FK1E28140E34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE" not found; SQL statement:
+alter table WorkingSet_DescriptionBase drop constraint FK731CC81F33B8A841 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE" not found; SQL statement:
+alter table WorkingSet_DescriptionBase drop constraint FK731CC81FBBD2C869 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE_AUD" not found; SQL statement:
+alter table WorkingSet_DescriptionBase_AUD drop constraint FK8959CE7034869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER" not found; SQL statement:
+alter table WorkingSet_Marker drop constraint FK9CB22CC8777265A1 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER" not found; SQL statement:
+alter table WorkingSet_Marker drop constraint FK9CB22CC8BBD2C869 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER_AUD" not found; SQL statement:
+alter table WorkingSet_Marker_AUD drop constraint FK6AEAB69934869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION" not found; SQL statement:
+alter table WorkingSet_Representation drop constraint FKA003835BB31C4747 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION" not found; SQL statement:
+alter table WorkingSet_Representation drop constraint FKA003835BBBD2C869 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION_AUD" not found; SQL statement:
+alter table WorkingSet_Representation_AUD drop constraint FK21B88BAC34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE" not found; SQL statement:
+alter table WorkingSet_TaxonBase drop constraint FK34EB896D7C3D0017 [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE" not found; SQL statement:
+alter table WorkingSet_TaxonBase drop constraint FK34EB896DB4555A9A [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE_AUD" not found; SQL statement:
+alter table WorkingSet_TaxonBase_AUD drop constraint FK582B38BE34869AAE [42102-170]
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table AgentBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Amplification add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Annotation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table CDM_VIEW add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table CdmMetaData add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Classification add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Collection add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Credit add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DefinedTermBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DerivationEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DescriptionBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DescriptionElementBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DeterminationEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Extension add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table FeatureNode add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table FeatureTree add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table GatheringEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table GrantedAuthorityImpl add constraint _UniqueKey unique (uuid, authority) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table HomotypicalGroup add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table HybridRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table InstitutionalMembership add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table KeyStatement add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table LSIDAuthority add constraint _UniqueKey unique (uuid, authority) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table LanguageString add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Marker add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table MaterialOrMethodEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Media add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table MediaRepresentation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:56 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table MediaRepresentationPart add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table NameRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table NomenclaturalStatus add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table OriginalSourceBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PermissionGroup add constraint _UniqueKey unique (uuid, name) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PolytomousKey add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PolytomousKeyNode add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Primer add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Reference add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Representation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table RightsInfo add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Sequence add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SingleRead add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SpecimenOrObservationBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table StateData add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table StatisticalMeasurementValue add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SynonymRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonNameBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonNode add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TermVocabulary add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TypeDesignationBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table UserAccount add constraint _UniqueKey unique (uuid, username) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:14:57 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table WorkingSet add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-09 16:32:03 database: close
+java.lang.ArrayIndexOutOfBoundsException: 2048
+       at org.h2.store.Data.writeValue(Data.java:415)
+       at org.h2.index.PageDataLeaf.writeData(PageDataLeaf.java:528)
+       at org.h2.index.PageDataLeaf.moveTo(PageDataLeaf.java:568)
+       at org.h2.store.PageStore.compact(PageStore.java:724)
+       at org.h2.store.PageStore.compact(PageStore.java:538)
+       at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1316)
+       at org.h2.engine.Database.close(Database.java:1266)
+       at org.h2.engine.DatabaseCloser.run(DatabaseCloser.java:63)
diff --git a/eu.etaxonomy.taxeditor.remoting/src/test/resources/unitils.properties b/eu.etaxonomy.taxeditor.remoting/src/test/resources/unitils.properties
new file mode 100644 (file)
index 0000000..7f99896
--- /dev/null
@@ -0,0 +1,68 @@
+#\r
+# NOTE: this is the unitils.properties file for the cdmlib-persistence module\r
+# a separate unitils.properties exists for cdmlib-io and for cdmlib-services\r
+#\r
+#\r
+# the list of all properties is found in\r
+# http://unitils.org/unitils-default.properties\r
+#\r
+\r
+### Unitils Modules ###\r
+# List of modules that is loaded. Overloading this list is normally not useful, unless you want to add a custom\r
+# module. Disabling a module can be performed by setting unitils.module.<modulename>.enabled to false.\r
+# If a module's specific dependencies are not found (e.g. hibernate is not in you classpath), this module is not loaded,\r
+# even if it is in this list and the enabled property is set to true. It's therefore not strictly necessary to disable\r
+# any of these modules.\r
+#DEFAULT: unitils.modules=database,dbunit,hibernate,mock,easymock,inject,spring,jpa\r
+unitils.module.easymock.enabled=false\r
+unitils.module.mock.enabled=false\r
+\r
+\r
+### Database ###\r
+#\r
+# Name or path of the user specific properties file. This file should contain the necessary parameters to connect to the\r
+# developer's own unit test schema. It is recommended to override the name of this file in the project specific properties\r
+# file, to include the name of the project. The system will try to find this file in the classpath, the user home folder\r
+# (recommended) or the local filesystem.\r
+#\r
+unitils.configuration.localFileName=unitils-cdmlib-local.properties\r
+\r
+# H2 #\r
+#\r
+database.driverClassName=org.h2.Driver\r
+database.url=jdbc:h2:file:./h2/cdmTest;AUTO_SERVER=TRUE\r
+database.dialect=h2\r
+database.userName=sa\r
+database.password=\r
+database.schemaNames=PUBLIC\r
+org.dbunit.dataset.datatype.IDataTypeFactory.implClassName.h2=org.dbunit.ext.h2.H2DataTypeFactory\r
+org.unitils.core.dbsupport.DbSupport.implClassName.h2=eu.etaxonomy.cdm.database.H2DbSupport\r
+database.storedIndentifierCase.h2=auto\r
+database.identifierQuoteString.h2=auto\r
+\r
+\r
+#### Transaction mode ###\r
+#\r
+# If set to commit or rollback, each test is run in a transaction,\r
+# which is committed or rolled back after the test is finished.\r
+# Since we have many tests with incomplete data these tests would be\r
+# failing during commit so it is better use rollback as default\r
+# and set commit for individual test where necessary\r
+DatabaseModule.Transactional.value.default=rollback\r
+\r
+# org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager is used by default:\r
+#\r
+#   Implements transactions for unit tests, by delegating to a spring PlatformTransactionManager.\r
+#   The concrete implementation of PlatformTransactionManager that is used depends on the test class.\r
+#   If a custom PlatformTransactionManager was configured in a spring ApplicationContext, this one is used.\r
+#   If not, a suitable subclass of PlatformTransactionManager is created, depending on the configuration\r
+#   of a test. E.g. if some ORM persistence unit was configured on the test, a PlatformTransactionManager\r
+#   that can offer transactional behavior for such a persistence unit is used.\r
+#   If no such configuration is found, a DataSourceTransactionManager is used.\r
+#\r
+# org.unitils.database.transaction.UnitilsTransactionManager.implClassName=org.unitils.database.transaction.impl.SpringTransactionManager\r
+\r
+### Hibernate ###\r
+#\r
+HibernateModule.configuration.implClassName=org.hibernate.cfg.Configuration\r
+\r
index b3d3d3c4975ae83d819af47a3e0c9a8326412ab0..ca6afae0565ab77a6774286598660ec1e0f14a40 100644 (file)
@@ -64,7 +64,8 @@ Import-Package: org.eclipse.core.commands,
  org.eclipse.core.expressions,
  org.eclipse.core.runtime,
  org.eclipse.core.runtime.jobs,
- org.eclipse.core.runtime.preferences;
+ org.eclipse.core.runtime.preferences,
+ org.eclipse.equinox.internal.p2.ui.model,
  org.eclipse.jface.action,
  org.eclipse.jface.dialogs,
  org.eclipse.jface.preference,
index 5fc4322ef822ff4b992103ccad01b0b5f812b3f4..c58e631de4af53a7d9408806ea1a52ca243299ec 100644 (file)
@@ -37,7 +37,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;\r
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;\r
@@ -47,7 +47,7 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
  * @date 3 Jan 2012\r
  *\r
  */\r
-public class DefinedTermEditor extends EditorPart implements IConversationEnabled, ISelectionListener, IDirtyMarkableSelectionProvider, IPostOperationEnabled {\r
+public class DefinedTermEditor extends EditorPart implements IConversationEnabled, ISelectionListener, IDirtyMarkable, IPostOperationEnabled {\r
 \r
        public static final String ID = "eu.etaxonomy.taxeditor.editor.definedTerm";\r
 \r
@@ -202,6 +202,14 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
                viewer.update(element, null);\r
        }\r
 \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()\r
+        */\r
+       @Override\r
+       public void forceDirty() {\r
+           changed(null);\r
+       }\r
+\r
        /**\r
         * @param dirty the dirty to set\r
         */\r
index d9b72b1ac19f515c659cedf54983b4451334dfc9..043332141b11245bd21714525c6e8b070aa65639 100644 (file)
@@ -84,7 +84,11 @@ public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {
                        \r
                        DeleteResult result =   CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
                        if (result.isError()){\r
-                               //TODO: Error message!\r
+                               StringBuffer errorString = new StringBuffer();\r
+                               for (Exception e:result.getExceptions()){\r
+                                       errorString.append(e.getMessage() + "\\n");\r
+                               }\r
+                               MessageDialog.openError(null, "Delete failed", errorString.toString());\r
                        }\r
                        \r
                } else if (termBase instanceof DefinedTermBase) {\r
@@ -122,7 +126,11 @@ public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {
                        DeleteResult result =   CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase);\r
                        \r
                        if (result.isError()){\r
-                               MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());\r
+                               StringBuffer errorString = new StringBuffer();\r
+                               for (Exception e:result.getExceptions()){\r
+                                       errorString.append(e.getMessage() + "\\n");\r
+                               }\r
+                               MessageDialog.openError(null, "Delete failed", errorString.toString());\r
                        }\r
                }\r
                \r
index aa8979b1ba884fc4c69277880b2b42ec227937f6..6884ba88c5194e85fa9fb56b7c1a4f72e38a786a 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -13,27 +13,31 @@ package eu.etaxonomy.taxeditor.model;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 
 /**
- * <p>AuthorHelper class.</p>
+ * Utility class for handling of authorship related elements.
  *
  * @author n.hoffmann
  * @created Sep 8, 2010
  * @version 1.0
  */
 public class AuthorHelper {
-       
-       /**
-        * <p>getAuthor</p>
-        *
-        * @param object a {@link java.lang.Object} object.
-        * @return a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        */
-       public static Team getAuthor(Object object){
-               if(object == null){
+
+    /**
+     * If the given {@link TeamOrPersonBase} is a {@link Person} this methods
+     * creates a new {@link Team} with this person. If it already a team the
+     * team is returned.
+     * 
+     * @param teamOrPerson
+     *            a team or a person
+     * @return the given team or a newly created team with the given person
+     */
+       public static Team getAuthor(TeamOrPersonBase<?> teamOrPerson){
+               if(teamOrPerson == null){
                        return null;
                }
-               Object deproxiedObject = HibernateProxyHelper.deproxy(object);
+               Object deproxiedObject = HibernateProxyHelper.deproxy(teamOrPerson);
                if(deproxiedObject instanceof Person){
                        Person person = (Person) deproxiedObject;
                        Team team = Team.NewInstance();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkable.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkable.java
new file mode 100644 (file)
index 0000000..6543ea6
--- /dev/null
@@ -0,0 +1,35 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.model;
+
+
+/**
+ * Interface for handling the current "dirty" state of an object. An object is
+ * dirty when changes are done but not saved/persisted yet.
+ * 
+ * @author n.hoffmann
+ * @created Mar 8, 2010
+ * @version 1.0
+ */
+public interface IDirtyMarkable {
+
+       /**
+        * Sets the implementor to the "dirty" state specifying the object that was changed.
+        *
+        * @param element the element that was changed causing the "dirty" state.
+        */
+       public abstract void changed(Object element);
+
+       /**
+        * Forces the implementing class to be set to the "dirty" state.
+        */
+       public abstract void forceDirty();
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkableSelectionProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkableSelectionProvider.java
deleted file mode 100644 (file)
index 0301014..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.model;
-
-
-/**
- * <p>IDirtyMarkableSelectionProvider interface.</p>
- *
- * @author n.hoffmann
- * @created Mar 8, 2010
- * @version 1.0
- */
-public interface IDirtyMarkableSelectionProvider {
-
-       /**
-        * <p>changed</p>
-        *
-        * @param element a {@link java.lang.Object} object.
-        */
-       public abstract void changed(Object element);
-}
index 21362429332a36fa710448964c15c271b59f6b7d..08bc4d8256d1d9855a5548c9a90c87cc5d535ca5 100644 (file)
@@ -133,4 +133,9 @@ public interface IPreferenceKeys {
 
     public static final String DEFAULT_LANGUAGE_EDITOR = "eu.etaxonomy.taxeditor.default.language";
 
+    /**
+     * Key for the saved P2 repositories
+     */
+    public static final String P2_REPOSITORY_LIST = "eu.etaxonomy.taxeditor.p2.repositories";
+
 }
index a2df5b14019443544e4af0cbefa9d2bab40f0abf..484a133579ee30ddfa7fe9602f0cc232ceb9c900 100644 (file)
@@ -13,15 +13,20 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.StringTokenizer;
 import java.util.UUID;
 
 import org.apache.commons.lang.StringUtils;
+import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
@@ -69,6 +74,9 @@ public class PreferencesUtil implements IPreferenceKeys {
         */
        public static final String PREFERRED_TERMS_CHANGE = "preferred_terms";
 
+       public static final String P2_REPOSITORIES_DELIM = ",";
+       public static final String P2_REPOSITORY_FIELDS_DELIM = ";";
+
        /**
         * <p>
         * getPreferenceStore
@@ -653,4 +661,60 @@ public class PreferencesUtil implements IPreferenceKeys {
         fos.close();
     }
 
+    /**
+     * Saves a list of P2 Metadata Repositories as string with specified delimiters
+     *
+     * @param p2Repos
+     */
+    public static void setP2Repositories(List<MetadataRepositoryElement> p2Repos) {
+        StringBuilder sb = new StringBuilder();
+        for(MetadataRepositoryElement p2Repo : p2Repos) {
+            sb.append(P2_REPOSITORIES_DELIM);
+            if(p2Repo.getName() == null || p2Repo.getName().isEmpty()) {
+                sb.append("-");
+            } else {
+                sb.append(p2Repo.getName());
+            }
+            sb.append(P2_REPOSITORY_FIELDS_DELIM);
+            sb.append(p2Repo.getLocation().toString());
+            sb.append(P2_REPOSITORY_FIELDS_DELIM);
+            sb.append(String.valueOf(p2Repo.isEnabled()));
+        }
+        getPreferenceStore().setValue(P2_REPOSITORY_LIST, sb.toString());
+    }
+
+
+    /**
+     * Retrieves a list of previously saved P2 repositories
+     *
+     * @return
+     */
+    public static List<MetadataRepositoryElement> getP2Repositories() {
+        List<MetadataRepositoryElement> p2Repos = new ArrayList<MetadataRepositoryElement>();
+        String p2ReposPref =  getPreferenceStore().getString(P2_REPOSITORY_LIST);
+        if(p2ReposPref != null && !p2ReposPref.isEmpty()) {
+            StringTokenizer p2ReposPrefST = new StringTokenizer(p2ReposPref,P2_REPOSITORIES_DELIM);
+
+            while(p2ReposPrefST.hasMoreTokens()) {
+                String p2RepoStr = p2ReposPrefST.nextToken();
+                StringTokenizer p2ReposStrST = new StringTokenizer(p2RepoStr,P2_REPOSITORY_FIELDS_DELIM);
+                if(p2ReposStrST.countTokens()==3) {
+                    String nickname = p2ReposStrST.nextToken();
+                    URI uri = null;
+                    try {
+                        uri = new URI(p2ReposStrST.nextToken());
+                    } catch (URISyntaxException e) {
+                        continue;
+                    }
+                    boolean enabled = Boolean.parseBoolean(p2ReposStrST.nextToken());
+                    MetadataRepositoryElement mre = new MetadataRepositoryElement(null, uri, true);
+                    mre.setNickname(nickname);
+                    mre.setEnabled(enabled);
+                    p2Repos.add(mre);
+                }
+            }
+        }
+
+        return p2Repos;
+    }
 }
index ff2eda0bdb670382201ce8c84763203f116f38c8..030e350e343cae06dea84c9c5f4a7e7a7fffbfce 100644 (file)
@@ -29,7 +29,7 @@ import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 
@@ -46,7 +46,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 //FIXME:move warning dialogs to the table class
 public class CdmAuthorityCompositeViewer extends ContentViewer {
        
-       private IDirtyMarkableSelectionProvider dirtyMarkerEditor;      
+       private IDirtyMarkable dirtyMarkerEditor;       
        private CdmAuthorityComposite cdmAuthorityComposite;
        private Group group;
        private boolean isDirty = false;
@@ -70,7 +70,7 @@ public class CdmAuthorityCompositeViewer extends ContentViewer {
         * @param group input data object
         */
        public CdmAuthorityCompositeViewer(Composite composite,
-                       IDirtyMarkableSelectionProvider dirtyMarkerEditor, 
+                       IDirtyMarkable dirtyMarkerEditor, 
                        Group group) {
                this.dirtyMarkerEditor = dirtyMarkerEditor;
                this.group = group;
index 513d8dbc384fe5bf9233c262df01e28a2243ad72..57a93c87389dd80ed4dc8fadfe9aa0fefde90ebb 100644 (file)
@@ -15,6 +15,7 @@ import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.ui.IEditorPart;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
@@ -30,6 +31,8 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.TextHelper;
 import eu.etaxonomy.taxeditor.newWizard.AmplificationCloningWizardPage;
@@ -166,6 +169,18 @@ public class EditFromSelectionWizard extends Wizard implements
        /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
+           IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+        /*
+         * forceDirty() for cases when one or more EditFromSelectionWizards are
+         * opened cascadingly to trigger the save button. Otherwise the dirty
+         * state would not be set and the user will have no feedback that he/she
+         * actually still has ounsaved changes. This is necessary because
+         * editing in these wizards is done on clones of the CDM entities which
+         * are merged back with the original when pressing "Finish"
+         */
+        if (activeEditor instanceof IDirtyMarkable){
+               ((IDirtyMarkable) activeEditor).forceDirty();
+           }
                return true;
        }
 
index 35258c03aed6f6da3c33e87ce350d2ece1dc5d91..8f2ad3b6c523ea638f5d36994c45fca694add23e 100644 (file)
@@ -8,6 +8,7 @@ import java.util.Observable;
 import java.util.Observer;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -23,7 +24,19 @@ import org.springframework.security.core.GrantedAuthority;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.ICollectionService;
+import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
+import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.agent.Institution;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
@@ -31,9 +44,15 @@ import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.LoginManager;
@@ -158,7 +177,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
        }
 
        private void createControls(Composite parent, int style) {
-               
+
                label = formFactory.createLabel(getLayoutComposite(), labelString,
                                SWT.NULL);
 
@@ -405,7 +424,9 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
        private class EditListener extends SelectionAdapter {
 
-               private final EntitySelectionElement<T> selectionElement;
+        private static final String TRANSIENT_EDITING_WARNING_TEXT = "Warning: All changes for this element are directly reflected in the data base.\nThe \"Cancel\" button has no effect";
+        private static final String TRANSIENT_EDITING_WARNING_TITLE = "CDM element not yet saved.";
+        private final EntitySelectionElement<T> selectionElement;
 
                public EditListener(EntitySelectionElement<T> selectionElement) {
                        this.selectionElement = selectionElement;
@@ -414,11 +435,78 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                /** {@inheritDoc} */
                @Override
                public void widgetSelected(SelectionEvent e) {
+                   T originalEntity = selectionElement.getEntity();
+                   T clonedEntity = null;
+                   IService<T> service = null;
+                   if(originalEntity instanceof CdmBase){
+                       //get corresponding service
+                       if(entity instanceof Reference<?>){
+                           service = (IService<T>) CdmStore.getService(IReferenceService.class);
+                       }
+                       else if (entity instanceof Team || entity instanceof Person || entity instanceof Institution) {
+                           service = (IService<T>) CdmStore.getService(IAgentService.class);
+                       }
+                       else if (entity instanceof NonViralName) {
+                           service = (IService<T>) CdmStore.getService(INameService.class);
+                       }
+                       else if (entity instanceof SpecimenOrObservationBase) {
+                           service = (IService<T>) CdmStore.getService(IOccurrenceService.class);
+                       }
+                       else if (entity instanceof Collection) {
+                           service = (IService<T>) CdmStore.getService(ICollectionService.class);
+                       }
+                       else if (entity instanceof User) {
+                           service = (IService<T>) CdmStore.getService(IUserService.class);
+                       }
+                       else if (entity instanceof Primer) {
+                           service = (IService<T>) CdmStore.getService(IPrimerService.class);
+                       }
+                       else if (entity instanceof Amplification) {
+                           service = (IService<T>) CdmStore.getService(IAmplificationService.class);
+                       }
+                       //check if original already exists in data base. If not then do not clone and all changes will be persisted directly -> Warning to user.
+                if(service !=null && service.find(originalEntity.getUuid())==null){
+                    if(MessagingUtils.confirmDialog(TRANSIENT_EDITING_WARNING_TITLE, "["+originalEntity.getClass().getSimpleName()+"]"+originalEntity + " has to be saved before it can be edited. Save now?")){
+                        service.save(originalEntity);
+                        AbstractUtility.getActiveEditor().doSave(new NullProgressMonitor());
+                    }
+                    else{
+                        //transient CDM elements should not be edited to avoid merge conflicts
+                        // when the elements are cascaded
+                        return;
+                    }
+                }
+                else{
+                    try {
+                        //clone original
+                        clonedEntity = (T) ((CdmBase) originalEntity).clone();
+                    } catch (CloneNotSupportedException e1) {
+                        MessagingUtils.warningDialog(TRANSIENT_EDITING_WARNING_TITLE, this, TRANSIENT_EDITING_WARNING_TEXT);
+                    }
+                }
+
+                   }
+                   if(clonedEntity!=null){
+                       selectionElement.setEntity(clonedEntity);
+                   }
                        WizardDialog dialog = new WizardDialog(selectionElement.getShell(),
                                        new EditFromSelectionWizard(selectionElement));
                        if (dialog.open() == IStatus.OK) {
+                           if(service!=null && clonedEntity!=null){//check if cloning happened
+                               T editedClonedEntity = selectionElement.getEntity();
+                               editedClonedEntity.setId(originalEntity.getId());
+                               editedClonedEntity.setUuid(originalEntity.getUuid());
+
+                               //merge clone and original
+                               service.merge(editedClonedEntity);
+                               originalEntity = service.load(originalEntity.getUuid());
+
+                           }
+                           selectionElement.setEntity(originalEntity);
                                selectionElement.updateFromWizard();
                        }
+                       //be sure to reset to original in all cases
+                       selectionElement.setEntity(originalEntity);
                }
        }
 
index 9bf06374a3f5e97a0692b0aa6025b0837c300f96..e62b9e12ff1c1f60bf46e28ff00698c4878e77bb 100644 (file)
@@ -11,7 +11,7 @@ import org.eclipse.ui.IWorkbenchPart;
 
 import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 
 /**
  * <p>
@@ -135,8 +135,8 @@ public abstract class AbstractCdmEditorViewPart extends AbstractCdmViewPart {
             ((AbstractCdmViewPart) part).changed(object);
         } else {
             IEditorPart editor = getEditor();
-            if (editor != null && editor instanceof IDirtyMarkableSelectionProvider) {
-                ((IDirtyMarkableSelectionProvider) editor).changed(object);
+            if (editor != null && editor instanceof IDirtyMarkable) {
+                ((IDirtyMarkable) editor).changed(object);
             }
         }
     }
index 7c6def7f4f6fa17ecc166a504d41633fd2199d58..2fbde5c73421208ea61890ec953ca7125ecf693b 100644 (file)
@@ -29,7 +29,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
@@ -39,7 +39,7 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  * @created Jun 15, 2010
  * @version 1.0
  */
-public abstract class AbstractCdmViewPart extends ViewPart implements ISelectionListener, IPostOperationEnabled, IConversationEnabled, IDirtyMarkableSelectionProvider{
+public abstract class AbstractCdmViewPart extends ViewPart implements ISelectionListener, IPostOperationEnabled, IConversationEnabled, IDirtyMarkable{
 
        protected ISelectionService selectionService;
 
@@ -180,4 +180,12 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
                selectionService.removeSelectionListener(this);
                super.dispose();
        }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+        */
+       @Override
+       public void forceDirty() {
+           changed(null);
+       }
 }
index 382032037ded23055f935150326e2460a0503399..781bf6f0319a9a581d728fece4d76d6624df6c1c 100644 (file)
@@ -102,9 +102,6 @@ public class DerivateSearchView extends ViewPart implements IContextListener {
      */
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
-        if(getConversationHolder()!=null && getConversationHolder().isBound() && !getConversationHolder().isClosed()) {
-            getConversationHolder().close();
-        }
     }
 
     /**
index 18f4117a3923e3a7399badf0a550f5629476128a..22a6e9d99780b7e63c50271314b595314bf7eeef 100644 (file)
@@ -95,6 +95,8 @@
     </profile>
     <profile>
       <!-- Upload the repo to the server -->
+      <!-- ATTENTION : This does not work well currently since the file permissions
+           are set with read permission set to off after upload -->
       <id>uploadRepo</id>
       <build>
         <plugins>