eu.etaxonomy.taxeditor.cdmlib/lib/activation-1.1.1.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.7.7.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.7.1-sources.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.7.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.7.1-sources.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.7.1.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/avro-1.6.3.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/batik-anim-1.7.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/stax-1.2.0.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/stax-api-1.0.1.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/swagger-annotations-1.3.5.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-core-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-database-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-dbmaintainer-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-dbunit-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-easymock-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-inject-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-mock-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-orm-3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-spring-3.3.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/unitils-core-3.4.2.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/unitils-database-3.4.2.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/unitils-dbmaintainer-3.4.2.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/unitils-dbunit-3.4.2.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/unitils-spring-3.4.2.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/usertype.jodatime-2.0.1.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/usertype.spi-2.0.1.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-1.0.0.GA.jar -text
eu.etaxonomy.taxeditor.cdmlib/pom.xml -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredGenericApplicationContext.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredListableBeanFactory.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmEagerLoadingException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmRemotingException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmClientCacheException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmEntityCacheKey.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelCacher.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelFieldPropertyFromClass.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmRemoteCacheManager.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmTransientEntityCacher.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/EntityCacherDebugResult.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ProxyUtils.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/server/CDMServerException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/ICdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CachedCommonServiceImpl.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmAuthenticatedHttpInvokerRequestExecutor.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceInterceptorException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/ICachedCommonService.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/TermServiceRequestExecutor.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmClientSessionException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySession.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionEnabled.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManagerObserver.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySession.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/cdmlib-ehcache.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/.svnignore -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar -text
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/config.properties -text
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml -text
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml -text
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/resources/eu/etaxonomy/cdm/datasources/cdm.datasources.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties -text
eu.etaxonomy.taxeditor.editor/.classpath -text
eu.etaxonomy.taxeditor.editor/.project -text
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF -text
eu.etaxonomy.taxeditor.editor/plugin.xml -text
eu.etaxonomy.taxeditor.editor/pom.xml -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmDataTransfer.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/ChooseFromMultipleTaxonNodesDialog.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorCdmViewer.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDistributionEditorWizardHandler.java -text
+<<<<<<< HEAD
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenInspectSessionsHandler.java -text
+=======
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenHandler.java -text
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenPasswordWizzardHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowLoginWindowHandler.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowRemotingLoginWindowHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostOperation.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostTaxonOperation.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/IPostOperationEnabled.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/MatchStrategyConfigurator.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmStorePropertyTester.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DefaultLanguageDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/LoginDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/UriDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorComposite.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/reporting/ReportingViewPart.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/InspectSessionsDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/SessionsViewPart.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenProviderSelectionComposite.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenProviderSelectionController.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenSearchComposite.java -text
eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF -text
eu.etaxonomy.taxeditor.test/build.properties -text
eu.etaxonomy.taxeditor.test/ide/eclipse/EDITor[!!-~]Tests.launch -text
+eu.etaxonomy.taxeditor.test/lib/byte-buddy-0.5.1.jar -text
eu.etaxonomy.taxeditor.test/pom.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/cdmlib-ehcache.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/datasources.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/cdm.datasources.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/model/PolytomousKeyTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/model/TaxonNameEditorTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/model/TaxonNavigatorTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/taxeditor/remoting/session/CdmEntitySessionManagerTest.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/h2/cdmTest.h2.db -text
+eu.etaxonomy.taxeditor.test/src/main/resources/h2/cdmTest.trace.db -text
+eu.etaxonomy.taxeditor.test/src/main/resources/log4j.properties -text
eu.etaxonomy.taxeditor.test/src/main/resources/log4j.xml -text
+eu.etaxonomy.taxeditor.test/src/main/resources/unitils.properties -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/api/cache/CdmModelGetMethodCacherTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/PolytomousKeyTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/TaxonNameEditorTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/TaxonNavigatorTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/application/menu/general/NewMenuTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTestManager.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/navigation/navigator/contextmenu/ClassificationTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizardTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operations/OperationTestBase.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/ITestService.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/ServiceInterceptorTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/ServiceRebasingTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/TargetTestService.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/TestService.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/AbstractEditorTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/ContextMenuHelper.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/SwtBotUtils.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/LoginDialogTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/AbstractSelectionElementTest.java -text
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElementTest.java -text
/.project
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/*
eu.etaxonomy.taxeditor.application/.settings
eu.etaxonomy.taxeditor.application/target
eu.etaxonomy.taxeditor.bulkeditor/.settings
eu.etaxonomy.taxeditor.cdmlib/cdmlib-*.jar
eu.etaxonomy.taxeditor.cdmlib/cdmlib-*.zip
eu.etaxonomy.taxeditor.cdmlib/dist
+eu.etaxonomy.taxeditor.cdmlib/lib/cdm-server*
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib*
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.servletbridge.extensionbundle-1.2.0.v20100503.jar
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.transforms.hook-1.0.300.v20100719.jar
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/test/java/"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
name="eu.etaxonomy.taxeditor.application.filemenu.io"\r
visible="true">\r
</separator>\r
+ <command\r
+ commandId="eu.etaxonomy.taxeditor.store.operations.showRemotingLoginWindow"\r
+ id="eu.etaxonomy.taxeditor.application.menu.login"\r
+ label="Connect"\r
+ style="push">\r
+ </command>\r
<command\r
commandId="org.eclipse.ui.file.exit"\r
id="eu.etaxonomy.taxeditor.application.menu.exit"\r
id="eu.etaxonomy.taxeditor.install"\r
name="%command.label.18">\r
</command>\r
+ <command\r
+ defaultHandler="eu.etaxonomy.taxeditor.handler.ShowRemotingLoginWindowHandler"\r
+ id="eu.etaxonomy.taxeditor.store.operations.showRemotingLoginWindow"\r
+ name="Connect">\r
+ </command>\r
</extension>\r
\r
\r
/**
* Prefix to declare the version as beta
*/
- private static final String BETA_PREFIX = "[Beta]";
+ private static final String BETA_PREFIX = "[REMOTING]";
/**
* @return
// $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.
*/
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
-
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.INullSelectionListener;
-import org.eclipse.ui.ISelectionListener;
-
import org.eclipse.ui.IWorkbenchPart;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.api.service.ICommonService;
import eu.etaxonomy.cdm.api.service.IGroupService;
-
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.ITaxonService;
import eu.etaxonomy.cdm.api.service.IUserService;
-
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Group;
-
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.model.DescriptionHelper;
import eu.etaxonomy.taxeditor.model.LineSelection;
/** Constant <code>ID="eu.etaxonomy.taxeditor.bulkeditor.refer"{trunked}</code> */
public static final String ID = "eu.etaxonomy.taxeditor.bulkeditor.view.referencingobjects";
-
+
private TableViewer viewer;
private String referencedObjectTitleCache;
- private ConversationHolder conversation;
-
+ private ConversationHolder conversation;
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
*/
viewer.setLabelProvider(new ReferencingObjectsLabelProvider());
// viewer.setInput(new ArrayList<CdmBase>());
}
-
+
/**
* Create the columns for the table
* @param viewer
* @param entity a {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity} object.
*/
public void updateReferencingObjects(final UUID entityUUID, final Class objectClass) {
-
+
final Display display = Display.getCurrent();
-
+
Job job = new Job("Update Referencing Objects") {
-
+
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Calculating referencing objects", 10);
-
+
monitor.worked(3);
-
+
display.asyncExec(new Runnable() {
-
+
@Override
public void run() {
if (entityUUID != null){
-
+
List<CdmBase> referencingObjects = getReferencingObjects(entityUUID, objectClass);
-
+
updateView(referencingObjects);
-
+
}
}
});
-
+
monitor.done();
-
-
+
+
return Status.OK_STATUS;
}
};
-
+
job.setPriority(Job.DECORATE);
job.schedule();
}
}
//referencedObject =(CdmBase) CdmStore.getService(IIdentifiableEntityService.class).load(referencedObject.getUuid());
Set<CdmBase> setOfReferencingObjects = null;
-
+
if (referencedObject != null){
referencedObjectTitleCache = ((IdentifiableEntity)referencedObject).getTitleCache();
setOfReferencingObjects = CdmStore.getCommonService().getReferencingObjects(referencedObject);
}
if (setOfReferencingObjects != null){
- List<CdmBase> referencingObjects = new ArrayList<CdmBase>(setOfReferencingObjects);
-
+ List<CdmBase> referencingObjects = new ArrayList<CdmBase>(setOfReferencingObjects);
+
Collections.sort(referencingObjects, new ReferencingClassComparator());
-
+
return referencingObjects;
-
+
}
} catch (Exception e) {
logger.error("Error retrieving referencing objects", e);
}
return null;
}
-
+
class ReferencingClassComparator implements Comparator<CdmBase> {
/* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare(CdmBase o1, CdmBase o2) {
+ @Override
+ public int compare(CdmBase o1, CdmBase o2) {
String string1 = o1.getClass().getSimpleName();
String string2 = o2.getClass().getSimpleName();
int classCompare = string1.compareToIgnoreCase(string2);
}
}
}
-
+
/**
- *
+ *
*/
private void updateView(List<CdmBase> referencingObjects) {
if (viewer != null && !viewer.getControl().isDisposed()){
}catch(Exception e){
setContentDescription("Some Problems occured.");
}
-
+
}
}
/** {@inheritDoc} */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+ @Override
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
if(! (part instanceof BulkEditor)){
setContentDescription("");
showEmptyPage();
return;
}
-
+
if(! (selection instanceof LineSelection)){
return;
}
LineSelection lineSelection = (LineSelection) selection;
-
+
if(lineSelection.size() != 1){
return;
}
-
+
if(! (lineSelection.getFirstElement() instanceof IdentifiableEntity)){
return;
}
-
+
showViewer(part, lineSelection);
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#showViewer(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
*/
@Override
public void showViewer(IWorkbenchPart part, IStructuredSelection selection) {
// this.part = part;
-
+
updateReferencingObjects(((IdentifiableEntity) selection.getFirstElement()).getUuid(),selection.getFirstElement().getClass() );
}
-
+
/** {@inheritDoc} */
@Override
public void dispose() {
selectionService.removePostSelectionListener(this);
selectionService.removeSelectionListener(this);
super.dispose();
-
+
}
/* (non-Javadoc)
public void changed(Object object) {
// no editing in this view
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#onComplete()
*/
public boolean onComplete() {
return false;
}
-
+
public void refresh(){
-
+
selectionService.removePostSelectionListener(this);
selectionService.removeSelectionListener(this);
selectionService.addPostSelectionListener(this);
selectionService.addSelectionListener(this);
-
+
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
}
<classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.6.3-SNAPSHOT.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 kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" path="src/test/java/"/>
+ <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
<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/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/xmlbeans-2.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.10-FINAL.jar"/>
<classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.3.5.jar"/>
- <classpathentry kind="output" path="bin"/>
+ <classpathentry kind="output" path="target/classes"/>
</classpath>
-bin
\ No newline at end of file
+bin
Export-Package: com.google.api,
com.google.api.detect,
com.google.api.translate,
+ eu.etaxonomy.cdm,
eu.etaxonomy.cdm.api.application,
+ eu.etaxonomy.cdm.api.cache,
eu.etaxonomy.cdm.api.conversation,
eu.etaxonomy.cdm.api.facade,
- eu.etaxonomy.cdm.api.lazyloading,
eu.etaxonomy.cdm.api.service,
eu.etaxonomy.cdm.api.service.config,
eu.etaxonomy.cdm.api.service.description,
eu.etaxonomy.cdm.persistence.dao.hibernate.occurrence,
eu.etaxonomy.cdm.persistence.dao.hibernate.reference,
eu.etaxonomy.cdm.persistence.dao.hibernate.taxon,
- eu.etaxonomy.cdm.persistence.dao.hibernate.validation,
eu.etaxonomy.cdm.persistence.dao.hibernate.view,
eu.etaxonomy.cdm.persistence.dao.media,
eu.etaxonomy.cdm.persistence.dao.name,
eu.etaxonomy.cdm.print.out.pdf,
eu.etaxonomy.cdm.print.out.taxpub,
eu.etaxonomy.cdm.print.out.xml,
- eu.etaxonomy.cdm.remote,
eu.etaxonomy.cdm.remote.config,
eu.etaxonomy.cdm.remote.controller,
eu.etaxonomy.cdm.remote.controller.dto,
eu.etaxonomy.cdm.validation.annotation,
eu.etaxonomy.cdm.validation.constraint,
eu.etaxonomy.remote.dto.rdf,
+ eu.etaxonomy.taxeditor.remoting,
+ eu.etaxonomy.taxeditor.remoting.cache,
+ eu.etaxonomy.taxeditor.remoting.server,
+ eu.etaxonomy.taxeditor.remoting.source,
+ eu.etaxonomy.taxeditor.service,
+ eu.etaxonomy.taxeditor.session,
+ eu.etaxonomy.taxeditor.session.mock,
+ javassist.util.proxy,
javax.persistence,
junit.framework;uses:="org.junit.runner.manipulation,org.junit.runner,org.junit.runner.notification",
+ net.sf.ehcache,
+ net.sf.ehcache.config,
+ net.sf.ehcache.statistics,
+ net.sf.ehcache.store,
net.sf.json;uses:="net.sf.json.processors,net.sf.json.util,org.apache.commons.lang.exception",
+ org.aopalliance.aop,
org.apache.commons.collections;uses:="org.apache.commons.collections.keyvalue,new org.apache.commons.collections",
+ org.apache.commons.collections.buffer,
+ org.apache.commons.dbcp,
org.apache.commons.io;uses:="org.apache.commons.io.filefilter",
org.apache.commons.lang;uses:="org.apache.commons.lang.exception",
org.apache.commons.lang.exception,
+ org.apache.commons.lang.text,
+ org.apache.commons.logging,
org.apache.fop.apps,
org.apache.http,
org.apache.http.client,
+ org.apache.http.util,
org.apache.log4j;uses:="org.apache.log4j.helpers,org.apache.log4j.or,org.apache.log4j.spi",
org.apache.log4j.chainsaw;
uses:="org.apache.log4j,
org.hibernate,
org.hibernate.annotations.common.reflection,
org.hibernate.cache.internal,
+ org.hibernate.cfg,
org.hibernate.classic,
org.hibernate.collection.internal,
+ org.hibernate.collection.spi,
org.hibernate.criterion,
+ org.hibernate.engine.internal,
+ org.hibernate.engine.spi,
+ org.hibernate.engine.transaction.spi,
org.hibernate.envers.query.criteria,
+ org.hibernate.internal,
+ org.hibernate.internal.util,
+ org.hibernate.internal.util.collections,
+ org.hibernate.mapping,
+ org.hibernate.persister.collection,
+ org.hibernate.persister.entity,
+ org.hibernate.pretty,
+ org.hibernate.property,
org.hibernate.proxy,
+ org.hibernate.proxy.pojo.javassist,
org.hibernate.search,
org.hibernate.search.spatial.impl,
+ org.hibernate.type,
org.jadira.usertype.dateandtime.joda,
org.jadira.usertype.dateandtime.shared.spi,
org.jboss.logging,
org.odftoolkit.odfdom.dom.element,
org.odftoolkit.odfdom.dom.element.style,
org.odftoolkit.odfdom.dom.style,
+ org.slf4j,
+ org.springframework.aop,
+ org.springframework.aop.framework,
+ org.springframework.beans,
org.springframework.beans.factory,
org.springframework.beans.factory.annotation;
uses:="org.apache.commons.logging,
org.springframework.beans.factory.wiring,
org.springframework.core.type,
org.springframework.beans.factory",
+ org.springframework.beans.factory.config,
+ org.springframework.beans.factory.support,
+ org.springframework.beans.factory.xml,
org.springframework.cache.ehcache,
org.springframework.context;
uses:="org.springframework.core.io,
org.springframework.core.io.support,
org.springframework.beans.factory.config,
org.springframework.beans.factory",
+ org.springframework.context.config,
org.springframework.context.event;
uses:="org.springframework.core,
org.aopalliance.intercept,
org.springframework.context,
org.springframework.beans.factory",
+ org.springframework.context.support,
org.springframework.core;uses:="org.springframework.util",
+ org.springframework.core.env,
org.springframework.core.io;uses:="org.jboss.virtual",
+ org.springframework.core.io.support,
org.springframework.core.type.classreading,
+ org.springframework.jdbc.datasource,
org.springframework.orm.hibernate3;
uses:="org.apache.commons.logging,
org.aopalliance.intercept,
org.springframework.dao,
org.springframework.transaction.support",
org.springframework.orm.hibernate4,
+ org.springframework.remoting,
+ org.springframework.remoting.httpinvoker,
+ org.springframework.remoting.support,
org.springframework.security.access,
org.springframework.security.authentication,
+ org.springframework.security.authentication.dao,
+ org.springframework.security.authentication.encoding,
org.springframework.security.authentication.event,
+ org.springframework.security.config,
org.springframework.security.core,
org.springframework.security.core.context,
org.springframework.security.core.userdetails,
org.springframework.transaction,
org.apache.commons.logging,
org.springframework.beans.factory",
+ org.springframework.util,
org.springframework.web.servlet;
uses:="org.springframework.web.multipart,
org.apache.commons.logging,
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.osgi,
- org.eclipse.equinox.common
+ org.eclipse.equinox.common,
+ org.apache.commons.httpclient;bundle-version="3.1.0"
Bundle-ClassPath: .,
lib/activation-1.1.1.jar,
lib/antlr-2.7.7.jar,
lib/spring-security-core-3.1.3.RELEASE.jar,
lib/stax-1.2.0.jar,
lib/stax-api-1.0.1.jar,
- lib/unitils-core-3.3.jar,
- lib/unitils-database-3.3.jar,
- lib/unitils-dbmaintainer-3.3.jar,
- lib/unitils-dbunit-3.3.jar,
- lib/unitils-easymock-3.3.jar,
- lib/unitils-inject-3.3.jar,
- lib/unitils-mock-3.3.jar,
- lib/unitils-orm-3.3.jar,
- lib/unitils-spring-3.3.jar,
lib/usertype.jodatime-2.0.1.jar,
lib/usertype.spi-2.0.1.jar,
lib/validation-api-1.0.0.GA.jar,
lib/spring-security-core-3.1.3.RELEASE.jar,\\r
lib/stax-1.2.0.jar,\\r
lib/stax-api-1.0.1.jar,\\r
- lib/unitils-core-3.3.jar,\\r
- lib/unitils-database-3.3.jar,\\r
- lib/unitils-dbmaintainer-3.3.jar,\\r
- lib/unitils-dbunit-3.3.jar,\\r
- lib/unitils-easymock-3.3.jar,\\r
- lib/unitils-inject-3.3.jar,\\r
- lib/unitils-mock-3.3.jar,\\r
- lib/unitils-orm-3.3.jar,\\r
- lib/unitils-spring-3.3.jar,\\r
lib/usertype.jodatime-2.0.1.jar,\\r
lib/usertype.spi-2.0.1.jar,\\r
lib/validation-api-1.0.0.GA.jar,\\r
jars.compile.order = .\r
output.. = bin/\r
source.. = src/main/java/,\\r
- src/main/resources/,\\r
- src/test/java/\r
+ src/main/resources/\r
src.includes = src/\r
\r
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>taxeditor-parent</artifactId>
- <version>3.6.1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>
- <packaging>eclipse-plugin</packaging>
- <name>CDM Library Dependencies Plugin</name>
- <description>CDM Library and dependencies as a plugin</description>
- <build>
- <plugins>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project>\r
+\r
+ <parent>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>taxeditor-parent</artifactId>\r
+ <version>3.6.1-SNAPSHOT</version>\r
+ </parent>\r
+ <modelVersion>4.0.0</modelVersion>\r
+ <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
+ <packaging>eclipse-plugin</packaging>\r
+ <name>CDM Library Bundle</name>\r
+ <description>Cdm Library Plugin Taxonomic Editor</description>\r
+\r
+ <build>\r
+ <pluginManagement>\r
+ <plugins>\r
+ <plugin>\r
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-surefire-plugin</artifactId>\r
+ <version>2.7</version>\r
+ </plugin>\r
+ </plugins>\r
+ </pluginManagement>\r
+ <plugins>\r
<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>
- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds>
- <outputDirectory>lib</outputDirectory>
- <overWriteReleases>true</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <excludeTransitive>true</excludeTransitive>
- </configuration>
- </execution>
- <execution>
- <id>copy-dependencies-sources</id>
- <phase>validate</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <classifier>sources</classifier>
- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds>
- <outputDirectory>lib</outputDirectory>
- <overWriteReleases>true</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <excludeTransitive>true</excludeTransitive>
- <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <id>remove-existing-jars</id>
- <phase>clean</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target>
- <echo>Remove all cdmlib jars</echo>
- <delete>
- <fileset dir="./lib" includes="cdmlib-*" />
- </delete>
- </target>
- </configuration>
- </execution>
- <execution>
- <id>update-snapshot-jar-names</id>
- <phase>validate</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target>
- <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>
- <dependencies>
- <dependency>
- <groupId>identificationKeyAPI</groupId>
- <artifactId>identificationKeyAPI</artifactId>
- <version>1.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-commons</artifactId>
- <version>${cdmlib.version}</version>
- </dependency>
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-model</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-remote</artifactId>
- <version>${cdmlib.version}</version>
- </dependency>
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-print</artifactId>
- <version>${cdmlib.version}</version>
- </dependency>
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-services</artifactId>
- <version>${cdmlib.version}</version>
- </dependency>
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-io</artifactId>
- <version>${cdmlib.version}</version>
- </dependency>
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-ext</artifactId>
- <version>${cdmlib.version}</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjweaver</artifactId>
- <version>1.7.1</version>
- </dependency>
-
- <!-- for ikey-plus
- TODO this should not be needed but the utils class contained in this jar
- seems to be loaded as bean by spring
- -->
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-dependency-plugin</artifactId>\r
+ <version>2.4</version>\r
+ <executions>\r
+ <execution>\r
+ <id>copy-dependencies</id>\r
+ <phase>validate</phase>\r
+ <goals>\r
+ <goal>copy-dependencies</goal>\r
+ </goals>\r
+ <configuration>\r
+ <excludeArtifactIds>\r
+ cdmlib-remote-webapp\r
+ </excludeArtifactIds>\r
+ <includeArtifactIds>\r
+ cdmlib-services,cdmlib-commons,cdmlib-persistence,cdmlib-ext,cdmlib-model,cdmlib-io,cdmlib-print,cdmlib-remote\r
+ </includeArtifactIds>\r
+ <outputDirectory>${basedir}/lib</outputDirectory>\r
+ <overWriteReleases>true</overWriteReleases>\r
+ <overWriteSnapshots>true</overWriteSnapshots>\r
+ <excludeTransitive>true</excludeTransitive>\r
+ </configuration>\r
+ </execution>\r
+ <execution>\r
+ <id>copy-dependency-war</id>\r
+ <phase>validate</phase>\r
+ <goals>\r
+ <goal>copy-dependencies</goal>\r
+ </goals>\r
+ <configuration>\r
+ <includeArtifactIds>\r
+ cdmlib-remote-webapp\r
+ </includeArtifactIds>\r
+ <outputDirectory>\r
+ ${basedir}/src/main/resources/etc/jetty\r
+ </outputDirectory>\r
+ <overWriteReleases>true</overWriteReleases>\r
+ <overWriteSnapshots>true</overWriteSnapshots>\r
+ <excludeTransitive>true</excludeTransitive>\r
+ </configuration>\r
+ </execution>\r
+ </executions>
+ </plugin>\r
+ <plugin>\r
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-antrun-plugin</artifactId>\r
+ <version>1.7</version>\r
+ <executions>\r
+ <execution>\r
+ <id>update-snapshot-jar-names</id>\r
+ <phase>validate</phase>\r
+ <goals>\r
+ <goal>run</goal>\r
+ </goals>\r
+ <configuration>\r
+ <target>\r
+ <echo>Anonymizing war</echo>\r
+ <move todir="./src/main/resources/etc/jetty">\r
+ <fileset dir="./src/main/resources/etc/jetty" />\r
+ <mapper type="regexp"\r
+ from="(^cdmlib\-.*)\-[0-9]\.[0-9]\.[0-9]\-SNAPSHOT(\.war)"\r
+ to="\1\2" />\r
+ </move>\r
+ <move todir="./src/main/resources/etc/jetty">\r
+ <fileset dir="./src/main/resources/etc/jetty" />\r
+ <mapper type="regexp"\r
+ from="(^cdmlib\-.*)\-[0-9]\.[0-9]\.[0-9]\-[0-9.-]+(\.war)"\r
+ to="\1\2" />\r
+ </move>\r
+ <echo>Update cdmlib jars to SNAPSHOT when build with\r
+ timestamp\r
+ </echo>\r
+ <move todir="./lib">\r
+ <fileset dir="./lib" />\r
+ <mapper type="regexp"\r
+ from="(^cdmlib\-.*\-[0-9]\.[0-9]\.[0-9]\-)[0-9.-]+(\.jar)"\r
+ to="\1SNAPSHOT\2" />\r
+ </move>\r
+ <move todir="./lib">\r
+ <fileset dir="./lib" />\r
+ <mapper type="regexp"\r
+ from="(^cdmlib\-.*\-[0-9]\.[0-9]\.[0-9]\-)[0-9.-]+(\-sources\.jar)"\r
+ to="\1SNAPSHOT\2" /> \r
+ </move>\r
+ </target>\r
+ </configuration>\r
+ </execution>\r
+ </executions>\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
+ <profiles>\r
+ <profile>\r
+ <id>cleanCdmlibJars</id>\r
+ <build>\r
+ <plugins>\r
+ <plugin>\r
+ <artifactId>maven-clean-plugin</artifactId>\r
+ <version>2.3</version>\r
+ <configuration>\r
+ <filesets>\r
+ <fileset>\r
+ <directory>${basedir}/lib</directory>\r
+ <includes>\r
+ <include>cdmlib-*</include>\r
+ </includes>\r
+ <followSymlinks>false</followSymlinks>\r
+ </fileset>\r
+ </filesets>\r
+ </configuration>\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
+ </profile>\r
+ <profile>\r
+ <id>cleanAllJars</id>\r
+ <build>\r
+ <plugins>\r
+ <plugin>\r
+ <artifactId>maven-clean-plugin</artifactId>\r
+ <version>2.3</version>\r
+ <configuration>\r
+ <filesets>\r
+ <fileset>\r
+ <directory>${basedir}/lib</directory>\r
+ <includes>\r
+ <include>*</include>\r
+ </includes>\r
+ <followSymlinks>false</followSymlinks>\r
+ </fileset>\r
+ </filesets>\r
+ </configuration>\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
+ </profile>\r
+ <profile>\r
+ <id>copyAllJars</id>\r
+ <build>\r
+ <plugins>\r
+ <plugin>\r
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-dependency-plugin</artifactId>\r
+ <version>2.4</version>\r
+ <executions>\r
+ <execution>\r
+ <id>copy-all-dependencies</id>\r
+ <phase>validate</phase>\r
+ <goals>\r
+ <goal>copy-dependencies</goal>\r
+ </goals>\r
+ <configuration>\r
+ <excludeArtifactIds>\r
+ cdmlib-remote-webapp\r
+ </excludeArtifactIds>\r
+ <outputDirectory>${basedir}/lib</outputDirectory>\r
+ <overWriteReleases>true</overWriteReleases>\r
+ <overWriteSnapshots>true</overWriteSnapshots>\r
+ <excludeTransitive>true</excludeTransitive>\r
+ </configuration>\r
+ </execution>\r
+ </executions>\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
+ </profile>\r
+ </profiles>\r
+ <repositories>\r
+ <repository>\r
+ <id>SpringSource Enterprise Bundle Repository - External Bundle\r
+ Milestones\r
+ </id>\r
+ <url>http://repository.springsource.com/maven/bundles/milestone\r
+ </url>\r
+ </repository>\r
+ <repository>\r
+ <id>SpringSource Enterprise Bundle Repository - SpringSource\r
+ Bundle\r
+ Releases\r
+ </id>\r
+ <url>http://repository.springsource.com/maven/bundles/release\r
+ </url>\r
+ </repository>\r
+ <repository>\r
+ <id>SpringSource Enterprise Bundle Repository - External Bundle\r
+ Releases\r
+ </id>\r
+ <url>http://repository.springsource.com/maven/bundles/external\r
+ </url>\r
+ </repository>\r
+ </repositories>\r
+ <dependencies>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-remote-webapp</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ <type>war</type>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-commons</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-model</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-persistence</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-remote</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-print</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-services</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-io</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-ext</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
+\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-server</artifactId> -->\r
+ <!-- <version>9.1.3.v20140225</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-util</artifactId> -->\r
+ <!-- <version>9.1.3.v20140225</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-xml</artifactId> -->\r
+ <!-- <version>9.1.3.v20140225</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-servlet</artifactId> -->\r
+ <!-- <version>9.1.3.v20140225</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-webapp</artifactId> -->\r
+ <!-- <version>9.1.3.v20140225</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-security</artifactId> -->\r
+ <!-- <version>9.1.3.v20140225</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-http</artifactId> -->\r
+ <!-- <version>${jetty.version}</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>org.eclipse.jetty</groupId> -->\r
+ <!-- <artifactId>jetty-io</artifactId> -->\r
+ <!-- <version>${jetty.version}</version> -->\r
+ <!-- </dependency> -->\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>javax.servlet</groupId> -->\r
+ <!-- <artifactId>javax.servlet-api</artifactId> -->\r
+ <!-- <version>3.1.0</version> -->\r
+ <!-- </dependency> -->\r
+\r
+ <!-- <dependency> -->\r
+ <!-- <groupId>javax.servlet</groupId> -->\r
+ <!-- <artifactId>jsp-api</artifactId> -->\r
+ <!-- <version>2.0</version> -->\r
+ <!-- </dependency> -->\r
+\r
+ <dependency>\r
+ <groupId>net.sf.ehcache</groupId>\r
+ <artifactId>ehcache-core</artifactId>\r
+ <version>2.4.3</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate</groupId>\r
+ <artifactId>hibernate-core</artifactId>\r
+ <version>4.1.10.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate.common</groupId>\r
+ <artifactId>hibernate-commons-annotations</artifactId>\r
+ <version>4.0.1.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate</groupId>\r
+ <artifactId>hibernate-search-engine</artifactId>\r
+ <version>4.2.0.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate.javax.persistence</groupId>\r
+ <artifactId>hibernate-jpa-2.0-api</artifactId>\r
+ <version>1.0.1.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate</groupId>\r
+ <artifactId>hibernate-envers</artifactId>\r
+ <version>4.1.10.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate</groupId>\r
+ <artifactId>hibernate-entitymanager</artifactId>\r
+ <version>4.1.10.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>dom4j</groupId>\r
+ <artifactId>dom4j</artifactId>\r
+ <version>1.6</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.jadira.usertype</groupId>\r
+ <artifactId>usertype.jodatime</artifactId>\r
+ <version>2.0.1</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.jadira.usertype</groupId>\r
+ <artifactId>usertype.spi</artifactId>\r
+ <version>2.0.1</version>\r
+ </dependency>\r
+\r
+ <dependency>\r
+ <groupId>junit</groupId>\r
+ <artifactId>junit</artifactId>\r
+ <version>4.11</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>log4j</groupId>\r
+ <artifactId>log4j</artifactId>\r
+ <version>1.2.17</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.jdom</groupId>\r
+ <artifactId>jdom</artifactId>\r
+ <version>1.1.3</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.context</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.context.support</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.aspects</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.test</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.beans</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.transaction</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.web</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.core</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.aop</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.expression</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.orm</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework</groupId>\r
+ <artifactId>org.springframework.jdbc</artifactId>\r
+ <version>3.2.2.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.security</groupId>\r
+ <artifactId>spring-security-core</artifactId>\r
+ <version>3.1.3.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.security</groupId>\r
+ <artifactId>spring-security-config</artifactId>\r
+ <version>3.1.3.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.security</groupId>\r
+ <artifactId>spring-security-remoting</artifactId>\r
+ <version>3.1.3.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.jboss.logging</groupId>\r
+ <artifactId>jboss-logging</artifactId>\r
+ <version>3.1.3.GA</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hamcrest</groupId>\r
+ <artifactId>hamcrest-core</artifactId>\r
+ <version>1.3</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.mchange</groupId>\r
+ <artifactId>c3p0</artifactId>\r
+ <version>0.9.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.jboss.spec.javax.transaction</groupId>\r
+ <artifactId>jboss-transaction-api_1.1_spec</artifactId>\r
+ <version>1.0.0.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.aspectj</groupId>\r
+ <artifactId>aspectjrt</artifactId>\r
+ <version>1.7.1</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-logging</groupId>\r
+ <artifactId>commons-logging</artifactId>\r
+ <version>1.1.1</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-lang</groupId>\r
+ <artifactId>commons-lang</artifactId>\r
+ <version>2.6</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>aopalliance</groupId>\r
+ <artifactId>aopalliance</artifactId>\r
+ <version>1.0</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>joda-time</groupId>\r
+ <artifactId>joda-time</artifactId>\r
+ <version>2.1</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.ibm.lsid</groupId>\r
+ <artifactId>lsid-client</artifactId>\r
+ <version>1.1.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.ibm.lsid</groupId>\r
+ <artifactId>lsid-server</artifactId>\r
+ <version>1.1.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-core</artifactId>\r
+ <version>3.6.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.slf4j</groupId>\r
+ <artifactId>slf4j-api</artifactId>\r
+ <version>1.7.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.javassist</groupId>\r
+ <artifactId>javassist</artifactId>\r
+ <version>3.17.1-GA</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>au.com.bytecode</groupId>\r
+ <artifactId>opencsv</artifactId>\r
+ <version>2.4</version>\r
+ </dependency>\r
+\r
+ <!-- For Unit Tests Start -->\r
+\r
+ <dependency>\r
+ <groupId>org.unitils</groupId>\r
+ <artifactId>unitils-core</artifactId>\r
+ <version>3.4.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.unitils</groupId>\r
+ <artifactId>unitils-spring</artifactId>\r
+ <version>3.4.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.unitils</groupId>\r
+ <artifactId>unitils-database</artifactId>\r
+ <version>3.4.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-dbcp</groupId>\r
+ <artifactId>commons-dbcp</artifactId>\r
+ <version>1.4</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-pool</groupId>\r
+ <artifactId>commons-pool</artifactId>\r
+ <version>1.5.4</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.unitils</groupId>\r
+ <artifactId>unitils-dbmaintainer</artifactId>\r
+ <version>3.4.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.h2database</groupId>\r
+ <artifactId>h2</artifactId>\r
+ <version>1.4.181</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.unitils</groupId>\r
+ <artifactId>unitils-dbunit</artifactId>\r
+ <version>3.4.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.dbunit</groupId>\r
+ <artifactId>dbunit</artifactId>\r
+ <version>2.4.9</version>\r
+ </dependency>\r
+ <!-- For Unit Tests End -->\r
+\r
+ <!-- For Hibernate Mapping Start -->\r
+ <dependency>\r
+ <groupId>wsdl4j</groupId>\r
+ <artifactId>wsdl4j</artifactId>\r
+ <version>1.6.3</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>javax.validation</groupId>\r
+ <artifactId>validation-api</artifactId>\r
+ <version>1.1.0.Final</version>\r
+ </dependency>\r
+ <!-- For Hibernate Mapping End -->\r
</dependencies>
</project>
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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;
+
+/**
+ * @author cmathew
+ * @date 18 Jun 2015
+ *
+ */
+public class CdmApplicationException extends Exception {
+
+ public CdmApplicationException(Exception ex) {
+ super(ex);
+ }
+
+}
/**\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
+ * 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.beans.BeansException;\r
+import org.springframework.context.ApplicationContext;\r
+import org.springframework.context.ApplicationContextAware;\r
+import org.springframework.security.authentication.ProviderManager;\r
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;\r
+import org.springframework.security.core.Authentication;\r
+import org.springframework.security.core.context.SecurityContext;\r
+import org.springframework.security.core.context.SecurityContextHolder;\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.IAgentService;\r
+import eu.etaxonomy.cdm.api.service.IClassificationService;\r
+import eu.etaxonomy.cdm.api.service.ICollectionService;\r
+import eu.etaxonomy.cdm.api.service.ICommonService;\r
import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
+import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
+import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
+import eu.etaxonomy.cdm.api.service.IEntityValidationService;\r
+import eu.etaxonomy.cdm.api.service.IFeatureNodeService;\r
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;\r
+import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;\r
+import eu.etaxonomy.cdm.api.service.IGroupService;\r
+import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;\r
+import eu.etaxonomy.cdm.api.service.ILocationService;\r
+import eu.etaxonomy.cdm.api.service.IMediaService;\r
+import eu.etaxonomy.cdm.api.service.INameService;\r
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;\r
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
+import eu.etaxonomy.cdm.api.service.IReferenceService;\r
+import eu.etaxonomy.cdm.api.service.IService;\r
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
+import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.api.service.IUserService;\r
+import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.api.service.IWorkingSetService;\r
+import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
+import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
+import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
import eu.etaxonomy.cdm.ext.geo.IEditGeoService;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;\r
+import eu.etaxonomy.taxeditor.service.ICachedCommonService;\r
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;\r
\r
\r
/**\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
+public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfiguration, ApplicationContextAware {\r
+\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(CdmApplicationRemoteConfiguration.class);\r
+\r
+ protected ApplicationContext applicationContext;\r
+\r
+\r
+ public CdmApplicationRemoteConfiguration() {}\r
+\r
+ // ****************************** APPLICATION CONTEXT *************************************************/\r
+\r
+ @Override\r
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException{\r
+ this.applicationContext = applicationContext;\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
+ 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
+ /**\r
+ * @return\r
+ */\r
+ public IEditGeoService getEditGeoService() {\r
+ return (IEditGeoService)getBean("editGeoService");\r
+ }\r
+\r
+ /**\r
+ * @return\r
*/\r
+ public ICachedCommonService getCachedCommonService(){\r
+ return (ICachedCommonService) getBean("cachedCommonService");\r
+ }\r
+\r
+\r
+ public ICdmEntitySessionManager getCdmEntitySessionManager() {\r
+ return (ICdmEntitySessionManager) getBean("cdmEntitySessionManager");\r
+ }\r
+\r
+\r
+\r
+\r
+\r
+\r
+ // ****************************** GETTER *************************************************/\r
+\r
@Override\r
- public TransactionStatus startTransaction() throws UnsupportedOperationException {\r
- throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
- }\r
+ public final Object getBean(String name){\r
+ return this.applicationContext.getBean(name);\r
+ }\r
+\r
+ @Override\r
+ public IAgentService getAgentService(){\r
+ return (IAgentService) getBean("agentService");\r
+ }\r
+\r
+ @Override\r
+ public IDatabaseService getDatabaseService(){\r
+ return (IDatabaseService) getBean("databaseService");\r
+ }\r
+\r
+ @Override\r
+ public INameService getNameService(){\r
+ return (INameService) getBean("nameService");\r
+ }\r
+\r
+ @Override\r
+ public IReferenceService getReferenceService(){\r
+ return (IReferenceService) getBean("referenceService");\r
+ }\r
+\r
+ @Override\r
+ public ITaxonService getTaxonService(){\r
+ return (ITaxonService) getBean("taxonService");\r
+ }\r
+\r
+ @Override\r
+ public IClassificationService getClassificationService(){\r
+ return (IClassificationService) getBean("classificationService");\r
+ }\r
+\r
+ @Override\r
+ public ITaxonNodeService getTaxonNodeService(){\r
+ return (ITaxonNodeService) getBean("taxonNodeService");\r
+ }\r
+\r
+ @Override\r
+ public IDescriptionService getDescriptionService(){\r
+ return (IDescriptionService) getBean("descriptionService");\r
+ }\r
+\r
+ @Override\r
+ public IOccurrenceService getOccurrenceService(){\r
+ return (IOccurrenceService) getBean("occurrenceService");\r
+ }\r
+\r
+ @Override\r
+ public IPrimerService getPrimerService(){\r
+ return (IPrimerService) getBean("primerService");\r
+ }\r
+\r
+ @Override\r
+ public IAmplificationService getAmplificationService(){\r
+ return (IAmplificationService) getBean("amplificationService");\r
+ }\r
+\r
+ @Override\r
+ public ISequenceService getSequenceService(){\r
+ return (ISequenceService) getBean("sequenceService");\r
+ }\r
+\r
+ @Override\r
+ public IMediaService getMediaService(){\r
+ return (IMediaService) getBean("mediaService");\r
+ }\r
+\r
+ @Override\r
+ public ITermService getTermService(){\r
+ return (ITermService) getBean("termService");\r
+ }\r
+\r
+ @Override\r
+ public ICommonService getCommonService(){\r
+ return (ICommonService) getBean("commonService");\r
+ }\r
+\r
+ @Override\r
+ public ILocationService getLocationService(){\r
+ return (ILocationService) getBean("locationService");\r
+ }\r
+\r
+ @Override\r
+ public IUserService getUserService(){\r
+ return (IUserService) getBean("userService");\r
+ }\r
+\r
+ @Override\r
+ public IGrantedAuthorityService getGrantedAuthorityService(){\r
+ return (IGrantedAuthorityService) getBean("grantedAuthorityService");\r
+ }\r
+\r
+ @Override\r
+ public IService<CdmBase> getMainService(){\r
+ return (IService<CdmBase>) getBean("mainService");\r
+ }\r
+\r
+\r
+ @Override\r
+ public ProviderManager getAuthenticationManager(){\r
+ return (ProviderManager) getBean("authenticationManager");\r
+ }\r
+\r
+\r
+ @Override\r
+ public ConversationHolder NewConversation() {\r
+ return new ConversationHolderMock();\r
+ }\r
+\r
+ @Override\r
+ public ICollectionService getCollectionService(){\r
+ return (ICollectionService) getBean("collectionService");\r
+ }\r
+\r
+ @Override\r
+ public IFeatureTreeService getFeatureTreeService(){\r
+ return (IFeatureTreeService) getBean("featureTreeService");\r
+ }\r
+\r
+ @Override\r
+ public IFeatureNodeService getFeatureNodeService(){\r
+ return (IFeatureNodeService) getBean("featureNodeService");\r
+ }\r
+\r
+ @Override\r
+ public IVocabularyService getVocabularyService(){\r
+ return (IVocabularyService) getBean("vocabularyService");\r
+ }\r
+\r
+ @Override\r
+ public IIdentificationKeyService getIdentificationKeyService(){\r
+ return (IIdentificationKeyService) getBean("identificationKeyService");\r
+ }\r
+\r
+ @Override\r
+ public IPolytomousKeyService getPolytomousKeyService(){\r
+ return (IPolytomousKeyService) getBean("polytomousKeyService");\r
+ }\r
\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#startTransaction()\r
- */\r
+ @Override\r
+ public IPolytomousKeyNodeService getPolytomousKeyNodeService(){\r
+ return (IPolytomousKeyNodeService) getBean("polytomousKeyNodeService");\r
+ }\r
+\r
+ @Override\r
+ public IWorkingSetService getWorkingSetService(){\r
+ return (IWorkingSetService) getBean("workingSetService");\r
+ }\r
+\r
+ @Override\r
+ public IGroupService getGroupService(){\r
+ return (IGroupService) getBean("groupService");\r
+ }\r
+\r
+\r
+ @Override\r
+ public IEntityValidationService getEntityValidationService(){\r
+ return (IEntityValidationService) getBean("entityValidationService");\r
+ }\r
+\r
+\r
+ @Override\r
+ public IEntityConstraintViolationService getEntityConstraintViolationService(){\r
+ return (IEntityConstraintViolationService) getBean("entityConstraintViolationService");\r
+ }\r
+\r
+ @Override\r
+ public ICdmPermissionEvaluator getPermissionEvaluator(){\r
+ return (ICdmPermissionEvaluator) getBean("cdmPermissionEvaluator");\r
+ }\r
+\r
+\r
+ @Override\r
+ public TransactionStatus startTransaction() throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
+ }\r
+\r
@Override\r
public TransactionStatus startTransaction(Boolean readOnly) throws UnsupportedOperationException {\r
- throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
- }\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
+ throw new UnsupportedOperationException("commitTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
+ }\r
+\r
+ @Override\r
+ public void authenticate(String username, String password){\r
+ UsernamePasswordAuthenticationToken tokenForUser = new UsernamePasswordAuthenticationToken(username, password);\r
+ Authentication authentication = this.getAuthenticationManager().authenticate(tokenForUser);\r
+ SecurityContext context = SecurityContextHolder.getContext();\r
+ context.setAuthentication(authentication);\r
}\r
}\r
/**
-* 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.
-*/
+ * 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 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.GenericApplicationContext;
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;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
/**
* 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");
+
+ 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 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);
-
- }
+// public static CdmApplicationRemoteController NewInstance(Resource applicationContextResource,
+// ICdmRemoteSource remoteSource,
+// IProgressMonitor progressMonitor,
+// List<ApplicationListener> listeners) {
+// return new CdmApplicationRemoteController(applicationContextResource,
+// remoteSource,
+// false,
+// progressMonitor,
+// listeners);
+//
+// }
/**
* Creates new instance of CdmApplicationRemoteController
- *
+ *
* @param applicationContextResource
* @param remoteSource
* @param omitTermLoading
* @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);
-
+ public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,
+ IProgressMonitor progressMonitor,
+ List<ApplicationListener> listeners) {
+
+ return new CdmApplicationRemoteController(DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE,
+ remoteSource,
+ false,
+ 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;
+
+ public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,
+ boolean validateXml,
+ IProgressMonitor progressMonitor,
+ List<ApplicationListener> listeners) {
+
+ return new CdmApplicationRemoteController(DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE,
+ remoteSource,
+ validateXml,
+ progressMonitor,
+ listeners);
+
+ }
+
+ /**
+ * Constructs CdmApplicationRemoteController
+ *
+ * @param applicationContextResource
+ * @param remoteSource
+ * @param omitTermLoading
+ * @param progressMonitor
+ * @param listeners
+ */
+ private CdmApplicationRemoteController(Resource applicationContextResource,
+ ICdmRemoteSource remoteSource,
+ boolean validateXml,
+ 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, validateXml, listeners);
+
+ }
+
+
- 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){
+ public boolean setNewRemoteSource(ICdmRemoteSource remoteSource,
+ boolean validateXml,
+ List<ApplicationListener> listeners){
logger.info("Connecting to '" + remoteSource.getName() + "'");
- MonitoredGenericApplicationContext applicationContext = new MonitoredGenericApplicationContext();
- int refreshTasks = 45;
- int nTasks = 5 + refreshTasks;
+ GenericApplicationContext applicationContext = new GenericApplicationContext();
+
+ int nTasks = 2;
progressMonitor.beginTask("Connecting to '" + remoteSource.getName() + "'", nTasks);
- progressMonitor.subTask("Registering remote source.");
+ progressMonitor.subTask("Loading context beans ...");
+ // initialising the cdm model cache
+ CdmRemoteCacheManager.getInstance();
+
PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
Properties properties = new Properties();
properties.setProperty("remoteServer", remoteSource.getServer());
properties.setProperty("remoteContext", remoteSource.getContextPath());
pspc.setProperties(properties);
applicationContext.addBeanFactoryPostProcessor(pspc);
- progressMonitor.worked(1);
-
+ applicationContext.getEnvironment().setActiveProfiles("remoting");
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(!validateXml) {
+ xmlReader.setValidating(false);
}
-
+ xmlReader.loadBeanDefinitions(applicationContextResource);
if (listeners != null){
for(ApplicationListener listener : listeners){
applicationContext.addApplicationListener(listener);
}
}
+ progressMonitor.worked(1);
-
- applicationContext.refresh(new SubProgressMonitor(progressMonitor, refreshTasks));
+ progressMonitor.subTask("Starting context ...");
+ applicationContext.refresh();
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(){
+ protected void init(){
+
+ // retrieving the application configuration
configuration = (ICdmApplicationConfiguration)applicationContext.getBean("cdmApplicationRemoteConfiguration");
- AbstractLazyInitializer.setConfiguration(this);
- AbstractPersistentCollection.setConfiguration(this);
+ AbstractLazyInitializer.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
+ AbstractPersistentCollection.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
+
+
}
+ public ICdmEntitySessionManager getCdmEntitySessionManager() {
+ return ((CdmApplicationRemoteConfiguration)configuration).getCdmEntitySessionManager();
+ }
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IService;
+
+/**
+ * @author cmathew
+ * @date 17 Jun 2015
+ *
+ */
+public class CdmApplicationState {
+
+ private static CdmApplicationState cdmApplicationState;
+
+ private ICdmApplicationConfiguration appConfig;
+
+ private ICdmDataChangeService dataChangeService;
+
+ public static CdmApplicationState getInstance() {
+ if(cdmApplicationState == null) {
+ cdmApplicationState = new CdmApplicationState();
+ }
+ return cdmApplicationState;
+ }
+
+ public void setAppConfig(ICdmApplicationConfiguration appConfig) {
+ this.appConfig = appConfig;
+ }
+
+ public ICdmApplicationConfiguration getAppConfig() {
+ return appConfig;
+ }
+
+ public static void setCurrentAppConfig(ICdmApplicationConfiguration appConfig) {
+ getInstance().setAppConfig(appConfig);
+ }
+
+ public static ICdmApplicationConfiguration getCurrentAppConfig() {
+ return getInstance().getAppConfig();
+ }
+
+ /**
+ * @return the dataChangeService
+ */
+ public ICdmDataChangeService getDataChangeService() {
+ return dataChangeService;
+ }
+
+ /**
+ * @param dataChangeService the dataChangeService to set
+ */
+ public void setDataChangeService(ICdmDataChangeService dataChangeService) {
+ this.dataChangeService = dataChangeService;
+ }
+
+ public static ICdmDataChangeService getCurrentDataChangeService() {
+ return getInstance().getDataChangeService();
+ }
+
+ public static void setCurrentDataChangeService(ICdmDataChangeService dataChangeService) {
+ getInstance().setDataChangeService(dataChangeService);
+ }
+
+ public static void dispose() {
+ getInstance().setCurrentDataChangeService(null);
+ getInstance().setAppConfig(null);
+ }
+
+ /**
+ * Generic method that will scan the getters of {@link ICdmApplicationConfiguration} for the given service
+ * interface. If a matching getter is found the according service implementation is returned by
+ * invoking the getter otherwise the method returns <code>null</code>.
+ *
+ * @param <T>
+ * @param serviceClass
+ * @return the configured implementation of <code>serviceClass</code> or <code>null</code>
+ * @throws CdmApplicationException
+ */
+ public static <T extends IService> T getService(Class<T> serviceClass) throws CdmApplicationException {
+ ICdmApplicationConfiguration configuration = getCurrentAppConfig();
+
+ Method[] methods = ICdmApplicationConfiguration.class.getDeclaredMethods();
+
+ T service = null;
+
+ for (Method method : methods) {
+ Type type = method.getGenericReturnType();
+
+ if (type.equals(serviceClass)) {
+ try {
+ service = (T) method.invoke(configuration, null);
+ break;
+ } catch (IllegalArgumentException iae) {
+ throw new CdmApplicationException(iae);
+ } catch (IllegalAccessException iae) {
+ throw new CdmApplicationException(iae);
+ } catch (InvocationTargetException ite) {
+ throw new CdmApplicationException(ite);
+ }
+ }
+ }
+
+ return service;
+ }
+
+ /**
+ * @see #getService(Class)
+ * As ICommonService is not extending IService we need a specific request here
+ */
+ public static ICommonService getCommonService() {
+ ICdmApplicationConfiguration configuration = getCurrentAppConfig();
+
+ return configuration.getCommonService();
+
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.HashSet;
+import java.util.Set;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 7 Apr 2015
+ *
+ */
+public class CdmChangeEvent {
+
+ public enum Action {
+ Create,
+ Update,
+ Delete
+ }
+
+ private final Action action;
+ private final Set<CdmBase> changedObjects;
+ private final Class sourceType;
+ private Object source;
+
+ public CdmChangeEvent(Action action, Set<CdmBase> changedObjects, Class sourceType) {
+ this.action = action;
+ this.changedObjects = changedObjects;
+ this.sourceType = sourceType;
+ }
+
+ public CdmChangeEvent(Action action, CdmBase changedObject, Class sourceType) {
+ this.action = action;
+ changedObjects = new HashSet<CdmBase>();
+ changedObjects.add(changedObject);
+ this.sourceType = sourceType;
+ }
+
+ public CdmChangeEvent(Action action, Set<CdmBase> changedObjects, Object source) {
+ this(action, changedObjects, source.getClass());
+ this.source = source;
+ }
+
+ /**
+ * @return the action
+ */
+ public Action getAction() {
+ return action;
+ }
+
+ /**
+ * @return the changedObjects
+ */
+ public Set<? extends CdmBase> getChangedObjects() {
+ return changedObjects;
+ }
+
+ /**
+ * @return the sourceType
+ */
+ public Class getSourceType() {
+ return sourceType;
+ }
+
+
+ /**
+ * @return the source
+ */
+ public Object getSource() {
+ return source;
+ }
+
+ public boolean hasChanges() {
+ return changedObjects != null && !changedObjects.isEmpty();
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author cmathew
+ * @date 18 Jun 2015
+ *
+ */
+public class CdmDataChangeService implements ICdmDataChangeService {
+
+ protected final Set<ICdmChangeListener> listeners;
+
+ private final List<CdmChangeEvent> currentEvents;
+
+ public CdmDataChangeService() {
+ listeners = new HashSet<ICdmChangeListener>();
+ currentEvents = new ArrayList<CdmChangeEvent>();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.ICdmDataChangeService#register(eu.etaxonomy.cdm.api.application.ICdmChangeListener)
+ */
+ @Override
+ public void register(ICdmChangeListener listener) {
+ listeners.add(listener);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmDataChangeService#unregister(eu.etaxonomy.cdm.api.application.ICdmChangeListener)
+ */
+ @Override
+ public void unregister(ICdmChangeListener listener) {
+ listeners.remove(listener);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.ICdmDataChangeService#addEvent(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void addEvent(CdmChangeEvent event) {
+ currentEvents.add(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.ICdmDataChangeService#fireCurrentChangeEvents(boolean)
+ */
+ @Override
+ public void fireCurrentChangeEvents(boolean async) {
+ try {
+ for(CdmChangeEvent event : currentEvents) {
+ fireChangeEvent(event,async);
+ }
+ } finally {
+ currentEvents.clear();
+ }
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.ICdmDataChangeService#fireChangeEvent(eu.etaxonomy.cdm.api.application.CdmChangeEvent, boolean)
+ */
+ @Override
+ public void fireChangeEvent(final CdmChangeEvent event, boolean async) {
+
+ for(final ICdmChangeListener listener : listeners) {
+ listener.onChange(event);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.ICdmDataChangeService#clear()
+ */
+ @Override
+ public void clear() {
+ listeners.clear();
+ currentEvents.clear();
+ }
+
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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;
+
+/**
+ * @author cmathew
+ * @date 7 Apr 2015
+ *
+ */
+public interface ICdmChangeListener {
+
+ public void onChange(CdmChangeEvent event);
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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;
+
+
+/**
+ * @author cmathew
+ * @date 18 Jun 2015
+ *
+ */
+public interface ICdmDataChangeService {
+
+ public abstract void register(ICdmChangeListener listener);
+
+ public abstract void unregister(ICdmChangeListener listener);
+
+ public abstract void addEvent(CdmChangeEvent event);
+
+ public abstract void fireCurrentChangeEvents(boolean async);
+
+ public abstract void fireChangeEvent(CdmChangeEvent event, boolean async);
+
+ public abstract void clear();
+
+}
\ No newline at end of file
import java.util.UUID;
+import net.sf.ehcache.config.CacheConfiguration;
+import net.sf.ehcache.config.SizeOfPolicyConfiguration;
+
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;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.taxeditor.remoting.cache.CacheLoader;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmEntityCacheKey;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.taxeditor.service.TermServiceRequestExecutor;
+import eu.etaxonomy.taxeditor.session.CdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
/**
* Class which uses CDM services to cache cdm entities
* @param <T>
*/
@Component
-public class CdmServiceCacher<T extends CdmBase> extends CdmCacher {
+public class CdmServiceCacher extends CdmCacher implements ICdmEntitySessionManagerObserver {
- @Autowired
- ITermService termService;
+ @Autowired
+ ITermService termService;
- @Override
- protected T findByUuid(UUID uuid) {
- return (T)termService.findWithoutFlush(uuid);
- }
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.cache.CdmCacher#setup()
- */
+ private ICdmEntitySessionManager cdmEntitySessionManager;
+
+ private CdmTransientEntityCacher cdmTransientEntityCacher;
+
+ private CacheLoader cacheLoader;
+
@Override
protected void setup() {
- // TODO Auto-generated method stub
+ DefinedTermBase.setCacher(this);
+ CdmTransientEntityCacher.setDefaultCacher(this);
+ TermServiceRequestExecutor.setDefaultCacher(this);
+ cacheLoader = new CacheLoader(this);
+ }
+
+ @Override
+ protected CacheConfiguration getDefaultCacheConfiguration() {
+ // For a better understanding on how to size caches, refer to
+ // http://ehcache.org/documentation/configuration/cache-size
+
+ SizeOfPolicyConfiguration sizeOfConfig = new SizeOfPolicyConfiguration();
+ sizeOfConfig.setMaxDepth(100);
+ sizeOfConfig.setMaxDepthExceededBehavior("abort");
+
+ return new CacheConfiguration(DEFAULT_CACHE_NAME, 0)
+ .eternal(true)
+ .statistics(true)
+ .sizeOfPolicy(sizeOfConfig)
+ .overflowToOffHeap(false);
+
+ }
+
+ @Override
+ protected CdmBase findByUuid(UUID uuid) {
+ CdmBase term = termService.findWithoutFlush(uuid);
+ return load(term);
}
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.model.ICdmCacher#isCachable(eu.etaxonomy.cdm.model.common.CdmBase)
*/
@Override
- public boolean isCachable(CdmBase arg0) {
- // TODO Auto-generated method stub
+ public boolean isCachable(CdmBase cdmEntity) {
+ if(cdmEntity != null && cdmEntity instanceof DefinedTermBase) {
+ return true;
+ }
return false;
}
+
+ public void setCdmEntitySessionManager(ICdmEntitySessionManager cdmEntitySessionManager) {
+ this.cdmEntitySessionManager = cdmEntitySessionManager;
+ if(cdmEntitySessionManager != null) {
+ cdmEntitySessionManager.addSessionObserver(this);
+ }
+ }
+
+
+ public CdmTransientEntityCacher getCurrentCacher() {
+ ICdmEntitySession cdmEntitySession = cdmEntitySessionManager.getActiveSession();
+ if(cdmEntitySession != null && cdmEntitySession instanceof CdmEntitySession) {
+ return ((CdmEntitySession) cdmEntitySession).getCacher();
+ }
+ return null;
+ }
+
+ @Override
+ public CdmBase getFromCache(CdmBase cdmBase) {
+ CdmBase cachedCdmEntity = null;
+ // first we check in the active session cache if the
+ if(!isCachable(cdmBase) && cdmTransientEntityCacher != null) {
+ CdmEntityCacheKey key = CdmTransientEntityCacher.generateKey(cdmBase);
+ cachedCdmEntity = cdmTransientEntityCacher.getFromCache(key);
+
+ }
+ if(cachedCdmEntity == null) {
+ cachedCdmEntity = super.getFromCache(cdmBase);
+ }
+ return cachedCdmEntity;
+ }
+
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.cache.CdmCacher#load(eu.etaxonomy.cdm.model.common.CdmBase)
*/
@Override
- public CdmBase load(CdmBase arg0) {
- // TODO Auto-generated method stub
- return null;
+ public CdmBase load(CdmBase cdmEntity) {
+ CdmBase cachedCdmEntity = getFromCache(cdmEntity.getUuid());
+
+ if(isCachable(cdmEntity)) {
+ cachedCdmEntity = cacheLoader.load(cdmEntity, true, false);
+ }
+ return cachedCdmEntity;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver#changed()
+ */
+ @Override
+ public void changed() {
+ ICdmEntitySession cdmEntitySession = cdmEntitySessionManager.getActiveSession();
+ if(cdmEntitySession != null && cdmEntitySession instanceof CdmEntitySession) {
+ this.cdmTransientEntityCacher = ((CdmEntitySession) cdmEntitySession).getCacher();
+ } else {
+ this.cdmTransientEntityCacher = null;
+ }
+ }
}
+++ /dev/null
-package eu.etaxonomy.cdm.api.lazyloading;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.hibernate.collection.internal.PersistentList;
-import org.hibernate.collection.internal.PersistentMap;
-import org.hibernate.collection.internal.PersistentSet;
-import org.hibernate.collection.internal.PersistentSortedMap;
-import org.hibernate.collection.internal.PersistentSortedSet;
-import org.hibernate.collection.spi.PersistentCollection;
-import org.hibernate.proxy.LazyInitializer;
-import org.springframework.beans.factory.annotation.Autowire;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Configurable;
-import org.springframework.stereotype.Component;
-
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.PersistentMultiLanguageText;
-
-
-@Aspect
-@Component
-@Configurable(autowire = Autowire.BY_TYPE)
-public class CdmLazyLoader {
-
-
- private Set classes = new HashSet();
-
- public static boolean enableWeaving = true;
- private static Set<String> classesToIgnore = new HashSet<String>();
-
-
- @Autowired
- private ICommonService commonService;
-
- public CdmLazyLoader() {
- //classesToIgnore.add("eu.etaxonomy.cdm.model.common.TermVocabulary");
- //classesToIgnore.add("eu.etaxonomy.cdm.model.common.OrderedTermVocabulary");
-
- }
-
- /**
- * Point cut for the 'initialize' method of the AbstractLazyInitializer.
- *
- */
- @Pointcut("execution(* org.hibernate.proxy.AbstractLazyInitializer.initialize())")
- public void possibleEntityLazyInitializationException() {
- }
-
-
- /**
- * 'Around' advice for the initialization of CDM Entity Objects
- *
- */
- @Around(value = "possibleEntityLazyInitializationException()")
- public Object preloadEntityOnDemand(ProceedingJoinPoint pjp) throws Throwable {
- if(enableWeaving) {
- LazyInitializer ll = (LazyInitializer)pjp.getTarget();
- if(ll.isUninitialized()) {
- int classid = ((Integer)ll.getIdentifier()).intValue();
- System.out.print("--> AspectJ Compile-Time Weaving " + ll.getEntityName() + " with id " + classid);
- Class clazz = (Class<? extends CdmBase>) Class.forName(ll.getEntityName());
- CdmBase cdmBase = CdmBase.deproxy(commonService.find(clazz,classid),clazz);
- ll.setImplementation(cdmBase);
- System.out.println("....Done");
- }
- }
- return pjp.proceed();
- }
-
-
- /**
- * Point cut for the 'initialize' method of the AbstractPersistentCollection.
- *
- */
- @Pointcut("execution(protected final void org.hibernate.collection.internal.AbstractPersistentCollection.initialize(..))")
- public void possibleCollectionLazyInitializationException() {
- }
-
- /**
- * 'Around' advice for the initialization of Collection objects
- *
- */
- @Around(value = "possibleCollectionLazyInitializationException()")
- public Object preloadCollectionOnDemand(ProceedingJoinPoint pjp) throws Throwable {
- if(enableWeaving) {
- PersistentCollection ps = (PersistentCollection) pjp.getTarget();
- if (ps.getOwner() != null && !classesToIgnore.contains(ps.getOwner().getClass().getName()) && !ps.wasInitialized() && !classes.contains(ps.getKey())) {
- System.out.print("--> AspectJCompile-Time Weaving " + ps.getRole());
- classes.add(ps.getKey());
- try {
- String role = ps.getRole();
- String fieldName = role.substring(role.lastIndexOf(".") + 1);
- System.out.print(", field : " + fieldName);
- Object owner = ps.getOwner();
-
- PersistentCollection col = commonService.initializeCollection(ps);
- ps.afterInitialize();
-
- Class<?> clazz = ps.getClass();
- if (clazz != null) {
- CollectionField cf = getCollectionField(col);
- Field field = clazz.getDeclaredField(cf.getFieldName());
- field.setAccessible(true);
- field.set(ps, cf.getCollection());
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- System.out.println("Error in ReattachSessionAspect : " + ex.getMessage());
- } finally {
- classes.remove(ps.getKey());
- System.out.println("....Done");
- }
- }
- }
- return pjp.proceed();
-
- }
-
- 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;
- }
- }
-
-}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting;
+
+public class CdmEagerLoadingException extends RuntimeException {
+
+ public CdmEagerLoadingException(Throwable t) {
+ super(t);
+ }
+
+ public CdmEagerLoadingException(String message) {
+ super(message);
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting;
+
+public class CdmRemotingException extends RuntimeException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -560332689478356360L;
+
+ public CdmRemotingException(String message) {
+ super(message);
+ }
+
+ public CdmRemotingException(Exception exception) {
+ super(exception);
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.cache;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+
+import org.apache.log4j.Logger;
+import org.springframework.util.ReflectionUtils;
+
+import eu.etaxonomy.cdm.model.ICdmCacher;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 19 Feb 2015
+ *
+ */
+public class CacheLoader {
+ private static final Logger logger = Logger.getLogger(CacheLoader.class);
+
+ private static boolean isRecursiveEnabled = true;
+
+ protected final ICdmCacher cdmCacher;
+
+ private final Cache cdmlibModelCache;
+
+
+
+ public CacheLoader(ICdmCacher cdmCacher) {
+ this.cdmCacher = cdmCacher;
+ this.cdmlibModelCache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+
+ }
+
+
+ public CdmModelFieldPropertyFromClass getFromCdmlibModelCache(String className) {
+ Element e = cdmlibModelCache.get(className);
+ if (e == null) {
+ return null;
+ } else {
+ return (CdmModelFieldPropertyFromClass) e.getObjectValue();
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T extends Object> T load(T obj, boolean recursive, boolean update) {
+ if(obj == null) {
+ return null;
+ }
+ if(obj instanceof CdmBase) {
+ return (T) load((CdmBase)obj, recursive, update);
+ } else if (obj instanceof Map) {
+ return (T) load((Map<T,T>)obj, recursive, update);
+ } else if (obj instanceof Collection) {
+ return (T) load((Collection<T>)obj, recursive, update);
+ }
+
+ return obj;
+ }
+
+ @SuppressWarnings("unchecked")
+ private <T extends Object> T loadRecursive(T obj, List<Object> alreadyVisitedEntities, boolean update) {
+ if(obj == null) {
+ return null;
+ }
+ if(obj instanceof CdmBase) {
+ return (T) loadRecursive((CdmBase)obj, alreadyVisitedEntities, update);
+ } else if (obj instanceof Map) {
+ return (T) load((Map<T,T>)obj, alreadyVisitedEntities, update);
+ } else if (obj instanceof Collection) {
+ return (T) load((Collection<T>)obj, alreadyVisitedEntities, update);
+ }
+
+
+ logger.info("No caching yet for type " + obj.getClass().getName());
+
+ return obj;
+ }
+
+ public <T extends Object> Map<T,T> load(Map<T,T> map, boolean recursive, boolean update){
+
+
+ if(isRecursiveEnabled && recursive) {
+ logger.info("---- starting recursive load for cdm entity map");
+ List<Object> alreadyVisitedEntities = new ArrayList<Object>();
+ Map<T,T> cachedMap = load(map, alreadyVisitedEntities, update);
+ alreadyVisitedEntities.clear();
+ logger.info("---- ending recursive load for cdm entity map \n");
+ return cachedMap;
+ } else {
+ return load(map, null, update);
+ }
+ }
+
+
+ private <T extends Object> Map<T,T> load(Map<T,T> map, List<Object> alreadyVisitedEntities, boolean update){
+ //map = (Map<T,T>)deproxy(map);
+
+ if(map == null || map.isEmpty()) {
+ return map;
+ }
+
+ int originalMapSize = map.size();
+ Object[] result = new Object[ map.size() * 2 ];
+ Iterator<Map.Entry<T,T>> iter = map.entrySet().iterator();
+ int i=0;
+ // to avoid ConcurrentModificationException
+ alreadyVisitedEntities.add(map);
+ while ( iter.hasNext() ) {
+ Map.Entry<T,T> e = iter.next();
+ result[i++] = e.getKey();
+ result[i++] = e.getValue();
+ }
+
+ for(i=0; i<result.length;i++) {
+ if(alreadyVisitedEntities == null) {
+ result[i] = load(result[i], false, update);
+ } else {
+ result[i] = loadRecursive(result[i], alreadyVisitedEntities, update);
+ }
+ }
+ map.clear();
+ for(i = 0; i < originalMapSize; i+=2 ) {
+ map.put(
+ (T)result[i],
+ (T)result[i+1]
+ );
+ }
+ return map;
+ }
+
+ public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive, boolean update){
+
+ Collection<T> loadedCollection;
+ if(isRecursiveEnabled && recursive) {
+ logger.info("---- starting recursive load for cdm entity collection");
+ List<Object> alreadyVisitedEntities = new ArrayList<Object>();
+ Collection<T> cachedCollection = load(collection, alreadyVisitedEntities, update);
+ alreadyVisitedEntities.clear();
+ logger.info("---- ending recursive load for cdm entity collection \n");
+ loadedCollection = cachedCollection;
+ } else {
+ loadedCollection = load(collection, null, update);
+ }
+ return loadedCollection;
+ }
+
+ @SuppressWarnings("unchecked")
+ private <T extends Object> Collection<T> load(Collection<T> collection, List<Object> alreadyVisitedEntities, boolean update) {
+
+
+
+ if(collection == null || collection.isEmpty()) {
+ return collection;
+ }
+ int length = collection.size();
+ Object[] result = new Object[length];
+ Iterator<T> collectionItr = collection.iterator();
+ int count = 0;
+ // to avoid ConcurrentModificationException
+ alreadyVisitedEntities.add(collection);
+ while(collectionItr.hasNext()) {
+ Object obj = collectionItr.next();
+ if(alreadyVisitedEntities == null) {
+ result[count] = load(obj, false, update);
+ } else {
+ result[count] = loadRecursive(obj, alreadyVisitedEntities, update);
+ }
+
+ count++;
+ }
+
+ collection.clear();
+
+ for ( int i = 0; i < length; i++ ) {
+ collection.add((T)result[i]);
+ }
+
+ return collection;
+ }
+
+
+ /**
+ * Puts the (Key,Value) pair of ({@link java.util.UUID}, {@link eu.etaxonomy.cdm.model.common.CdmBase}),
+ * in the cache corresponding to the given cache id
+ *
+ * @param cacheId
+ * @param uuid
+ * @param cdmEntity
+ */
+ public CdmBase load(CdmBase cdmEntity, boolean recursive, boolean update) {
+ if(cdmEntity == null) {
+ return null;
+ }
+
+ // start by looking up the cdm entity in the cache
+ CdmBase cachedCdmEntity = cdmCacher.getFromCache(cdmEntity);
+
+ if(cachedCdmEntity != null) {
+ // if cdm entity was found in cache then
+ logger.info(" - object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + " already exists");
+ // .. return if the cached and input objects are identical, else (this is a newly loaded object so) continue
+ if(cachedCdmEntity == cdmEntity) {
+ return cachedCdmEntity;
+ }
+ }
+
+ CdmBase loadedCdmBase;
+ if(isRecursiveEnabled && recursive) {
+ logger.info("---- starting recursive load for cdm entity " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId());
+ List<Object> alreadyVisitedEntities = new ArrayList<Object>();
+ CdmBase cb = loadRecursive(cdmEntity, alreadyVisitedEntities, update);
+ alreadyVisitedEntities.clear();
+ logger.info("---- ending recursive load for cdm entity " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + "\n");
+ loadedCdmBase = cb;
+ } else {
+ loadedCdmBase = load(cdmEntity);
+ }
+ return loadedCdmBase;
+
+ }
+
+
+ protected CdmBase load(CdmBase cdmEntity) {
+ logger.info("loading object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId());
+ cdmCacher.put((CdmBase)ProxyUtils.deproxy(cdmEntity));
+ return cdmCacher.getFromCache(cdmEntity);
+ }
+
+
+ private CdmBase loadRecursive(CdmBase cdmEntity, List<Object> alreadyVisitedEntities, boolean update) {
+
+ CdmBase cachedCdmEntity = load(cdmEntity);
+
+
+ // we want to recursive through the cdmEntity (and not the cachedCdmEntity)
+ // since there could be new or deleted objects in the cdmEntity sub-graph
+
+ // start by getting the fields from the cdm entity
+ String className = cdmEntity.getClass().getName();
+ CdmModelFieldPropertyFromClass cmgmfc = getFromCdmlibModelCache(className);
+ if(cmgmfc != null) {
+ alreadyVisitedEntities.add(cdmEntity);
+ List<String> fields = cmgmfc.getFields();
+ for(String field : fields) {
+ // retrieve the actual object corresponding to the field.
+ // this object will be either a CdmBase or a Collection / Map
+ // with CdmBase as the generic type
+
+ CdmBase cdmEntityInSubGraph = getCdmBaseTypeFieldValue(cdmEntity, cachedCdmEntity, field, alreadyVisitedEntities, update);
+ if(cdmEntityInSubGraph != null) {
+ //checkForIdenticalCdmEntity(alreadyVisitedEntities, cdmEntityInSubGraph);
+ if(!checkForIdenticalCdmEntity(alreadyVisitedEntities, cdmEntityInSubGraph)) {
+ logger.info("recursive loading object of type " + cdmEntityInSubGraph.getClass().getName() + " with id " + cdmEntityInSubGraph.getId());
+ loadRecursive(cdmEntityInSubGraph, alreadyVisitedEntities, update);
+ } else {
+ logger.info("object of type " + cdmEntityInSubGraph.getClass().getName() + " with id " + cdmEntityInSubGraph.getId() + " already visited");
+ }
+ }
+ }
+ } else {
+ throw new CdmClientCacheException("CdmEntity with class " + cdmEntity.getClass().getName() + " is not found in the cdmlib model cache. " +
+ "The cache may be corrupted or not in sync with the latest model version" );
+ }
+
+ return cachedCdmEntity;
+ }
+
+
+ private CdmBase getCdmBaseTypeFieldValue(CdmBase cdmEntity,
+ CdmBase cachedCdmEntity,
+ String fieldName,
+ List<Object> alreadyVisitedEntities,
+ boolean update) {
+
+ // this method attempts to make sure that for any two objects found in
+ // the object graph, if they are equal then they should also be the same,
+ // which is crucial for the merge to work
+ if(cachedCdmEntity == null) {
+ throw new CdmClientCacheException("When trying to set field value, the cached cdm entity cannot be null");
+ }
+
+ Class<?> clazz = cdmEntity.getClass();
+ try {
+ // this call will search in the provided class as well as
+ // the super classes until it finds the field
+ Field field = ReflectionUtils.findField(clazz, fieldName);
+
+ if(field == null) {
+ throw new CdmClientCacheException("Field '" + fieldName
+ + "' not found when searching in class '" + clazz.getName() + "' and its supercalsses");
+ }
+ field.setAccessible(true);
+ Object o = field.get(cdmEntity);
+ // resetting the value in cdm entity to the deproxied object
+ o = ProxyUtils.deproxy(o);
+ field.set(cdmEntity, o);
+
+ CdmBase cdmEntityInSubGraph = null;
+
+ if(update) {
+ // if we are in update mode we have to make the field of the cached entity
+ // up-to-date by setting it to the value of the cdm entity being loaded
+ // NOTE : the filed is overridden in the case of two exceptions
+ // found below
+ field.set(cachedCdmEntity, o);
+
+ }
+
+ if(o != null && !ProxyUtils.isProxy(o)) {
+ if(CdmBase.class.isAssignableFrom(o.getClass())) {
+ logger.info("found initialised cdm entity '" + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId());
+
+ cdmEntityInSubGraph = (CdmBase)o;
+ CdmBase cachedCdmEntityInSubGraph = cdmCacher.getFromCache(cdmEntityInSubGraph);
+
+// Object oldCachedCdmEntityInSubGraph = field.get(cachedCdmEntity);
+// if(ProxyUtils.isProxy(oldCachedCdmEntityInSubGraph)) {
+// LazyInitializer hli =
+// ((HibernateProxy)oldCachedCdmEntityInSubGraph).getHibernateLazyInitializer();
+//
+// if(cdmEntityInSubGraph.getId() == ((Integer)hli.getIdentifier()).intValue()) {
+// // exception 1 : is the case where
+// // the earlier value of the field in the cached entity
+// // was a proxy with the same id then we don't need to
+// // update it here as it will be updated on demand,
+// // so we reset it to the earlier proxy
+// field.set(cachedCdmEntity, oldCachedCdmEntityInSubGraph);
+// return null;
+// }
+// }
+
+ if(cachedCdmEntityInSubGraph != null) {
+ if(cachedCdmEntityInSubGraph != cdmEntityInSubGraph) {
+ // exception 2 : is the case where
+ // the field has been already initialised, cached and
+ // is not the same as the one in the cache, in which case we set the value
+ // of the field to the one found in the cache
+ logger.info("setting cached + real value to '" + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId());
+ field.set(cachedCdmEntity, cachedCdmEntityInSubGraph);
+ field.set(cdmEntity, cachedCdmEntityInSubGraph);
+ } else {
+ // since the field value object in cdmEntity
+ // is the same as the field value object in cachedCdmEntity
+ // we are sure that the its subgraph is also correctly loaded,
+ // so we can exit the recursion
+ return null;
+ }
+ }
+ } else if(o instanceof Map && !checkForIdenticalCdmEntity(alreadyVisitedEntities, o)) {
+ loadRecursive((Map)o, alreadyVisitedEntities, update);
+ } else if(o instanceof Collection && !checkForIdenticalCdmEntity(alreadyVisitedEntities, o)) {
+ loadRecursive((Collection)o, alreadyVisitedEntities, update);
+ }
+ }
+ // we return the original cdm entity in the sub graph because we
+ // want to continue to recurse on the input cdm entity graph
+ // and not the one in the cache
+ return cdmEntityInSubGraph;
+ } catch (SecurityException e) {
+ throw new CdmClientCacheException(e);
+ } catch (IllegalArgumentException e) {
+ throw new CdmClientCacheException(e);
+ } catch (IllegalAccessException e) {
+ throw new CdmClientCacheException(e);
+ }
+ }
+
+ private boolean checkForIdenticalCdmEntity(List<Object> objList, Object objToCompare) {
+ if(objToCompare != null) {
+ for(Object obj : objList) {
+ if(obj == objToCompare) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+
+ public static boolean isRecursiveEnabled() {
+ return isRecursiveEnabled;
+ }
+
+ public static void setRecursiveEnabled(boolean ire) {
+ isRecursiveEnabled = ire;
+ }
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting.cache;
+
+public class CdmClientCacheException extends RuntimeException {
+
+ public CdmClientCacheException(String message) {
+ super(message);
+ }
+
+ public CdmClientCacheException(Exception e) {
+ super(e);
+ }
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting.cache;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+public class CdmEntityCacheKey {
+
+ private Class<? extends CdmBase> persistenceClass;
+ private int persistenceId;
+
+ public CdmEntityCacheKey(CdmBase cdmBase) {
+ this.persistenceClass = cdmBase.getClass();
+ this.persistenceId = cdmBase.getId();
+ }
+
+ public CdmEntityCacheKey(Class<? extends CdmBase> clazz, int id) {
+ this.persistenceClass = clazz;
+ this.persistenceId = id;
+ }
+
+
+
+ public Class<? extends CdmBase> getPersistenceClass() {
+ return persistenceClass;
+ }
+
+ public int getPersistenceId() {
+ return persistenceId;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if(obj == null || !(obj instanceof CdmEntityCacheKey)) {
+ return false;
+ }
+
+ if(this == obj) {
+ return true;
+ }
+ CdmEntityCacheKey that = (CdmEntityCacheKey) obj;
+ if(this.persistenceClass.equals(that.persistenceClass) && this.persistenceId == that.persistenceId) {
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return (this.persistenceClass.getName() + String.valueOf(this.persistenceId)).hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return this.persistenceClass.getName() + String.valueOf(this.persistenceId);
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting.cache;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+
+import org.apache.log4j.Logger;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.mapping.PersistentClass;
+import org.hibernate.mapping.Property;
+import org.hibernate.property.Getter;
+
+
+public class CdmModelCacher {
+
+
+ private static final Logger logger = Logger.getLogger(CdmModelCacher.class);
+
+ public static String HB_CONFIG_FILE_PATH= "/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml";
+
+ private final List<CdmModelFieldPropertyFromClass> cmgmfcList = new ArrayList<CdmModelFieldPropertyFromClass>();
+
+
+ public static Configuration buildConfiguration() {
+ Configuration configuration = new Configuration().configure(HB_CONFIG_FILE_PATH);
+ configuration.buildMappings();
+ return configuration;
+ }
+
+ public void cacheGetterFields(Cache cache) {
+
+ Configuration configuration = buildConfiguration();
+ Iterator<PersistentClass> classMappingIterator = configuration.getClassMappings();
+
+ cache.removeAll();
+
+ while(classMappingIterator.hasNext()) {
+ PersistentClass persistentClass = classMappingIterator.next();
+ Class mappedClass = persistentClass.getMappedClass();
+ String mappedClassName = mappedClass.getName();
+
+ CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName);
+ //logger.info("Adding class : " + mappedClassName + " to cache");
+ addGetters(persistentClass, cmgmfc);
+ cache.put(new Element(mappedClassName, cmgmfc));
+ }
+
+ }
+
+ private void addGetters(PersistentClass persistentClass, CdmModelFieldPropertyFromClass cmgmfc) {
+ if (persistentClass != null) {
+ Iterator propertyIt = persistentClass.getPropertyIterator();
+
+ while(propertyIt.hasNext())
+ {
+ Property property = (Property)propertyIt.next();
+ Getter getter = property.getGetter(persistentClass.getMappedClass());
+ if(getter != null && getter.getMember() != null) {
+ Field field = (Field)getter.getMember();
+
+ //logger.info(" - contains field '" + field.getName() + "' of type '" + field.getType().getName() + "'");
+ cmgmfc.addGetMethods(field.getName());
+ }
+ }
+ addGetters(persistentClass.getSuperclass(), cmgmfc);
+ }
+ }
+
+ public void checkGetterMethods() {
+
+ Configuration configuration = new Configuration().configure(HB_CONFIG_FILE_PATH);
+ configuration.buildMappings();
+ Iterator<PersistentClass> classMappingIterator = configuration.getClassMappings();
+
+ Cache cache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+ cache.removeAll();
+
+ while(classMappingIterator.hasNext()) {
+ PersistentClass persistentClass = classMappingIterator.next();
+ Class mappedClass = persistentClass.getMappedClass();
+ String mappedClassName = mappedClass.getName();
+
+ Iterator propertyIt = persistentClass.getPropertyIterator();
+
+ Method[] methods = mappedClass.getMethods();
+
+ while(propertyIt.hasNext())
+ {
+ Property property = (Property)propertyIt.next();
+ Getter getter = property.getGetter(mappedClass);
+ if(getter != null && getter.getMember() != null) {
+ Field field = (Field)getter.getMember();
+ String getMethod = getMethodNameFromFieldName(field.getName(), field.getType().getName());
+
+ boolean foundMethod = false;
+ for(Method method : methods) {
+ if(method.getName().equals(getMethod)) {
+ foundMethod = true;
+ break;
+ }
+ }
+ if(!foundMethod) {
+ logger.info("Inferred method " + getMethod + " does not exist in class " + mappedClassName);
+ //throw new CdmClientCacheException("Inferred method " + getMethod + " does not exist in class " + mappedClassName);
+ }
+ }
+ }
+
+
+ }
+
+ }
+
+ public List<CdmModelFieldPropertyFromClass> getCdmModelGetMethodFromClassList() {
+ cmgmfcList.clear();
+ Configuration configuration = new Configuration().configure(HB_CONFIG_FILE_PATH);
+ configuration.buildMappings();
+ Iterator<PersistentClass> classMappingIterator = configuration.getClassMappings();
+
+ while(classMappingIterator.hasNext()) {
+ PersistentClass persistentClass = classMappingIterator.next();
+ Class mappedClass = persistentClass.getMappedClass();
+ String mappedClassName = mappedClass.getName();
+
+ CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName);
+ Iterator propertyIt = persistentClass.getPropertyIterator();
+
+ while(propertyIt.hasNext())
+ {
+ Property property = (Property)propertyIt.next();
+ Getter getter = property.getGetter(mappedClass);
+ if(getter != null && getter.getMember() != null) {
+ Field field = (Field)getter.getMember();
+ String getMethod = getMethodNameFromFieldName(getter.getMember().getName(),field.getType().getName());
+ cmgmfc.addGetMethods(getMethod);
+ }
+ }
+ cmgmfcList.add(cmgmfc);
+ }
+ return cmgmfcList;
+
+ }
+
+ public static String getMethodNameFromFieldName(String fieldName, String type) {
+ String prefix = type != null && type.toLowerCase().endsWith("boolean") ? "is" : "get";
+ String getMethod = prefix + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
+ return getMethod;
+ }
+
+
+
+
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting.cache;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CdmModelFieldPropertyFromClass implements Serializable {
+
+ private static final long serialVersionUID = 5726395976531887526L;
+ private String className;
+ private String parentClassName;
+
+ private List<String> fields = new ArrayList<String>();
+
+
+ public CdmModelFieldPropertyFromClass(String className) {
+ this.setClassName(className);
+ }
+
+ public String getParentClassName() {
+ return parentClassName;
+ }
+
+ public void setParentClassName(String parentClassName) {
+ this.parentClassName = parentClassName;
+ }
+
+ public List<String> getFields() {
+ return fields;
+ }
+
+ public void setFields(List<String> fields) {
+ this.fields = fields;
+ }
+
+ public void addGetMethods(String getMethod) {
+ this.fields.add(getMethod);
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+
+
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.remoting.cache;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheException;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.config.CacheConfiguration;
+import net.sf.ehcache.config.SizeOfPolicyConfiguration;
+
+import org.apache.log4j.Logger;
+
+
+public class CdmRemoteCacheManager {
+
+ private static final Logger logger = Logger.getLogger(CdmRemoteCacheManager.class);
+
+
+ private Cache cdmlibModelCache;
+
+ private static CdmRemoteCacheManager cdmRemoteCacheManager = null;
+
+ public static final String CDM_MODEL_CACHE_NAME = "cdmModelGetMethodsCache";
+
+ private static Thread initThread;
+
+ private static boolean cacheInitialised = false;
+
+ public enum CdmCacheManagerType {
+ CDMLIB_MODEL,
+ DEFAULT
+ }
+
+ public static CdmRemoteCacheManager getInstance(){
+
+ if(cdmRemoteCacheManager == null) {
+ cdmRemoteCacheManager = new CdmRemoteCacheManager();
+ }
+ return cdmRemoteCacheManager;
+ }
+ private CdmRemoteCacheManager() {
+
+
+ try {
+ // NOTE:Programmatically creating the cache manager may solve the problem of
+ // recreating data written to disk on startup
+ // see https://stackoverflow.com/questions/1729605/ehcache-persist-to-disk-issues
+ //String cacheFilePath = CDMLIB_CACHE_MANAGER_CONFIG_RESOURCE.getFile().getAbsolutePath();
+ //InputStream in = this.getClass().getClassLoader().getResourceAsStream("cdmlib-ehcache.xml");
+
+ SizeOfPolicyConfiguration sizeOfConfig = new SizeOfPolicyConfiguration();
+ sizeOfConfig.setMaxDepth(1000);
+ sizeOfConfig.setMaxDepthExceededBehavior("abort");
+
+ CacheConfiguration modelcc = new CacheConfiguration(CDM_MODEL_CACHE_NAME, 0)
+ .eternal(true)
+ .statistics(true)
+ .sizeOfPolicy(sizeOfConfig)
+ .overflowToOffHeap(false);
+
+ cdmlibModelCache = new Cache(modelcc);
+
+ CacheManager.create().addCache(cdmlibModelCache);
+ initCdmModelCache(cdmlibModelCache);
+
+ } catch (CacheException e) {
+ throw new CdmClientCacheException(e);
+ }
+
+ }
+
+ private void initCdmModelCache(final Cache cache) {
+
+ initThread = new Thread() {
+ @Override
+ public void run(){
+ synchronized (cdmlibModelCache) {
+ CdmModelCacher cmdmc = new CdmModelCacher();
+ cmdmc.cacheGetterFields(cache);
+ cacheInitialised = true;
+ logger.info("Initialisation of CDM getter fields complete");
+ cdmlibModelCache.notify();
+ }
+ }
+
+ };
+ initThread.start();
+ }
+
+ public Cache getCdmModelGetMethodsCache(){
+ //Note : Even though we synchronize this method, the cache can be simply
+ // retrieved using CacheManager.create().getCache(CDM_MODEL_CACHE_NAME)
+ // in which case the cache may not be fully initialised
+ synchronized (cdmlibModelCache) {
+ while(!cacheInitialised) {
+ try {
+ logger.info("Waiting for initialisation of CDM getter fields to complete ...");
+ cdmlibModelCache.wait();
+ } catch (InterruptedException e) {}
+ }
+ }
+ logger.info("CDM getter fields cache initialised");
+ return cdmlibModelCache;
+ }
+
+ public static void removeEntityCaches() {
+ CacheManager cm = CacheManager.create();
+ String[] cacheNames = CacheManager.create().getCacheNames();
+ for(String cacheName : cacheNames) {
+ if(!cacheName.equals(CDM_MODEL_CACHE_NAME)) {
+ cm.removeCache(cacheName);
+ }
+ }
+ }
+
+
+
+}
--- /dev/null
+// $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.remoting.cache;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.Element;
+import net.sf.ehcache.config.CacheConfiguration;
+import net.sf.ehcache.config.SizeOfPolicyConfiguration;
+import net.sf.ehcache.statistics.LiveCacheStatistics;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.model.ICdmCacher;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+
+/**
+ *
+ * This cache guarantees that
+ * - all objects put will be ancestors of CdmBase
+ * - all CdmBase objects in the cache will be already de-proxied
+ * - after any CdmBase object is put in the cache,
+ * all non-null / non-proxy CdmBase objects in the sub-graph
+ * will also be present in the cache.
+ *
+ * @author cmathew
+ * @date 14 Oct 2014
+ *
+ */
+
+public class CdmTransientEntityCacher implements ICdmCacher {
+
+ private static final Logger logger = Logger.getLogger(CdmTransientEntityCacher.class);
+
+
+ private final ICdmEntitySessionManager cdmEntitySessionManager;
+
+ private static CdmServiceCacher cdmServiceCacher;
+
+ private final String cacheId;
+
+ private final Cache cache;
+
+ private final CacheLoader cacheLoader;
+
+
+
+ public CdmTransientEntityCacher(String cacheId, ICdmEntitySessionManager cdmEntitySessionManager) {
+ this.cacheId = cacheId;
+
+ cache = new Cache(getEntityCacheConfiguration(cacheId));
+
+ CacheManager.create().addCache(cache);
+
+ this.cdmEntitySessionManager = cdmEntitySessionManager;
+
+ cacheLoader = new CacheLoader(this);
+ }
+
+ public CdmTransientEntityCacher(Object sessionOwner, ICdmEntitySessionManager cdmEntitySessionManager) {
+ this(generateCacheId(sessionOwner), cdmEntitySessionManager);
+ }
+
+ public static String generateCacheId(Object sessionOwner) {
+ return sessionOwner.getClass().getName() + String.valueOf(sessionOwner.hashCode());
+ }
+
+ /**
+ * Returns the default cache configuration.
+ *
+ * @return
+ */
+ private CacheConfiguration getEntityCacheConfiguration(String cacheId) {
+ SizeOfPolicyConfiguration sizeOfConfig = new SizeOfPolicyConfiguration();
+ sizeOfConfig.setMaxDepth(10000);
+ sizeOfConfig.setMaxDepthExceededBehavior("abort");
+
+ return new CacheConfiguration(cacheId, 0)
+ .eternal(true)
+ .statistics(true)
+ .sizeOfPolicy(sizeOfConfig)
+ .overflowToOffHeap(false);
+
+ }
+
+ public static void setDefaultCacher(CdmServiceCacher css) {
+ cdmServiceCacher = css;
+ }
+
+ public LiveCacheStatistics getCacheStatistics() {
+ return cache.getLiveCacheStatistics();
+ }
+
+ /**
+ * Returns the cache corresponding to the cache id
+ *
+ * @param cacheId
+ * @return
+ */
+ private Cache getCache() {
+ return CacheManager.create().getCache(cacheId);
+ }
+
+ public <T extends Object> T load(T obj, boolean update) {
+ return cacheLoader.load(obj, true, update);
+ }
+
+ public <T extends Object> Map<T,T> load(Map<T,T> map, boolean update){
+ return cacheLoader.load(map, true, update);
+ }
+
+ public <T extends Object> Collection<T> load(Collection<T> collection, boolean update){
+ return cacheLoader.load(collection, true, update);
+ }
+
+ public CdmBase load(CdmBase cdmEntity, boolean update) {
+ return cacheLoader.load(cdmEntity, true, update);
+ }
+
+ public CdmModelFieldPropertyFromClass getFromCdmlibModelCache(String className) {
+ return cacheLoader.getFromCdmlibModelCache(className);
+ }
+
+
+
+
+ @Override
+ public void put(CdmBase cdmEntity) {
+
+ CdmBase cachedCdmEntity = cdmServiceCacher.load(cdmEntity);
+ if(cachedCdmEntity != null) {
+ logger.info("Cdm Entity with id : " + cdmEntity.getId() + " already exists in permanent cache. Ignoring put.");
+ return;
+ }
+ CdmEntityCacheKey id = new CdmEntityCacheKey(cdmEntity);
+
+ cachedCdmEntity = getFromCache(id);
+ if(cachedCdmEntity == null) {
+ getCache().put(new Element(id, cdmEntity));
+ logger.info(" - object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + " put in cache");
+ return;
+ }
+ logger.info(" - object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + " already exists");
+ }
+
+
+ private Element getCacheElement(CdmEntityCacheKey key) {
+ return getCache().get(key);
+ }
+
+
+ public CdmBase getFromCache(CdmEntityCacheKey id) {
+ Element e = getCacheElement(id);
+
+ if (e == null) {
+ return null;
+ } else {
+ return (CdmBase) e.getObjectValue();
+ }
+ }
+
+ public CdmBase getFromCache(Class<? extends CdmBase> clazz, int id) {
+ CdmEntityCacheKey cacheId = generateKey(clazz,id);
+ return getFromCache(cacheId);
+ }
+
+ @Override
+ public CdmBase getFromCache(CdmBase cdmBase) {
+
+ CdmEntityCacheKey cacheId = generateKey((CdmBase)ProxyUtils.deproxy(cdmBase));
+ // first try this cache
+ CdmBase cachedCdmEntity = getFromCache(cacheId);
+
+ if(cachedCdmEntity == null) {
+ // ... then try the permanent cache
+ cachedCdmEntity = cdmServiceCacher.getFromCache(cdmBase.getUuid());
+ }
+
+ return cachedCdmEntity;
+ }
+
+ public CdmBase getFromCache(CdmBase cdmBase, Class<? extends CdmBase> clazz) {
+
+ cdmBase = CdmBase.deproxy(cdmBase, clazz);
+ return getFromCache(cdmBase);
+ }
+
+ public List<CdmBase> getAllEntities() {
+ List<CdmBase> entities = new ArrayList<CdmBase>();
+ Map<String, CdmBase> elementsMap = getCache().getAllWithLoader(getCache().getKeys(), null);
+ for (Map.Entry<String, CdmBase> entry : elementsMap.entrySet()) {
+ entities.add(entry.getValue());
+ }
+ return entities;
+ }
+
+ public boolean exists(CdmEntityCacheKey key) {
+ return (getCacheElement(key) != null);
+ }
+
+ public boolean existsAndIsNotNull(CdmEntityCacheKey id) {
+ return getFromCache(id) != null;
+ }
+
+ public void clear() {
+ cache.removeAll();
+ }
+
+ public void dispose() {
+ cache.dispose();
+
+ }
+
+
+ public static CdmEntityCacheKey generateKey(Class<? extends CdmBase> clazz, int id) {
+ return new CdmEntityCacheKey(clazz, id);
+ }
+
+
+ public static CdmEntityCacheKey generateKey(CdmBase cdmBase) {
+ Class<? extends CdmBase> entityClass = cdmBase.getClass();
+ int id = cdmBase.getId();
+ return new CdmEntityCacheKey(entityClass, id);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.ICdmCacher#load(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public CdmBase load(CdmBase cdmEntity) {
+ return load(cdmEntity, true);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.ICdmCacher#isCachable(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public boolean isCachable(CdmBase cdmEntity) {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.ICdmCacher#exists(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public boolean exists(CdmBase cdmBase) {
+ return exists(generateKey(cdmBase));
+ }
+
+
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.cache;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.Element;
+
+import org.apache.log4j.Logger;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.hibernate.proxy.HibernateProxy;
+import org.hibernate.proxy.LazyInitializer;
+import org.springframework.util.ReflectionUtils;
+
+import eu.etaxonomy.cdm.api.cache.CdmCacher;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 9 Feb 2015
+ *
+ */
+public class EntityCacherDebugResult {
+
+ private static final Logger logger = Logger.getLogger(EntityCacherDebugResult.class);
+
+ private Map<CdmEntityInfo, CdmEntityInfo> duplicateCdmEntityMap;
+
+ private List<CdmEntityInfo> notInCacheList;
+
+ private CdmTransientEntityCacher cacher;
+
+ private List<CdmEntityInfo> rootElements;
+
+ StringBuilder debugOutput = new StringBuilder();
+
+ public EntityCacherDebugResult() {
+ }
+
+
+ public <T extends CdmBase> EntityCacherDebugResult(CdmTransientEntityCacher cacher, List<T> rootEntities) {
+ this.cacher = cacher;
+ init();
+
+ if(rootEntities != null && !rootEntities.isEmpty()) {
+ for(CdmBase rootEntity : rootEntities) {
+ debug(rootEntity, true);
+ String out = toString(duplicateCdmEntityMap, notInCacheList, rootEntity);
+ System.out.println(out);
+ debugOutput.append(out);
+ clear();
+ }
+
+ }
+ }
+
+ private void init() {
+ duplicateCdmEntityMap = new HashMap<CdmEntityInfo, CdmEntityInfo>();
+ notInCacheList = new ArrayList<CdmEntityInfo>();
+ rootElements = new ArrayList<CdmEntityInfo>();
+ }
+
+ private void clear() {
+ duplicateCdmEntityMap.clear();
+ notInCacheList.clear();
+ }
+
+ public void addDuplicateEntity(CdmEntityInfo cei, CdmEntityInfo cachedCei) {
+ duplicateCdmEntityMap.put(cei, cachedCei);
+ }
+
+ public void addEntityNotInCache(CdmEntityInfo cei) {
+ notInCacheList.add(cei);
+ }
+
+ public List<CdmEntityInfo> getRootElements() {
+ return rootElements;
+ }
+
+ private void print(Map<CdmEntityInfo, CdmEntityInfo> duplicateCdmEntityMap,
+ List<CdmEntityInfo> notInCacheList,
+ CdmBase rootEntity) {
+ System.out.println(toString(duplicateCdmEntityMap, notInCacheList, rootEntity));
+ }
+
+
+ @Override
+ public String toString() {
+ return debugOutput.toString();
+ }
+
+ private String toString(Map<CdmEntityInfo, CdmEntityInfo> duplicateCdmEntityMap,
+ List<CdmEntityInfo> notInCacheList,
+ CdmBase rootEntity) {
+
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(System.getProperty("line.separator"));
+ sb.append("<<< Root Entity " + rootEntity.getUserFriendlyTypeName() + " with id " + rootEntity.getId() + " >>>");
+ sb.append(System.getProperty("line.separator"));
+ if(duplicateCdmEntityMap.isEmpty()) {
+ sb.append("No Duplicate CDM Entities.");
+ } else {
+ sb.append("Duplicate CDM Entities,");
+
+ for (Map.Entry<CdmEntityInfo, CdmEntityInfo> entry : duplicateCdmEntityMap.entrySet())
+ {
+ sb.append(System.getProperty("line.separator"));
+ CdmEntityInfo cei = entry.getKey();
+ CdmBase cb = (CdmBase) cei.getObject();
+ Object cbParent = cei.getParent().getObject();
+
+
+ sb.append(" - " + cei.getField().getName() + ":" + cb.getUserFriendlyTypeName() + "/" + cb.getId() +
+ " in entity " + cbParent.getClass().getCanonicalName());
+ if(cbParent instanceof CdmBase) {
+ sb.append(" with id : " + ((CdmBase)cbParent).getId());
+ }
+ sb.append(System.getProperty("line.separator"));
+ sb.append(" -- entity belongs to cache(s) : " + getCachesContainingEntity(cb));
+ sb.append(System.getProperty("line.separator"));
+
+
+ CdmEntityInfo dupCei = entry.getValue();
+ CdmBase dupCb = (CdmBase) dupCei.getObject();
+ Object dupCbParent = dupCei.getParent().getObject();
+
+ sb.append(" - " + dupCei.getField().getName() + ":" + dupCb.getUserFriendlyTypeName() + "/" + dupCb.getId() +
+ " in entity " + dupCbParent.getClass().getCanonicalName());
+ if(dupCbParent instanceof CdmBase) {
+ sb.append(" with id : " + ((CdmBase)dupCbParent).getId());
+ }
+ sb.append(System.getProperty("line.separator"));
+ sb.append(" -- entity belongs to cache(s) : " + getCachesContainingEntity(dupCb));
+ sb.append(System.getProperty("line.separator"));
+ sb.append("-----------");
+ }
+ }
+
+ sb.append(System.getProperty("line.separator"));
+ sb.append(System.getProperty("line.separator"));
+
+ if(notInCacheList.isEmpty()) {
+ sb.append("No Entities found which are not in Cache.");
+ } else {
+ sb.append("Not In Cache Entities,");
+
+ for(CdmEntityInfo cei : notInCacheList) {
+ CdmBase cb = (CdmBase) cei.getObject();
+ Object cbParent = cei.getParent().getObject();
+
+ sb.append(System.getProperty("line.separator"));
+
+ String fieldName = "";
+ if(cei.getField() != null) {
+ fieldName = cei.getField().getName();
+ }
+ sb.append(" - " + fieldName + ":" + cb.getUserFriendlyTypeName() + "/" + cb.getId());
+
+ if(cbParent instanceof CdmBase) {
+ sb.append(" of entity " + ((CdmBase)cbParent).getUserFriendlyTypeName());
+ } else {
+ sb.append(" of entity " + cbParent.getClass().getName());
+ }
+ }
+ }
+ sb.append(System.getProperty("line.separator"));
+ return sb.toString();
+ }
+
+ private String getCachesContainingEntity(CdmBase cdmEntity) {
+ Cache defaultCache = CacheManager.create().getCache(CdmCacher.DEFAULT_CACHE_NAME);
+ String caches = "";
+ Element dce = defaultCache.get(cdmEntity.getUuid());
+ if(dce != null && dce.getObjectValue() == cdmEntity) {
+ caches = "{DC}";
+ }
+
+ Object cte = cacher.getFromCache(CdmTransientEntityCacher.generateKey(cdmEntity));
+ if(cte != null && cte == cdmEntity) {
+ caches += "{TC}";
+ }
+ return caches;
+ }
+
+
+ private void debug(CdmBase cdmEntity, boolean recursive) {
+ if(cdmEntity == null) {
+ return;
+ }
+ logger.info("---- starting recursive debug for cdm entity " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId());
+ List<CdmEntityInfo> alreadyVisitedEntities = new ArrayList<CdmEntityInfo>();
+ CdmEntityInfo cei = new CdmEntityInfo(cdmEntity);
+ debugRecursive(cdmEntity, alreadyVisitedEntities, cei);
+ rootElements.add(cei);
+ alreadyVisitedEntities.clear();
+ logger.info("---- ending recursive debug for cdm entity " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + "\n");
+ }
+
+ private <T extends Object> void debugRecursive(T obj,
+ List<CdmEntityInfo> alreadyVisitedEntities,
+ CdmEntityInfo cei) {
+ if(obj == null) {
+ return;
+ }
+ if(obj instanceof CdmBase) {
+ debugRecursive((CdmBase)obj, alreadyVisitedEntities, cei);
+ } else if (obj instanceof Map) {
+ debug((Map<T,T>)obj, alreadyVisitedEntities, cei);
+ } else if (obj instanceof Collection) {
+ debug((Collection<T>)obj, alreadyVisitedEntities, cei);
+ }
+
+ logger.info("No caching yet for type " + obj.getClass().getName());
+
+
+ }
+
+ private <T extends Object> void debug(Map<T,T> map,
+ List<CdmEntityInfo> alreadyVisitedEntities,
+ CdmEntityInfo cei) {
+ if(map == null || map.isEmpty()) {
+ return;
+ }
+
+ int originalMapSize = map.size();
+
+ Iterator<Map.Entry<T,T>> iter = map.entrySet().iterator();
+ int i=0;
+ while ( iter.hasNext() ) {
+ Map.Entry<T,T> e = iter.next();
+ CdmEntityInfo childCei = new CdmEntityInfo(e);
+ cei.addChild(childCei);
+ debugRecursive(e.getKey(), alreadyVisitedEntities, childCei);
+ debugRecursive(e.getValue(), alreadyVisitedEntities, childCei);
+ }
+ }
+
+ private <T extends Object> void debug(Collection<T> collection,
+ List<CdmEntityInfo> alreadyVisitedEntities,
+ CdmEntityInfo cei) {
+ int length = collection.size();
+ Object[] result = new Object[length];
+ Iterator<T> collectionItr = collection.iterator();
+
+ while(collectionItr.hasNext()) {
+ Object obj = collectionItr.next();
+ CdmEntityInfo childCei = new CdmEntityInfo(obj);
+ cei.addChild(childCei);
+ debugRecursive(obj, alreadyVisitedEntities, childCei);
+
+ }
+
+ }
+
+ private void debugRecursive(CdmBase cdmEntity,
+ List<CdmEntityInfo> alreadyVisitedEntities,
+ CdmEntityInfo cei) {
+
+ CdmBase cachedCdmEntityInSubGraph = null;
+
+ if(cei.getObject() instanceof CdmBase) {
+ CdmBase cb = (CdmBase)cei.getObject();
+ cachedCdmEntityInSubGraph = cacher.getFromCache(cb);
+ if(cachedCdmEntityInSubGraph != cb) {
+ // found a cdm entity which is not in cache - need to record this
+ //logger.info(" - found entity not in cache " + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId());
+ addEntityNotInCache(cei);
+ }
+ }
+
+
+ // we want to recursive through the cdmEntity (and not the cachedCdmEntity)
+ // since there could be new or deleted objects in the cdmEntity sub-graph
+
+ // start by getting the fields from the cdm entity
+ String className = cdmEntity.getClass().getName();
+ CdmModelFieldPropertyFromClass cmgmfc = cacher.getFromCdmlibModelCache(className);
+ if(cmgmfc != null) {
+ alreadyVisitedEntities.add(cei);
+ List<String> fields = cmgmfc.getFields();
+ for(String field : fields) {
+ // retrieve the actual object corresponding to the field.
+ // this object will be either a CdmBase or a Collection / Map
+ // with CdmBase as the generic type
+ String f = field;
+ CdmEntityInfo childCei = getDebugCdmBaseTypeFieldValue(cdmEntity, field, alreadyVisitedEntities, cei);
+ if(!childCei.isProxy()) {
+ Object object = childCei.getObject();
+ if(object != null && object instanceof CdmBase) {
+ CdmBase cdmEntityInSubGraph = (CdmBase)object;
+ if(!containsIdenticalCdmEntity(alreadyVisitedEntities, cdmEntityInSubGraph)) {
+ logger.info("recursive debugging object of type " + cdmEntityInSubGraph.getClass().getName() + " with id " + cdmEntityInSubGraph.getId());
+ debugRecursive(cdmEntityInSubGraph, alreadyVisitedEntities, childCei);
+ } else {
+ logger.info("object of type " + cdmEntityInSubGraph.getClass().getName() + " with id " + cdmEntityInSubGraph.getId() + " already visited");
+ }
+ }
+ }
+ }
+ } else {
+ throw new CdmClientCacheException("CdmEntity with class " + cdmEntity.getClass().getName() + " is not found in the cdmlib model cache. " +
+ "The cache may be corrupted or not in sync with the latest model version" );
+ }
+
+ }
+
+
+ private CdmEntityInfo getDebugCdmBaseTypeFieldValue(CdmBase cdmEntity,
+ String fieldName,
+ List<CdmEntityInfo> alreadyVisitedEntities,
+ CdmEntityInfo cei) {
+
+ CdmEntityInfo childCei = null;
+ Class<?> clazz = cdmEntity.getClass();
+ try {
+ // this call will search in the provided class as well as
+ // the super classes until it finds the field
+ Field field = ReflectionUtils.findField(clazz, fieldName);
+
+ if(field == null) {
+ throw new CdmClientCacheException("Field '" + fieldName
+ + "' not found when searching in class '" + clazz.getName() + "' and its supercalsses");
+ }
+ field.setAccessible(true);
+ Object o = field.get(cdmEntity);
+
+ CdmBase cdmEntityInSubGraph = null;
+
+ boolean isHibernateProxy = false;
+ boolean isPersistentCollection = false;
+
+ childCei = new CdmEntityInfo(o);
+ cei.addChild(childCei);
+ childCei.setField(field);
+
+ if(o != null) {
+
+ if(o instanceof HibernateProxy) {
+ isHibernateProxy = true;
+ }
+
+ if(o instanceof PersistentCollection) {
+ isPersistentCollection = true;
+ }
+ childCei.setObject(o);
+ childCei.setProxy(isHibernateProxy || isPersistentCollection);
+ if(!isHibernateProxy && !isPersistentCollection) {
+
+ if(CdmBase.class.isAssignableFrom(o.getClass())) {
+ logger.info("found initialised cdm entity '" + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId());
+ cdmEntityInSubGraph = (CdmBase)o;
+
+ //logger.info(" - found duplicate entity at " + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId());
+ CdmEntityInfo dupCei = getDuplicate(alreadyVisitedEntities, cdmEntityInSubGraph);
+ if(dupCei != null) {
+ addDuplicateEntity(childCei, dupCei);
+ }
+
+ } else if(o instanceof Map) {
+ debugRecursive((Map)o, alreadyVisitedEntities, childCei);
+ } else if(o instanceof Collection) {
+ debugRecursive((Collection)o, alreadyVisitedEntities, childCei);
+ }
+
+ }
+ }
+ // we return the original cdm entity in the sub graph because we
+ // want to continue to recurse on the input cdm entity graph
+ // and not the one in the cache
+
+ return childCei;
+ } catch (SecurityException e) {
+ throw new CdmClientCacheException(e);
+ } catch (IllegalArgumentException e) {
+ throw new CdmClientCacheException(e);
+ } catch (IllegalAccessException e) {
+ throw new CdmClientCacheException(e);
+ }
+ }
+
+
+ private CdmEntityInfo getDuplicate(List<CdmEntityInfo> alreadyVisitedEntities, Object objectToCompare) {
+ if(objectToCompare != null ) {
+ for(CdmEntityInfo cei: alreadyVisitedEntities) {
+ if(objectToCompare.equals(cei.getObject()) && objectToCompare != cei.getObject()) {
+ return cei;
+ }
+ }
+ }
+ return null;
+ }
+
+ private boolean containsIdenticalCdmEntity(List<CdmEntityInfo> ceiSet, Object objectToCompare) {
+ boolean foundIdentical = false;
+ if(objectToCompare != null) {
+ for(CdmEntityInfo cei : ceiSet) {
+ if(cei.getObject() == objectToCompare) {
+ foundIdentical = true;
+ } else if(objectToCompare.equals(cei.getObject())) {
+ return false;
+ }
+ }
+ }
+ return foundIdentical;
+ }
+
+ public class CdmEntityInfo {
+
+ private Object object;
+ private CdmEntityInfo parent;
+ private List<CdmEntityInfo> children;
+ private Field field;
+ private String label;
+ private boolean isProxy;
+
+ public CdmEntityInfo(Object object) {
+ this.object = object;
+ isProxy = false;
+ children = new ArrayList<CdmEntityInfo>();
+ }
+
+ public CdmEntityInfo getParent() {
+ return parent;
+ }
+
+ public void setParent(CdmEntityInfo parent) {
+ this.parent = parent;
+ }
+
+ public List<CdmEntityInfo> getChildren() {
+ return children;
+ }
+
+ public void setChildren(List<CdmEntityInfo> children) {
+ this.children = children;
+ }
+
+ public void addChild(CdmEntityInfo cei) {
+ this.children.add(cei);
+ cei.setParent(this);
+ }
+
+ public Field getField() {
+ return field;
+ }
+
+ public void setField(Field field) {
+ this.field = field;
+ }
+
+
+ public String getLabel() {
+ String label;
+ String fieldName = "";
+ if(field != null) {
+ fieldName = field.getName();
+ }
+
+ if(object != null) {
+ String className = object.getClass().getName();
+ if(object instanceof HibernateProxy) {
+ LazyInitializer hli = ((HibernateProxy)object).getHibernateLazyInitializer();
+ if(hli.isUninitialized()) {
+ className = "HibernateProxy";
+ } else {
+ className = "InitialisedHibernateProxy";
+ }
+ label = "[" + className + "] " + fieldName;
+ } else if(object instanceof PersistentCollection) {
+ PersistentCollection pc = ((PersistentCollection)object);
+ if(!pc.wasInitialized()) {
+ className = "PersistentCollection";
+ } else {
+ className = "InitialisedPersistentCollection";
+ }
+ label = "[" + className + "] " + fieldName;
+ } else if(object instanceof Collection) {
+ label = "[" + className + "] " + fieldName + " : " + String.valueOf(((Collection)object).size());
+ } else if(object instanceof Map) {
+
+ label = "[" + className + "] " + fieldName + " : " + String.valueOf(((Map)object).size());
+ } else if(object instanceof CdmBase) {
+ label = getCachesContainingEntity((CdmBase)object) + "[" + className + ",id" + ((CdmBase)object).getId() + "] " + fieldName + " : " + object.toString();
+ } else {
+ label = "[" + className + "] " + fieldName + " : " + object.toString();
+ }
+ } else {
+ label = "[NULL] " + fieldName;
+ }
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public Object getObject() {
+ return object;
+ }
+
+ public void setObject(Object object) {
+ this.object = object;
+ }
+
+ public boolean isProxy() {
+ return isProxy;
+ }
+
+ public void setProxy(boolean isProxy) {
+ this.isProxy = isProxy;
+ }
+
+
+
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.cache;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.hibernate.collection.internal.PersistentList;
+import org.hibernate.collection.internal.PersistentMap;
+import org.hibernate.collection.internal.PersistentSet;
+import org.hibernate.collection.internal.PersistentSortedMap;
+import org.hibernate.collection.internal.PersistentSortedSet;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.hibernate.proxy.HibernateProxy;
+import org.hibernate.proxy.LazyInitializer;
+import org.springframework.util.ReflectionUtils;
+
+import eu.etaxonomy.cdm.model.common.PersistentMultiLanguageText;
+import eu.etaxonomy.taxeditor.remoting.CdmRemotingException;
+
+/**
+ * @author cmathew
+ * @date 17 Feb 2015
+ *
+ */
+public class ProxyUtils {
+
+
+
+ public static enum CollectionType {
+ SET,
+ LIST,
+ MAP;
+
+ @Override
+ public String toString() {
+ return this.name().toLowerCase();
+ }
+ }
+
+ public static Object getCollectionType(Object obj) {
+ if(obj != null) {
+ if(obj instanceof List) {
+ return CollectionType.LIST;
+ }
+ if(obj instanceof Set) {
+ return CollectionType.SET;
+ }
+ if(obj instanceof Map) {
+ return CollectionType.MAP;
+ }
+ throw new CdmRemotingException("Cannot get Collection Type for " + obj.getClass().getName());
+ }
+ return null;
+ }
+
+ public static Object getObject(PersistentCollection pc) {
+ if(pc != null) {
+ if(pc instanceof PersistentSet) {
+ return new HashSet((Set)pc);
+ }
+ if(pc instanceof PersistentSortedSet) {
+ return new TreeSet((Set)pc);
+ }
+ if(pc instanceof PersistentList) {
+ return new ArrayList((List)pc);
+ }
+ if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
+ return new HashMap((Map)pc);
+ }
+ if(pc instanceof PersistentSortedMap) {
+ return new TreeMap((Map)pc);
+ }
+ throw new CdmRemotingException("Cannot get Collection field for type " + pc.getClass().getName());
+ }
+ return null;
+ }
+
+ public static CollectionField getCollectionField(PersistentCollection pc) {
+ if(pc != null) {
+ if(pc instanceof PersistentSet) {
+ return new CollectionField(new HashSet((Set)pc), CollectionType.SET);
+ }
+ if(pc instanceof PersistentSortedSet) {
+ return new CollectionField(new TreeSet((Set)pc), CollectionType.SET);
+ }
+ if(pc instanceof PersistentList) {
+ return new CollectionField(new ArrayList((List)pc), CollectionType.LIST);
+ }
+ if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
+ return new CollectionField(new HashMap((Map)pc), CollectionType.MAP);
+ }
+ if(pc instanceof PersistentSortedMap) {
+ return new CollectionField(new TreeMap((Map)pc), CollectionType.MAP);
+ }
+ throw new CdmRemotingException("Cannot get Collection field for type " + pc.getClass().getName());
+ }
+ return null;
+ }
+
+ public static class CollectionField {
+ private final Object col;
+ private final CollectionType type;
+ public CollectionField(Object col, CollectionType type) {
+ this.col = col;
+ this.type = type;
+ }
+
+ public Object getCollection() {
+ return this.col;
+ }
+
+ public CollectionType getType() {
+ return this.type;
+ }
+ }
+
+
+ public static Object deproxy(Object o) {
+ if(o != null && o instanceof HibernateProxy) {
+ LazyInitializer hli = ((HibernateProxy)o).getHibernateLazyInitializer();
+ if(!hli.isUninitialized()) {
+ return hli.getImplementation();
+
+ }
+ }
+
+ if(o != null && o instanceof PersistentCollection) {
+ PersistentCollection pc = ((PersistentCollection)o);
+ if(pc.wasInitialized()) {
+ return ProxyUtils.getObject(pc);
+
+ }
+ }
+ return o;
+ }
+
+ public static boolean isProxy(Object o) {
+ if(o != null && o instanceof HibernateProxy) {
+ LazyInitializer hli = ((HibernateProxy)o).getHibernateLazyInitializer();
+ if(hli.isUninitialized()) {
+ return true;
+ }
+ }
+
+ if(o != null && o instanceof PersistentCollection) {
+ PersistentCollection pc = ((PersistentCollection)o);
+ if(!pc.wasInitialized()) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static void setRoleValueInOwner(Object owner, String role, Object value) {
+ if(role == null || role.isEmpty()) {
+ throw new CdmRemotingException("Role cannot be null or an empty string");
+ }
+
+ String fieldName = role.substring(role.lastIndexOf(".") + 1);
+
+ Field field = ReflectionUtils.findField(owner.getClass(), fieldName);
+
+ if(field == null) {
+ throw new CdmRemotingException("Field '" + fieldName
+ + "' not found when searching in class '" + owner.getClass() + "' and its supercalsses");
+ }
+
+ field.setAccessible(true);
+
+ try {
+ field.set(owner, value);
+ } catch (IllegalArgumentException e) {
+ throw new CdmRemotingException(e);
+ } catch (IllegalAccessException e) {
+ throw new CdmRemotingException(e);
+ }
+ }
+
+}
--- /dev/null
+// $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.remoting.server;
+
+/**
+ * @author cmathew
+ * @date 23 Sep 2014
+ *
+ */
+public class CDMServerException extends Exception {
+
+ public CDMServerException(String message) {
+ super(message);
+ }
+
+ public CDMServerException(Exception e) {
+ super(e);
+ }
+
+ public CDMServerException(String message,Exception e) {
+ super(message,e);
+ }
+
+}
/**
* 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.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
import static eu.etaxonomy.cdm.common.XmlHelp.getBeansRoot;
import static eu.etaxonomy.cdm.common.XmlHelp.insertXmlBean;
import eu.etaxonomy.cdm.common.XmlHelp;
import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
import eu.etaxonomy.cdm.config.CdmPersistentXMLSource;
-import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.config.ICdmPersistentSource;
import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
-import eu.etaxonomy.cdm.database.CdmDataSource;
-import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
-import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.cdm.database.types.IDatabaseType;
+import eu.etaxonomy.cdm.config.ICdmPersistentSource;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
/**
*/
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
+ * @throws CdmRemoteSourceException
*/
public static CdmPersistentRemoteSource NewInstance(String remoteSource) throws CdmRemoteSourceException {
if(exists(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
+ * @throws CdmRemoteSourceException
*/
- private CdmPersistentRemoteSource(String remoteSource) 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
+ // 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");
+ 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");
- }
+ 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");
- }
+ 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())) {
+ if(!cdmSourceProperties.containsKey(CdmSourceProperties.NOMENCLATURAL_CODE.toString())) {
cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), NomenclaturalCode.ICNAFP.name());
- }
+ }
}
/* (non-Javadoc)
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()));
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());
checkProperties(cdmSourceProperties);
return save(strRemoteSourceName, cdmSourceProperties);
}
-
+
private static CdmPersistentRemoteSource save(String strRemoteSourceName,Properties cdmSourceProperties) throws CdmRemoteSourceException {
//root
}
//save
- saveToXml(root.getDocument(),
- CdmPersistentSourceUtils.getResourceDirectory(),
- CdmPersistentXMLSource.CDMSOURCE_FILE_NAME,
+ saveToXml(root.getDocument(),
+ CdmPersistentSourceUtils.getResourceDirectory(),
+ CdmPersistentXMLSource.CDMSOURCE_FILE_NAME,
XmlHelp.prettyFormat );
return NewInstance(strRemoteSourceName) ;
}
-
+
/**
* @param strDataSourceName
* @param dataSource
- * @param code
+ * @param code
* @return
* the updated dataSource, null if not succesful
*/
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.
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
+ * @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)){
}
return remoteSources;
}
-
+
@Override
public String toString(){
if (getName() != null){
* 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;
+package eu.etaxonomy.taxeditor.remoting.source;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
/**
* 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.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
import java.util.Map;
import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean;
-import eu.etaxonomy.cdm.api.service.IDatabaseService;
+import eu.etaxonomy.cdm.api.service.IUserService;
import eu.etaxonomy.cdm.config.CdmSource;
import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
/**
- * Base class representing a CDM remote source.
+ * Base class representing a CDM remote source.
* This class handles all the configuration relating to the remoting aspect of
* a CDM source.
*
protected static final NomenclaturalCode DEFAULT_NOMENCLATURAL_CODE = NomenclaturalCode.ICNAFP;
private String contextPath;
private String baseUrl;
-
- private IDatabaseService databaseService;
-
+
+ private IUserService userService;
+
/**
* Constructs a CdmRemoteSourceBase object with default values.
- *
+ *
*/
protected CdmRemoteSourceBase() {
setName(DEFAULT_NAME);
setContextPath(DEFAULT_CONTEXT_PATH);
setNomenclaturalCode(DEFAULT_NOMENCLATURAL_CODE);
}
-
+
/**
* Constructs a CdmRemoteSourceBase
- *
+ *
* @param name
* @param server
* @param port
* @param contextPath
* @param nomenclaturalCode
*/
- protected CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ public CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
setName(name);
setServer(server);
setPort(port);
setContextPath(contextPath);
- setNomenclaturalCode(nomenclaturalCode);
+ 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
+ // 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.setServiceInterface(IUserService.class);
+ // FIXME:Remoting need to fix this hardcoded url and make it configurable somehow
+ proxy.setServiceUrl(baseUrl + "/remoting-public/user.service");
proxy.afterPropertiesSet();
- databaseService = (IDatabaseService) proxy.getObject();
+ userService = (IUserService) proxy.getObject();
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getBaseUrl()
*/
}
/**
- * Sets the base url for the http-invoker services as listed in
+ * 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
+ * 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) {
/**
* Sets the context path.
- * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the
+ * 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) {
*/
@Override
public String getDbSchemaVersion() throws CdmSourceException {
- return databaseService.getDbSchemaVersion();
+ return userService.getDbSchemaVersion();
}
*/
@Override
public boolean isDbEmpty() throws CdmSourceException {
- return databaseService.isDbEmpty();
+ return userService.isDbEmpty();
}
*/
@Override
public boolean checkConnection() throws CdmSourceException {
- // assuming that database service works implies
+ // assuming that database service works implies
// the connection is up
- // if no exception is thrown then we assume that the
+ // if no exception is thrown then we assume that the
// connection is up
// FIXME:Remoting is this really correct?
- databaseService.getDbSchemaVersion();
+ userService.getDbSchemaVersion();
return true;
}
return "Conncting to Remote CDM Server " + getName();
}
-
+
@Override
public Map<MetaDataPropertyName, String> getMetaDataMap() throws CdmSourceException {
- return databaseService.getCdmMetadataMap();
+ return userService.getCdmMetadataMap();
}
/**
*
*/
-package eu.etaxonomy.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
/**
*
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.source;
+
+import java.io.IOException;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.util.EntityUtils;
+import org.apache.log4j.Logger;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.taxeditor.remoting.server.CDMServerException;
+
+/**
+ * @author cmathew
+ * @date 20 Jan 2015
+ *
+ */
+public class CdmServerInfo {
+ public static final Logger logger = Logger.getLogger(CdmServerInfo.class);
+
+ private final static String NAME_PRODUCTION = "edit-production";
+ private final static String SERVER_PRODUCTION = "dev.e-taxonomy.eu";
+
+ private final static String NAME_INTEGRATION = "edit-integration";
+ private final static String SERVER_INTEGRATION = "int.e-taxonomy.eu";
+
+ private final static String NAME_TEST = "edit-test";
+ private final static String SERVER_TEST = "test.e-taxonomy.eu";
+
+ private final static String SERVER_LOCALHOST = "localhost";
+ private final static String NAME_LOCALHOST = "localhost";
+ private final static String NAME_LOCALHOST_MGD = "localhost mgd.";
+
+ private final static String NAME_LOCALHOST_DEV = "localhost-dev";
+ private final static String NAME_INSTANCE_LOCALHOST_DEV = "local-dev";
+ private final static String SERVER_LOCALHOST_DEV = "localhost";
+ private final static int PORT_LOCALHOST_DEV = 8080;
+ private final static String BASEPATH_LOCALHOST_DEV = "";
+
+ private final String name;
+ private final String server;
+ private final int port;
+ private final List<CdmInstanceInfo> instances;
+
+
+ public CdmServerInfo(String name, String server, int port) {
+ this.name = name;
+ this.server = server;
+ this.port = port;
+ instances = new ArrayList<CdmInstanceInfo>();
+ }
+
+
+ public CdmInstanceInfo addInstance(String name, String basePath) {
+ CdmInstanceInfo cii = new CdmInstanceInfo(name, basePath);
+ instances.add(cii);
+ return cii;
+
+ }
+
+ public void refreshInstances() throws CDMServerException {
+ String url = "http://" + server + ":" + String.valueOf(port) + "/cdmserver/instances.jsp";
+
+ HttpClient client = new DefaultHttpClient();
+ HttpGet httpGet = new HttpGet(url);
+
+ logger.info("Executing request " + httpGet.getRequestLine());
+
+ // Create a custom response handler
+ ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
+
+ @Override
+ public String handleResponse(
+ final HttpResponse response) throws ClientProtocolException, IOException {
+ int status = response.getStatusLine().getStatusCode();
+ if (status >= 200 && status < 300) {
+ HttpEntity entity = response.getEntity();
+ return entity != null ? EntityUtils.toString(entity) : null;
+ } else {
+ throw new ClientProtocolException("Unexpected response status: " + status);
+ }
+ }
+
+ };
+ String responseBody = null;
+ try {
+ responseBody = client.execute(httpGet, responseHandler);
+ } catch (ClientProtocolException e) {
+ throw new CDMServerException(e);
+ } catch (IOException e) {
+ throw new CDMServerException(e);
+ }
+
+
+ if(responseBody != null) {
+ try {
+ JSONArray array = new JSONArray(responseBody);
+ for(int i=0;i<array.length();i++) {
+ JSONObject instance = (JSONObject)array.get(i);
+ if(instance != null) {
+ JSONObject conf = (JSONObject)instance.get("configuration");
+ if(conf != null) {
+ String instanceName = conf.getString("instanceName");
+ // we need to remove the first (char) forward slash from
+ // the base path
+ String basePath = conf.getString("basePath").substring(1);
+ addInstance(instanceName, basePath);
+ logger.info("Added instance with name : " + instanceName + ", basePath : " + basePath);
+ }
+ }
+ }
+ } catch (JSONException e) {
+ throw new CDMServerException(e);
+ }
+ }
+
+ }
+
+ public CdmInstanceInfo getInstanceFromName(String instanceName) {
+ if(instanceName == null) {
+ return null;
+ }
+
+ for(CdmInstanceInfo instance : instances) {
+ if(instance.getName() != null && instance.getName().equals(instanceName)) {
+ return instance;
+ }
+ }
+ return null;
+ }
+
+ public ICdmRemoteSource getCdmRemoteSource(CdmInstanceInfo instance) {
+ if(instance != null) {
+ return CdmRemoteSource.NewInstance(name,
+ server,
+ port,
+ instance.getBasePath(),
+ null);
+ }
+ return null;
+ }
+
+ public boolean pingServer(){
+ try {
+ Socket s = new Socket(server, port);
+ logger.info("[CDM-Server] Available @ " + server + ":" + port );
+ return true;
+ } catch (IOException ioe) {
+
+ }
+ return false;
+ }
+
+ public boolean pingInstance(CdmInstanceInfo instance) throws CDMServerException {
+
+ ICdmRemoteSource crs = getCdmRemoteSource(instance);
+ try {
+ if(crs != null && crs.checkConnection()) {
+ logger.info("[CDM-Server] Running @ " + server + ":" + port + " for instance " + instance);
+ return true;
+ }
+ } catch (CdmSourceException e) {
+ throw new CDMServerException(e);
+ }
+
+ return false;
+ }
+
+ public static List<CdmServerInfo> getCdmServers() {
+ List<CdmServerInfo> cdmServerInfoList = new ArrayList<CdmServerInfo>();
+ cdmServerInfoList.add(new CdmServerInfo(NAME_PRODUCTION, SERVER_PRODUCTION, 80));
+ cdmServerInfoList.add(new CdmServerInfo(NAME_INTEGRATION, SERVER_INTEGRATION, 80));
+ cdmServerInfoList.add(new CdmServerInfo(NAME_TEST, SERVER_TEST, 80));
+ cdmServerInfoList.add(new CdmServerInfo(NAME_LOCALHOST, SERVER_LOCALHOST, 8080));
+ cdmServerInfoList.add(new CdmServerInfo(NAME_LOCALHOST_MGD, SERVER_LOCALHOST,8080));
+ return cdmServerInfoList;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getServer() {
+ return server;
+ }
+
+
+ public int getPort() {
+ return port;
+ }
+
+
+ public List<CdmInstanceInfo> getInstances() throws CDMServerException {
+ if(instances.isEmpty()) {
+ refreshInstances();
+ }
+ return instances;
+ }
+
+ public static ICdmRemoteSource getDevServerRemoteSource() {
+ String value=System.getProperty("cdm.server.dev.activate");
+ boolean available = false;
+ CdmInstanceInfo devInstance = null;
+ if(value != null && value.equals("true")) {
+ CdmServerInfo devCii = new CdmServerInfo(NAME_LOCALHOST_DEV, SERVER_LOCALHOST_DEV, PORT_LOCALHOST_DEV);
+ try {
+ devInstance = devCii.addInstance(NAME_INSTANCE_LOCALHOST_DEV, BASEPATH_LOCALHOST_DEV);
+ available = devCii.pingInstance(devInstance);
+ if(available) {
+ return devCii.getCdmRemoteSource(devInstance);
+ }
+ } catch (Exception e) {
+
+ }
+ }
+ return null;
+ }
+
+ public class CdmInstanceInfo {
+ private final String name;
+ private final String basePath;
+
+
+ public CdmInstanceInfo(String name, String basePath) {
+ this.name = name;
+ this.basePath = basePath;
+ }
+
+
+ public String getName() {
+ return name;
+ }
+
+ public String getBasePath() {
+ return basePath;
+ }
+ }
+}
* 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;
+package eu.etaxonomy.taxeditor.remoting.source;
import eu.etaxonomy.cdm.config.ICdmSource;
--- /dev/null
+// $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.service;
+
+import org.hibernate.collection.spi.PersistentCollection;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.remoting.cache.ProxyUtils.CollectionField;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+
+/**
+ * @author cmathew
+ * @date 14 Oct 2014
+ *
+ */
+@Component
+public class CachedCommonServiceImpl implements ICachedCommonService {
+
+
+ @Autowired
+ private ICommonService commonService;
+
+ private static boolean cacheEnabled = true;
+
+ @Autowired
+ private ICdmEntitySessionManager cdmEntitySessionManager;
+
+
+ public static boolean isCacheEnabled() {
+ return cacheEnabled;
+ }
+
+ public static void setCacheEnabled(boolean cacheEnabled) {
+ CachedCommonServiceImpl.cacheEnabled = cacheEnabled;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#find(java.lang.Class, int)
+ */
+ @Override
+ public CdmBase find(Class<? extends CdmBase> clazz, int id) {
+ if(cacheEnabled) {
+ CdmBase cdmEntity = CdmBase.deproxy(commonService.find(clazz, id),clazz);
+ if(cdmEntity == null) {
+ throw new NullPointerException("CDM Entity of type " + clazz.getName() + " with id " + id + " is null.");
+ }
+ return cdmEntitySessionManager.load(cdmEntity, false);
+ } else {
+ return CdmBase.deproxy(commonService.find(clazz, id),clazz);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#initializeCollection(org.hibernate.collection.spi.PersistentCollection)
+ */
+ @Override
+ public PersistentCollection initializeCollection(PersistentCollection col) {
+ return commonService.initializeCollection(col);
+ }
+
+ @Override
+ public void updatePersistentCollection(CollectionField colf) {
+ if(cacheEnabled) {
+ cdmEntitySessionManager.load(colf.getCollection(), false);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#isEmpty(org.hibernate.collection.spi.PersistentCollection)
+ */
+ @Override
+ public boolean isEmpty(PersistentCollection col) {
+ return commonService.isEmpty(col);
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#size(org.hibernate.collection.spi.PersistentCollection)
+ */
+ @Override
+ public int size(PersistentCollection col) {
+ return commonService.size(col);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#get(org.hibernate.collection.spi.PersistentCollection, int)
+ */
+ @Override
+ public Object get(PersistentCollection col, int index) {
+ return commonService.get(col, index);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#contains(org.hibernate.collection.spi.PersistentCollection, java.lang.Object)
+ */
+ @Override
+ public boolean contains(PersistentCollection col, Object element) {
+ return commonService.contains(col, element);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#containsKey(org.hibernate.collection.spi.PersistentCollection, java.lang.Object)
+ */
+ @Override
+ public boolean containsKey(PersistentCollection col, Object key) {
+ return commonService.containsKey(col, key);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#containsValue(org.hibernate.collection.spi.PersistentCollection, java.lang.Object)
+ */
+ @Override
+ public boolean containsValue(PersistentCollection col, Object element) {
+ return commonService.containsValue(col, element);
+ }
+
+
+
+
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.service;
+
+import java.io.IOException;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor;
+import org.springframework.remoting.httpinvoker.HttpInvokerClientConfiguration;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+
+/**
+ * @author cmathew
+ * @date 27 Jan 2015
+ *
+ */
+public class CdmAuthenticatedHttpInvokerRequestExecutor extends CommonsHttpInvokerRequestExecutor {
+
+ @Override
+ protected PostMethod createPostMethod(HttpInvokerClientConfiguration config) throws IOException {
+ PostMethod postMethod = super.createPostMethod(config);
+
+ Authentication auth =
+ SecurityContextHolder.getContext().getAuthentication();
+
+ if ((auth != null) && (auth.getName() != null) &&
+ (auth.getCredentials() != null)) {
+ String base64 = auth.getName() + ":" + auth.getCredentials().toString();
+ postMethod.setRequestHeader("Authorization", "Basic " +
+ new String(Base64.encodeBase64(base64.getBytes())));
+ }
+
+ return postMethod;
+ }
+}
\ No newline at end of file
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+public class CdmServiceInterceptorException extends RuntimeException {
+
+ public CdmServiceInterceptorException(String message) {
+ super(message);
+ }
+
+ public CdmServiceInterceptorException(Exception ex) {
+ super(ex);
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.remoting.httpinvoker.HttpInvokerClientConfiguration;
+import org.springframework.remoting.support.RemoteInvocation;
+import org.springframework.remoting.support.RemoteInvocationResult;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+
+@Component
+public class CdmServiceRequestExecutor extends CdmAuthenticatedHttpInvokerRequestExecutor {
+
+ @Autowired
+ private ICdmEntitySessionManager cdmEntitySessionManager;
+
+ private RemoteInvocation currentRemoteInvocation;
+
+ @Override
+ protected void writeRemoteInvocation(RemoteInvocation invocation, OutputStream os) throws IOException {
+ currentRemoteInvocation = invocation;
+ super.writeRemoteInvocation(invocation, os);
+ }
+
+ @Override
+ protected RemoteInvocationResult doExecuteRequest(HttpInvokerClientConfiguration config,
+ java.io.ByteArrayOutputStream baos)
+ throws java.io.IOException,
+ java.lang.ClassNotFoundException {
+ RemoteInvocationResult rir = fromCache(currentRemoteInvocation);
+
+ // if rir is not null at this point we assume that the
+ // the object has already been loaded in the cache and
+ // does not need to be reloaded
+
+ if(rir == null) {
+ rir = super.doExecuteRequest(config, baos);
+ if(rir.getValue() != null && !rir.hasException()) {
+ if(currentRemoteInvocation.getMethodName().equals("merge")) {
+ rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
+ } else if(rir.getValue() instanceof UpdateResult){
+ UpdateResult result = (UpdateResult)rir.getValue();
+ if(result.isOk()){
+ cdmEntitySessionManager.load(result.getUpdatedObjects(), true);
+ }
+ } else {
+ rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), false));
+ }
+ }
+ cache(currentRemoteInvocation, rir);
+ }
+ currentRemoteInvocation = null;
+
+ return rir;
+ }
+
+ public void cache(RemoteInvocation ri, RemoteInvocationResult rir) {
+
+ }
+
+ public RemoteInvocationResult fromCache(RemoteInvocation ri) {
+ return null;
+ }
+}
--- /dev/null
+// $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.service;
+
+import org.hibernate.collection.spi.PersistentCollection;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.remoting.cache.ProxyUtils.CollectionField;
+
+/**
+ * @author cmathew
+ * @date 14 Oct 2014
+ *
+ */
+public interface ICachedCommonService {
+
+ public CdmBase find(Class<? extends CdmBase> clazz, int id);
+
+ public PersistentCollection initializeCollection(PersistentCollection col);
+
+ public void updatePersistentCollection(CollectionField colf);
+
+ public boolean isEmpty(PersistentCollection col);
+
+ public int size(PersistentCollection col);
+
+ public Object get(PersistentCollection col, int index);
+
+ public boolean contains(PersistentCollection col, Object element);
+
+ public boolean containsKey(PersistentCollection col, Object key);
+
+ public boolean containsValue(PersistentCollection col, Object element);
+
+
+
+
+}
\ No newline at end of file
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.springframework.remoting.support.RemoteInvocation;
+import org.springframework.remoting.support.RemoteInvocationResult;
+
+import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
+
+
+public class TermServiceRequestExecutor extends CdmServiceRequestExecutor {
+ private static final Logger logger = Logger.getLogger(TermServiceRequestExecutor.class);
+
+ private static Map<TermType, RemoteInvocationResult> termTypeMap = new
+ HashMap<TermType, RemoteInvocationResult>();
+
+ private static CdmServiceCacher cdmServiceCacher;
+
+ public static void setDefaultCacher(CdmServiceCacher css) {
+ cdmServiceCacher = css;
+ }
+
+ @Override
+ public void cache(RemoteInvocation ri, RemoteInvocationResult rir) {
+ if(cdmServiceCacher != null) {
+ if(ri.getMethodName().equals("listByTermType")) {
+ if(ri.getArguments()[1] == null) {
+ Set<DefinedTermBase> terms = new HashSet<DefinedTermBase>();
+ if(rir.getValue() != null) {
+ terms.addAll((List<DefinedTermBase>)rir.getValue());
+
+ for(DefinedTermBase<?> term : terms) {
+ cdmServiceCacher.put(term.getUuid(), term);
+ }
+ termTypeMap.put((TermType)ri.getArguments()[0], rir);
+ }
+
+ }
+ }
+ } else {
+ logger.info("Default CdmServiceCacher is null. Cannot cache terms");
+ }
+ }
+
+
+ @Override
+ public RemoteInvocationResult fromCache(RemoteInvocation ri) {
+ return termTypeMap.get(ri.getArguments()[0]);
+ }
+
+
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.session;
+
+public class CdmClientSessionException extends RuntimeException {
+
+ public CdmClientSessionException(String message) {
+ super(message);
+ }
+}
--- /dev/null
+// $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.session;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import net.sf.ehcache.statistics.LiveCacheStatistics;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
+
+
+/**
+ *
+ * NOTE : It would be nice to have this class performing merge / delete operations
+ * using services, but this is only possible if we can 'intelligently'
+ * get from a model class to the correspoding service class
+ * @author cmathew
+ * @date 20 Oct 2014
+ *
+ */
+
+public class CdmEntitySession implements ICdmEntitySession {
+
+ private static final Logger logger = Logger.getLogger(CdmEntitySession.class);
+
+ private final CdmEntitySessionManager cdmEntitySessionManager;
+
+ private final ICdmEntitySessionEnabled sessionOwner;
+
+ private final CdmTransientEntityCacher cdmTransientEntityCacher;
+
+ private final List<ICdmEntitySessionEnabled> changeObservers;
+
+ private final Set<CdmBase> newCdmEntities;
+
+
+
+ public CdmEntitySession(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
+ this.sessionOwner = sessionOwner;
+ this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner, cdmEntitySessionManager);
+ this.cdmEntitySessionManager = cdmEntitySessionManager;
+ this.changeObservers = new ArrayList<ICdmEntitySessionEnabled>();
+ this.newCdmEntities = new HashSet<CdmBase>();
+ cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
+ CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.lang.Object, boolean)
+ */
+ @Override
+ public <O extends Object> O load(O obj, boolean update) {
+ return cdmTransientEntityCacher.load(obj, update);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.model.common.CdmBase, boolean)
+ */
+ @Override
+ public <T extends CdmBase> T load(T cdmBase, boolean update) {
+ return (T)cdmTransientEntityCacher.load(cdmBase, update);
+ }
+
+ @Override
+ public <T extends CdmBase> void update() {
+ List<T> rootEntities = getRootEntities();
+ if(rootEntities != null) {
+ for(T rootEntity : rootEntities) {
+ load(rootEntity, true);
+ }
+ }
+ }
+
+// @Override
+// public <T extends ICdmBase> void update(T cdmBase, Set<CdmBase> affectedObjects) {
+// addEvent(cdmBase, affectedObjects, EventType.UPDATE);
+// }
+//
+// @Override
+// public <T extends ICdmBase> void update(T cdmBase, CdmBase affectedObject) {
+// Set<CdmBase> set = new HashSet<CdmBase>();
+// set.add(affectedObject);
+// addEvent(cdmBase, set, EventType.UPDATE);
+// }
+//
+//
+// @Override
+// public <T extends ICdmBase> void delete(T cdmBase, Set<CdmBase> affectedObjects) {
+// addEvent(cdmBase, affectedObjects, EventType.DELETE);
+// }
+//
+// @Override
+// public <T extends ICdmBase> void delete(Set<T> cdmBases, Set<CdmBase> affectedObjects) {
+// addEvent(cdmBases, affectedObjects, EventType.DELETE);
+// }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase) {
+ return debug(Arrays.asList(cdmBase));
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(java.util.List)
+ */
+ @Override
+ public <T extends CdmBase> EntityCacherDebugResult debug(List<T> cdmBases) {
+ EntityCacherDebugResult entityCacherDebugResult =
+ new EntityCacherDebugResult(cdmTransientEntityCacher, cdmBases);
+ return entityCacherDebugResult;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug()
+ */
+ @Override
+ public <T extends CdmBase> EntityCacherDebugResult debug() {
+ return debug(getRootEntities());
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.Collection)
+ */
+ @Override
+ public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
+ return cdmTransientEntityCacher.load(cdmBaseList, update);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#setEntitiesAsLatest()
+ */
+ @Override
+ public void setEntitiesAsLatest() {
+ //FIXME:Remoting need to think more about whether we really need this
+ // List<CdmBase> entities = cdmTransientEntityCacher.getAllEntities();
+ // for(CdmBase entity : entities) {
+ // cdmEntitySessionManager.setEntityAsLatest(entity);
+ // }
+ }
+
+
+ @Override
+ public void bind() {
+ logger.info("Binding session with owner " + sessionOwner.toString());
+ cdmEntitySessionManager.bind(sessionOwner);
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#dispose()
+ */
+ @Override
+ public void dispose() {
+
+ cdmTransientEntityCacher.dispose();
+// for(ICdmEntitySessionEnabled observer : changeObservers) {
+// CdmPostDataChangeObservableListener.getDefault().unregister(observer);
+// }
+ changeObservers.clear();
+ cdmEntitySessionManager.remove(sessionOwner);
+ CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
+ }
+
+
+// /* (non-Javadoc)
+// * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#commit()
+// */
+// @Override
+// public void addEvent(ICdmBase cdmBase, Set<CdmBase> affectedObjects, EventType eventType) {
+// affectedObjects = (Set<CdmBase>) load(affectedObjects, true);
+// CdmDataChangeEvent cdce = CdmDataChangeEvent.NewInstance((CdmBase)cdmBase, affectedObjects, eventType);
+// CdmPostDataChangeObservableListener.getDefault().notifyObservers(cdce);
+// }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.UUID, java.lang.Class)
+ */
+ @Override
+ public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid) {
+ T cdmBase = service.load(uuid);
+ return load(cdmBase, false);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.api.service.IService, java.util.UUID, java.util.List)
+ */
+ @Override
+ public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths) {
+ T cdmBase = service.load(uuid, propertyPaths);
+ return load(cdmBase, false);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#save(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase) {
+ UUID uuid = service.save(cdmBase);
+ load(cdmBase,false);
+ return uuid;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#update(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase) {
+ T mergedCdmBase = service.merge(cdmBase);
+ return mergedCdmBase;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#isActive()
+ */
+ @Override
+ public boolean isActive() {
+ return cdmEntitySessionManager.getActiveSession() == this;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getOwner()
+ */
+ @Override
+ public ICdmEntitySessionEnabled getOwner() {
+ return sessionOwner;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getNoOfObjectsInCache()
+ */
+ @Override
+ public LiveCacheStatistics getCacheStatistics() {
+ return cdmTransientEntityCacher.getCacheStatistics();
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getRootEntities()
+ */
+ @Override
+ public <T extends CdmBase> List<T> getRootEntities() {
+ return sessionOwner.getRootEntities();
+ }
+
+ public CdmTransientEntityCacher getCacher() {
+ return cdmTransientEntityCacher;
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+// $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.session;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 16 Oct 2014
+ *
+ */
+@Component
+public class CdmEntitySessionManager implements ICdmEntitySessionManager {
+ private static final Logger logger = Logger.getLogger(CdmEntitySessionManager.class);
+
+ private final Map<ICdmEntitySessionEnabled, ICdmEntitySession> ownerSessionMap =
+ new HashMap<ICdmEntitySessionEnabled, ICdmEntitySession>();
+
+ private final List<ICdmEntitySessionManagerObserver> sessionObservers = new ArrayList<ICdmEntitySessionManagerObserver>();
+
+ private ICdmEntitySession activeSession;
+
+
+
+ @Override
+ public ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive) {
+ ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
+ if(session == null) {
+ session = new CdmEntitySession(sessionOwner, this);
+ addToOwnerSessionMap(sessionOwner, session);
+
+ }
+
+ if(setAsActive) {
+ setActiveSession(session);
+
+ }
+
+ return session;
+ }
+
+ @Override
+ public ICdmEntitySession getActiveSession() {
+ return activeSession;
+ }
+
+ private void setActiveSession(ICdmEntitySession activeSession) {
+ this.activeSession = activeSession;
+ notifyObservers();
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getSessions()
+ */
+ @Override
+ public Collection<ICdmEntitySession> getSessions() {
+ return ownerSessionMap.values();
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bind(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+ */
+ @Override
+ public void bind(ICdmEntitySessionEnabled sessionOwner) {
+ if(sessionOwner == null) {
+ setActiveSession(null);
+ return;
+ }
+ ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
+ if(session == null) {
+ session = newSession(sessionOwner,true);
+ }
+
+ setActiveSession(session);
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
+ */
+ @Override
+ public <T extends Object> T load(T obj, boolean update) {
+ if(activeSession == null) {
+ return obj;
+ } else {
+ return activeSession.load(obj, update);
+ }
+ }
+
+
+ @Override
+ public <T extends CdmBase> void update() {
+ if(activeSession != null) {
+ activeSession.update();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
+ */
+ @Override
+ public <T extends CdmBase> T load(T cdmBase, boolean update) {
+ if(activeSession == null) {
+ return cdmBase;
+ }
+ return activeSession.load(cdmBase, update);
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(java.util.Collection)
+ */
+ @Override
+ public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
+ if(activeSession == null) {
+ return cdmBaseList;
+ }
+ return activeSession.load(cdmBaseList, update);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+ */
+ void remove(ICdmEntitySessionEnabled owner) {
+ ICdmEntitySession session = ownerSessionMap.get(owner);
+ if(session == null) {
+ logger.info("No Session connected to owner, nothing to do");
+ return;
+ }
+ if(session == activeSession) {
+ setActiveSession(null);
+ }
+ ownerSessionMap.remove(owner);
+
+ }
+
+ @Override
+ public void dispose(ICdmEntitySessionEnabled owner) {
+ ICdmEntitySession session = ownerSessionMap.get(owner);
+ if(session != null) {
+ session.dispose();
+ }
+ notifyObservers();
+ }
+
+ @Override
+ public void disposeAll() {
+ Set<ICdmEntitySessionEnabled> owners =
+ new HashSet<ICdmEntitySessionEnabled>(ownerSessionMap.keySet());
+ for(ICdmEntitySessionEnabled owner : owners) {
+ ICdmEntitySession session = ownerSessionMap.get(owner);
+ if(session != null) {
+ session.dispose();
+ }
+ }
+ notifyObservers();
+ }
+
+ void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
+ ownerSessionMap.put(owner, session);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#addSessionListener()
+ */
+ @Override
+ public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver) {
+ sessionObservers.add(sessionObserver);
+ }
+
+ public void notifyObservers() {
+ for(ICdmEntitySessionManagerObserver sessionObserver : sessionObservers) {
+ sessionObserver.changed();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#isRemoting()
+ */
+ @Override
+ public boolean isRemoting() {
+ // FIXME:Remoting stupid method to check whether we are in remoting
+ return true;
+ }
+
+
+}
+
--- /dev/null
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+
+import net.sf.ehcache.statistics.LiveCacheStatistics;
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
+
+public interface ICdmEntitySession {
+
+ public ICdmEntitySessionEnabled getOwner();
+
+ public LiveCacheStatistics getCacheStatistics();
+
+ public <O extends Object> O load(O obj, boolean update);
+
+ public <T extends CdmBase> T load(T cdmBase, boolean update);
+
+ public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase);
+
+ public <T extends CdmBase> EntityCacherDebugResult debug(List<T> cdmBase);
+
+ public <T extends CdmBase> EntityCacherDebugResult debug();
+
+ public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update);
+
+ public void setEntitiesAsLatest();
+
+ public <T extends CdmBase> List<T> getRootEntities();
+
+ public void dispose();
+
+ public void bind();
+
+// public void addEvent(ICdmBase cdmBase, Set<CdmBase> affectedObjects, EventType eventType);
+
+ public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid);
+
+ public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths);
+
+ public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase);
+
+ public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase);
+
+
+// /**
+// * @param cdmBase
+// * @param affectedObjects
+// */
+// public <T extends ICdmBase> void update(T cdmBase, Set<CdmBase> affectedObjects);
+//
+// /**
+// * @param cdmBase
+// * @param affectedObjects
+// */
+// public <T extends ICdmBase> void delete(T cdmBase, Set<CdmBase> affectedObjects);
+//
+// /**
+// * @param cdmBase
+// * @param affectedObjects
+// */
+// public <T extends ICdmBase> void delete(Set<T> cdmBases, Set<CdmBase> affectedObjects);
+
+
+ public boolean isActive();
+
+// /**
+// * @param cdmBase
+// * @param affectedObject
+// */
+// public <T extends ICdmBase> void update(T cdmBase, CdmBase affectedObject);
+
+ /**
+ *
+ */
+ public <T extends CdmBase> void update();
+
+
+
+
+}
\ No newline at end of file
--- /dev/null
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.List;
+
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+public interface ICdmEntitySessionEnabled extends ICdmChangeListener {
+
+ public ICdmEntitySession getCdmEntitySession();
+
+ public <T extends CdmBase> List<T> getRootEntities();
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+public interface ICdmEntitySessionManager {
+
+ public abstract ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive);
+
+ public abstract void bind(ICdmEntitySessionEnabled sessionOwner);
+
+
+ public abstract <T extends Object> T load(T obj, boolean update);
+
+
+ public abstract <T extends CdmBase> T load(T cdmBase, boolean update);
+
+
+ public abstract <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update);
+
+
+ /**
+ * @return
+ */
+ public ICdmEntitySession getActiveSession();
+
+ public Collection<ICdmEntitySession> getSessions();
+
+ public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver);
+
+
+
+
+ public boolean isRemoting();
+
+ /**
+ * @param owner
+ */
+ public void dispose(ICdmEntitySessionEnabled owner);
+
+ /**
+ *
+ */
+ public void disposeAll();
+
+
+ /**
+ *
+ */
+ public <T extends CdmBase> void update();
+
+
+}
\ No newline at end of file
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.session;
+
+/**
+ * @author cmathew
+ * @date 16 Feb 2015
+ *
+ */
+public interface ICdmEntitySessionManagerObserver {
+
+ public void changed();
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.session.mock;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+
+import net.sf.ehcache.statistics.LiveCacheStatistics;
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+
+/**
+ * @author cmathew
+ * @date 29 Jan 2015
+ *
+ */
+public class MockCdmEntitySession implements ICdmEntitySession {
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.lang.Object)
+ */
+ @Override
+ public <O extends Object> O load(O obj, boolean update) {
+ return obj;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> T load(T cdmBase, boolean update) {
+ return cdmBase;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.Collection)
+ */
+ @Override
+ public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
+ return cdmBaseList;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#setEntitiesAsLatest()
+ */
+ @Override
+ public void setEntitiesAsLatest() {
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#dispose()
+ */
+ @Override
+ public void dispose() {
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#bind()
+ */
+ @Override
+ public void bind() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase) {
+
+ return new EntityCacherDebugResult();
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.UUID, eu.etaxonomy.cdm.api.service.IService)
+ */
+ @Override
+ public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid) {
+ return service.load(uuid);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.api.service.IService, java.util.UUID, java.util.List)
+ */
+ @Override
+ public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths) {
+ return service.load(uuid, propertyPaths);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#save(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase) {
+ return service.save(cdmBase);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#update(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase) {
+ return cdmBase;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getOwner()
+ */
+ @Override
+ public ICdmEntitySessionEnabled getOwner() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getCacheStatistics()
+ */
+ @Override
+ public LiveCacheStatistics getCacheStatistics() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#isActive()
+ */
+ @Override
+ public boolean isActive() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getRootEntities()
+ */
+ @Override
+ public <T extends CdmBase> List<T> getRootEntities() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(java.util.List)
+ */
+ @Override
+ public <T extends CdmBase> EntityCacherDebugResult debug(List<T> cdmBase) {
+
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug()
+ */
+ @Override
+ public <T extends CdmBase> EntityCacherDebugResult debug() {
+
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#update()
+ */
+ @Override
+ public <T extends CdmBase> void update() {
+ // TODO Auto-generated method stub
+
+ }
+
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.session.mock;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
+
+
+public class MockCdmEntitySessionManager implements ICdmEntitySessionManager {
+
+
+ @Override
+ public void bind(ICdmEntitySessionEnabled sessionOwner) {
+ }
+
+ @Override
+ public <T> T load(T obj, boolean update) {
+ return obj;
+ }
+
+ @Override
+ public <T extends CdmBase> T load(T obj, boolean update) {
+ return obj;
+ }
+
+
+ @Override
+ public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
+ return cdmBaseList;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#newSession(eu.etaxonomy.taxeditor.session.ISessionEventListener, boolean)
+ */
+ @Override
+ public ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive) {
+ return new MockCdmEntitySession();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getActiveSession()
+ */
+ @Override
+ public ICdmEntitySession getActiveSession() {
+ return new MockCdmEntitySession();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getSessions()
+ */
+ @Override
+ public Collection<ICdmEntitySession> getSessions() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#addSessionObserver(eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver)
+ */
+ @Override
+ public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver) {
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#isRemoting()
+ */
+ @Override
+ public boolean isRemoting() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled)
+ */
+ @Override
+ public void dispose(ICdmEntitySessionEnabled owner) {
+
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#disposeAll()
+ */
+ @Override
+ public void disposeAll() {
+
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#update()
+ */
+ @Override
+ public <T extends CdmBase> void update() {
+ // TODO Auto-generated method stub
+
+ }
+
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.util;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+
+import org.apache.log4j.Logger;
+import org.hibernate.cfg.Configuration;
+
+import eu.etaxonomy.taxeditor.remoting.cache.CdmModelCacher;
+
+/**
+ * @author cmathew
+ * @date 27 May 2015
+ *
+ */
+public class Serializer {
+ private static final Logger logger = Logger.getLogger(Serializer.class);
+
+
+ public static String HB_CONFIG_SER_FILE_NAME = "hibernate.cfg.ser";
+
+ public static boolean checkDir(String dirString) {
+ if(dirString == null || dirString.isEmpty()) {
+ logger.warn("Directory not set or set to empty string");
+ return false;
+ }
+
+ File dir = new File(dirString);
+
+ if(!dir.exists()) {
+ logger.warn("Directory does not exist");
+ return false;
+ }
+
+ return true;
+
+ }
+ public static void serializeHbConfig() {
+
+ Configuration configuration = CdmModelCacher.buildConfiguration();
+ String hbConfigDir = System.getProperty("hb.config.dir");
+ if(checkDir(hbConfigDir)) {
+ try {
+ FileOutputStream fileOut = new FileOutputStream(hbConfigDir + File.separator + HB_CONFIG_SER_FILE_NAME);
+ ObjectOutputStream out = new ObjectOutputStream(fileOut);
+ out.writeObject(configuration);
+ out.close();
+ fileOut.close();
+ logger.info("Serialized configuration object");
+ } catch(IOException i) {
+ i.printStackTrace();
+ }
+ }
+ }
+
+ public static void main(String[] args) {
+ serializeHbConfig();
+
+ }
+
+}
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.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;
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
+import eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException;
+import eu.etaxonomy.taxeditor.remoting.cache.ProxyUtils;
+import eu.etaxonomy.taxeditor.service.ICachedCommonService;
/**
* Base class implementing {@link org.hibernate.collection.spi.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 String sessionFactoryUuid;
private boolean specjLazyLoad = false;
- public final String getRole() {
+ @Override
+ public final String getRole() {
return role;
}
- public final Serializable getKey() {
+ @Override
+ public final Serializable getKey() {
return key;
}
- public final boolean isUnreferenced() {
+ @Override
+ public final boolean isUnreferenced() {
return role == null;
}
- public final boolean isDirty() {
+ @Override
+ public final boolean isDirty() {
return dirty;
}
- public final void clearDirty() {
+ @Override
+ public final void clearDirty() {
dirty = false;
}
- public final void dirty() {
+ @Override
+ public final void dirty() {
dirty = true;
}
- public final Serializable getStoredSnapshot() {
+ @Override
+ public final Serializable getStoredSnapshot() {
return storedSnapshot;
}
/**
* Is the initialized collection empty?
*/
- public abstract boolean empty();
+ @Override
+ public abstract boolean empty();
/**
* Called by any read-only method of the collection interface
else {
// In remoting we are sure that session is null
// both when using property paths and switching off conversations
- if(session == null && remoting) {
+ if(session == null && remoting) {
log.info("--> readSize, of " + getRole() + " with key " + getKey());
- read();
+ read();
} else {
boolean isExtraLazy = withTemporarySessionIfNeeded(
new LazyInitializationWork<Boolean>() {
.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
// multiple transactions.
( ( Session) session ).beginTransaction();
}
-
+
session.getPersistenceContext().addUninitializedDetachedCollection(
session.getFactory().getCollectionPersister( getRole() ),
this
if ( !initialized ) {
// In remoting we are sure that session is null
// both when using property paths and switching off conversations
- if(session == null && remoting) {
+ if(session == null && remoting) {
log.info("--> readIndexExistence, of " + getRole() + " with key " + getKey());
- read();
+ read();
} else {
Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
new LazyInitializationWork<Boolean>() {
// both when using property paths and switching off conversations
if(session == null && remoting) {
log.info("--> readElementExistence, of " + getRole() + " with key " + getKey());
- read();
-
+ read();
+
} else {
Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
new LazyInitializationWork<Boolean>() {
if ( !initialized ) {
// In remoting we are sure that session is null
// both when using property paths and switching off conversations
- if(session == null && remoting) {
+ if(session == null && remoting) {
log.info("--> readElementByIndex, of " + getRole() + " with key " + getKey());
- read();
-
+ read();
+
} else {
class ExtraLazyElementByIndexReader implements LazyInitializationWork {
private boolean isExtraLazy;
/**
* After flushing, re-init snapshot state.
*/
- public void setSnapshot(Serializable key, String role, Serializable snapshot) {
+ @Override
+ 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() {
+ @Override
+ public void postAction() {
operationQueue = null;
cachedSize = -1;
clearDirty();
/**
* return the user-visible collection (or array) instance
*/
- public Object getValue() {
+ @Override
+ public Object getValue() {
return this;
}
/**
* Called just before reading any rows from the JDBC result set
*/
- public void beginRead() {
+ @Override
+ public void beginRead() {
// override on some subclasses
initializing = true;
}
/**
* Called after reading all rows from the JDBC result set
*/
- public boolean endRead() {
+ @Override
+ public boolean endRead() {
//override on some subclasses
return afterInitialize();
}
- public boolean afterInitialize() {
+ @Override
+ public boolean afterInitialize() {
setInitialized();
//do this bit after setting initialized to true or it will recurse
if ( operationQueue != null ) {
* @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;
- }
- }
- );
+ if ( initialized ) {
+ return;
+ }
+
+ // In remoting we are sure that session is null
+ // both when using property paths and switching off conversations
+ if(session == null && remoting) {
+ remoteInitialize();
+ } else {
+ withTemporarySessionIfNeeded(
+ new LazyInitializationWork<Object>() {
+ @Override
+ public Object doWork() {
+ session.initializeCollection( AbstractPersistentCollection.this, writing );
+ return null;
+ }
+ }
+ );
+ }
}
private void throwLazyInitializationExceptionIfNotConnected() {
* Could the application possibly have a direct reference to
* the underlying collection implementation?
*/
- public boolean isDirectlyAccessible() {
+ @Override
+ public boolean isDirectlyAccessible() {
return directlyAccessible;
}
*
* @return true if this was currently associated with the given session
*/
- public final boolean unsetSession(SessionImplementor currentSession) {
+ @Override
+ public final boolean unsetSession(SessionImplementor currentSession) {
prepareForPossibleSpecialSpecjInitialization();
if ( currentSession == this.session ) {
this.session = null;
* @throws HibernateException if the collection was already associated
* with another open session
*/
- public final boolean setCurrentSession(SessionImplementor session) throws HibernateException {
+ @Override
+ public final boolean setCurrentSession(SessionImplementor session) throws HibernateException {
if ( session == this.session ) {
return false;
}
/**
* Do we need to completely recreate this collection when it changes?
*/
- public boolean needsRecreate(CollectionPersister persister) {
+ @Override
+ public boolean needsRecreate(CollectionPersister persister) {
return false;
}
* To be called internally by the session, forcing
* immediate initialization.
*/
- public final void forceInitialization() throws HibernateException {
+ @Override
+ public final void forceInitialization() throws HibernateException {
if ( !initialized ) {
if ( initializing ) {
throw new AssertionFailure( "force initialize loading collection" );
/**
* Is this instance initialized?
*/
- public final boolean wasInitialized() {
+ @Override
+ public final boolean wasInitialized() {
return initialized;
}
- public boolean isRowUpdatePossible() {
+ @Override
+ public boolean isRowUpdatePossible() {
return true;
}
/**
* Does this instance have any "queued" additions?
*/
- public final boolean hasQueuedOperations() {
+ @Override
+ public final boolean hasQueuedOperations() {
return operationQueue != null;
}
/**
* Iterate the "queued" additions
*/
- public final Iterator queuedAdditionIterator() {
+ @Override
+ public final Iterator queuedAdditionIterator() {
if ( hasQueuedOperations() ) {
return new Iterator() {
int i = 0;
- public Object next() {
+ @Override
+ public Object next() {
return operationQueue.get( i++ ).getAddedInstance();
}
- public boolean hasNext() {
+ @Override
+ public boolean hasNext() {
return i < operationQueue.size();
}
- public void remove() {
+ @Override
+ public void remove() {
throw new UnsupportedOperationException();
}
};
/**
* Iterate the "queued" additions
*/
- @SuppressWarnings({"unchecked"})
+ @Override
+ @SuppressWarnings({"unchecked"})
public final Collection getQueuedOrphans(String entityName) {
if ( hasQueuedOperations() ) {
Collection additions = new ArrayList( operationQueue.size() );
* Called before inserting rows, to ensure that any surrogate keys
* are fully generated
*/
- public void preInsert(CollectionPersister persister) throws HibernateException {
+ @Override
+ 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 {
+ @Override
+ 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;
+ @Override
+ public abstract Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException;
/**
* Get the current session
this.itr = itr;
}
- public boolean hasNext() {
+ @Override
+ public boolean hasNext() {
return itr.hasNext();
}
- public Object next() {
+ @Override
+ public Object next() {
return itr.next();
}
- public void remove() {
+ @Override
+ public void remove() {
write();
itr.remove();
}
this.itr = itr;
}
- @SuppressWarnings({"unchecked"})
+ @Override
+ @SuppressWarnings({"unchecked"})
public void add(Object o) {
write();
itr.add( o );
}
- public boolean hasNext() {
+ @Override
+ public boolean hasNext() {
return itr.hasNext();
}
- public boolean hasPrevious() {
+ @Override
+ public boolean hasPrevious() {
return itr.hasPrevious();
}
- public Object next() {
+ @Override
+ public Object next() {
return itr.next();
}
- public int nextIndex() {
+ @Override
+ public int nextIndex() {
return itr.nextIndex();
}
- public Object previous() {
+ @Override
+ public Object previous() {
return itr.previous();
}
- public int previousIndex() {
+ @Override
+ public int previousIndex() {
return itr.previousIndex();
}
- public void remove() {
+ @Override
+ public void remove() {
write();
itr.remove();
}
- @SuppressWarnings({"unchecked"})
+ @Override
+ @SuppressWarnings({"unchecked"})
public void set(Object o) {
write();
itr.set( o );
this.set = set;
}
- @SuppressWarnings({"unchecked"})
+ @Override
+ @SuppressWarnings({"unchecked"})
public boolean add(Object o) {
write();
return set.add( o );
}
- @SuppressWarnings({"unchecked"})
+ @Override
+ @SuppressWarnings({"unchecked"})
public boolean addAll(Collection c) {
write();
return set.addAll( c );
}
- public void clear() {
+ @Override
+ public void clear() {
write();
set.clear();
}
- public boolean contains(Object o) {
+ @Override
+ public boolean contains(Object o) {
return set.contains( o );
}
- public boolean containsAll(Collection c) {
+ @Override
+ public boolean containsAll(Collection c) {
return set.containsAll( c );
}
- public boolean isEmpty() {
+ @Override
+ public boolean isEmpty() {
return set.isEmpty();
}
- public Iterator iterator() {
+ @Override
+ public Iterator iterator() {
return new IteratorProxy( set.iterator() );
}
- public boolean remove(Object o) {
+ @Override
+ public boolean remove(Object o) {
write();
return set.remove( o );
}
- public boolean removeAll(Collection c) {
+ @Override
+ public boolean removeAll(Collection c) {
write();
return set.removeAll( c );
}
- public boolean retainAll(Collection c) {
+ @Override
+ public boolean retainAll(Collection c) {
write();
return set.retainAll( c );
}
- public int size() {
+ @Override
+ public int size() {
return set.size();
}
- public Object[] toArray() {
+ @Override
+ public Object[] toArray() {
return set.toArray();
}
- @SuppressWarnings({"unchecked"})
+ @Override
+ @SuppressWarnings({"unchecked"})
public Object[] toArray(Object[] array) {
return set.toArray( array );
}
}
}
- public Object getIdentifier(Object entry, int i) {
+ @Override
+ public Object getIdentifier(Object entry, int i) {
throw new UnsupportedOperationException();
}
- public Object getOwner() {
+ @Override
+ public Object getOwner() {
return owner;
}
- public void setOwner(Object owner) {
+ @Override
+ public void setOwner(Object owner) {
this.owner = owner;
}
/** ------ Below is section of code which makes remote service calls ----- */
- // The affected methods are :
+ // 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;
+ // readElementByIndex(final Object index)
+
+ private static CdmApplicationRemoteConfiguration configuration;
private static boolean remoting = false;
-
- public static void setConfiguration(ICdmApplicationConfiguration conf) {
+
+ public static void setConfiguration(CdmApplicationRemoteConfiguration conf) {
+ remoting = true;
configuration = conf;
-
- if(conf instanceof CdmApplicationRemoteController) {
- remoting = true;
- } else {
- remoting = false;
- }
}
-
-
+
+
private void remoteInitialize() {
-
- if (getOwner() != null && !initialized) {
-
+
+ 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);
+ log.info("--> Remote Lazy Initializing Collection " + 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) {
+ ICachedCommonService cachedCommonService = configuration.getCachedCommonService();
+ if(cachedCommonService == null) {
throw new HibernateException("commonService not initialized (null)");
}
-
- PersistentCollection col = commonService.initializeCollection(this);
+
+ Object obj = ProxyUtils.deproxy(cachedCommonService.initializeCollection(this));
afterInitialize();
Class<?> clazz = getClass();
- if (clazz != null) {
- CollectionField cf = getCollectionField(col);
- Field field = clazz.getDeclaredField(cf.getFieldName());
+ if (clazz != null) {
+ //CollectionField cf = cachedCommonService.getCollectionField(col);
+ //cachedCommonService.updatePersistentCollection(cf);
+ Object collectionType = ProxyUtils.getCollectionType(obj);
+ Field field = clazz.getDeclaredField(collectionType.toString());
field.setAccessible(true);
- field.set(this, cf.getCollection());
- }
+ field.set(this, obj);
+ ProxyUtils.setRoleValueInOwner(owner, role, obj);
+
+ }
} 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");
+ throw new CdmEagerLoadingException(ex);
}
}
- 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;
}
+
+
+
}
package org.hibernate.proxy;
import java.io.Serializable;
-import java.util.Set;
import javax.naming.NamingException;
import org.hibernate.Session;
import org.hibernate.SessionException;
import org.hibernate.TransientObjectException;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
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 org.springframework.beans.factory.annotation.Autowire;
-import org.springframework.beans.factory.annotation.Configurable;
-import org.springframework.stereotype.Component;
-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.api.application.CdmApplicationRemoteConfiguration;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.service.ICachedCommonService;
/**
* Convenience base class for lazy initialization handlers. Centralizes the basic plumbing of doing lazy
*
* @author Gavin King
*/
-@Component
-@Configurable(dependencyCheck = true,autowire = Autowire.BY_TYPE)
public abstract class AbstractLazyInitializer implements LazyInitializer {
private static final Logger log = Logger.getLogger( AbstractLazyInitializer.class );
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
public void setUnwrap(boolean unwrap) {
this.unwrap = unwrap;
}
-
+
/** Below is section of code which makes remote service calls */
-
- private static ICdmApplicationConfiguration configuration;
+
+ private static CdmApplicationRemoteConfiguration configuration;
private static boolean remoting = false;
-
- public static void setConfiguration(ICdmApplicationConfiguration conf) {
- configuration = conf;
-
- if(conf instanceof CdmApplicationRemoteController) {
- remoting = true;
- } else {
- remoting = false;
- }
+
+ public static void setConfiguration(CdmApplicationRemoteConfiguration conf) {
+ remoting = true;
+ configuration = conf;
}
-
-
- private void remoteInitialize() {
-
- if(!initialized) {
+
+
+ private void remoteInitialize() {
+
+ if(!initialized) {
int classid = ((Integer)getIdentifier()).intValue();
- log.debug("--> Remote Lazy Initializing" + getEntityName() + " with id " + classid);
+ log.info("--> Remote Lazy Initializing Object " + getEntityName() + " with id " + classid);
Class clazz;
try {
- clazz = (Class<? extends CdmBase>) Class.forName(getEntityName());
+ 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) {
+ ICachedCommonService cachedCommonService = configuration.getCachedCommonService();
+ if(cachedCommonService == null) {
throw new HibernateException("commonService not initialized (null)");
}
-
- CdmBase cdmBase = CdmBase.deproxy(commonService.find(clazz,classid),clazz);
+
+ CdmBase cdmBase = cachedCommonService.find(clazz,classid);
setImplementation(cdmBase);
-
+
}
}
-
+
public static boolean isInitialized(AbstractLazyInitializer obj) {
return obj.initialized;
}
--- /dev/null
+cdmlib-remote-webapp.war
<?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
+ 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"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd\r
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd\r
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">\r
+\r
+\r
+ <bean id="agentService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="annotationService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="auditeventService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="classificationService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="collectionService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="commonService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="descriptionService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="editGeoService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="featureNodeService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="featureTreeService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="groupService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="identificationKeyService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="locationService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="markerService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="mediaService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="nameService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="occurrenceService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="polytomousKeyNodeService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="polytomousKeyService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="referenceService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <!-- <bean id="serviceService" lazy-init="true" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> \r
+ <property name="serviceUrl"> <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/service.service</value> \r
+ </property> <property name="serviceInterface"> <value>eu.etaxonomy.cdm.api.service.IService</value> \r
+ </property> </bean> -->\r
+\r
+ <bean id="taxonNodeService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="taxonService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="termService" lazy-init="true" \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="eu.etaxonomy.taxeditor.service.TermServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="userService" lazy-init="true" \r
+ class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+ <property name="serviceUrl">\r
+ <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting-public/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\r
+ class="org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="vocabularyService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="workingSetService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="grantedAuthorityService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="databaseService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="lsidAuthorityService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="lsidMetadataService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="lsiDataService" lazy-init="true" \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\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\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 -->\r
+<!-- </value> -->\r
+<!-- </property> -->\r
+<!-- <property name="httpInvokerRequestExecutor"> -->\r
+<!-- <bean -->\r
+<!-- class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" /> -->\r
+<!-- </property> -->\r
+<!-- </bean> -->\r
+\r
+ <bean id="primerService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="amplificationService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="sequenceService" lazy-init="true" \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\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="entityValidationService" lazy-init="true" \r
+ class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+ <property name="serviceUrl">\r
+ <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/entityvalidation.service</value>\r
+ </property>\r
+ <property name="serviceInterface">\r
+ <value>eu.etaxonomy.cdm.api.service.IEntityValidationService\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="entityConstraintViolationService" lazy-init="true" \r
+ class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+ <property name="serviceUrl">\r
+ <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/entityconstraintviolation.service</value>\r
+ </property>\r
+ <property name="serviceInterface">\r
+ <value>eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean\r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
+ </property>\r
+ </bean>\r
\r
\r
\r
<?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.2.xsd
+ 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.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
-
-
- <!-- Default application context and term initializer -->
- <import resource="classpath:/eu/etaxonomy/cdm/defaultApplicationContext.xml"/>
+
+
+ <!-- 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/taxeditor/session" />
+ <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: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>
-
+
+ <context:component-scan base-package="eu/etaxonomy/taxeditor/remoting/session/mock" />
</beans>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE hibernate-configuration PUBLIC\r
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"\r
+ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">\r
+\r
+<hibernate-configuration>\r
+ <session-factory>\r
+\r
+ <property name="connection.release_mode">after_transaction</property>\r
+\r
+ <!-- Connection Pooling -->\r
+<!-- <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property> -->\r
+ <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl</property>\r
+ <!--\r
+ Configuring the C3P0ConnectionProvider\r
+ ========================================\r
+ see http://www.mchange.com/projects/c3p0/index.html#hibernate-specific\r
+ and also org.springframework.orm.hibernate3.AbstractSessionFactoryBean.setDataSource(DataSource dataSource)\r
+\r
+ IMPORTANT:\r
+ Because of the constraint (1) the org.hibernate.connection.C3P0ConnectionProvider are not be used\r
+ for the Cdm Library because it requires the dataSource bean in some cases.\r
+\r
+ (1)\r
+ Do NOT specify the dataSource in the sessionFactory for example in the\r
+ org.springframework.orm.hibernate3.LocalSessionFactoryBean\r
+ !!!==> If *dataSource* is set, this will override corresponding settings in Hibernate properties.!!!\r
+ If this is set, the Hibernate settings should not define a connection provider to\r
+ avoid meaningless double configuration.\r
+ (2)\r
+ Hibernate uses the hibernate.c3p0.max_size property to determine if c3p0\r
+ is beeing used. Therefore the max_size property MUST be set. - maybe not need in hibernate 3.4 +\r
+\r
+ (3) If you are using Hibernate's C3P0ConnectionProvider you must set the following properties\r
+ in your hibernate configuration, using hibernate-specific configuration keys.\r
+ All other properties must be defined as usual in a c3p0.properties file.\r
+ This is confusing, and will hopefully be simplified some time in the future, but for now...\r
+ \r
+ DOCUMENTATION UPDATE (2015-05-22):\r
+ Hibernate's C3P0ConnectionProvider renames 7 c3p0 configuration properties, which, \r
+ if set in your hibernate configuration, will override any configuration you may have set \r
+ in a c3p0.properties file.\r
+ TODO: are points (2) and (3) still valid? I don't think so! (AK)\r
+\r
+ hibernate.c3p0.acquire_increment\r
+ hibernate.c3p0.idle_test_period\r
+ hibernate.c3p0.timeout\r
+ hibernate.c3p0.max_size\r
+ hibernate.c3p0.max_statements\r
+ hibernate.c3p0.min_size\r
+ hibernate.c3p0.validate\r
+ -->\r
+ <mapping package="eu.etaxonomy.cdm.model.common"/>\r
+ <!-- Annotation Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.Address"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.AgentBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.Contact"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.Institution"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.InstitutionalMembership"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.Person"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.Team"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase"/>\r
+ <!-- Common Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Annotation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.AnnotationType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Credit"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.DefinedTerm"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.DefinedTermBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Extension"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.ExtensionType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.IdentifiableSource"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Identifier"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.IntextReference"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Group"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Language"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.LanguageString"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.LSID"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.LSIDAuthority"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Marker"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.MarkerType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.OrderedTerm"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.OrderedTermBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.OrderedTermVocabulary"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.OriginalSourceBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.RelationshipTermBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Representation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.TermVocabulary"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.User"/>\r
+ <!-- Description Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.description.CategoricalData"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.CommonTaxonName"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.DescriptionBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementSource"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.Distribution"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.Feature"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.FeatureNode"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.FeatureTree"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.KeyStatement"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.MediaKey"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.IndividualsAssociation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.MeasurementUnit"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.MultiAccessKey"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.PolytomousKey"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.PolytomousKeyNode"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.QuantitativeData"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.SpecimenDescription"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.State"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.StateData"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.StatisticalMeasure"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.TaxonDescription"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.TaxonInteraction"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.TaxonNameDescription"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.TextData"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.TextFormat"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.WorkingSet"/>\r
+ <!-- Location Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.location.NamedArea"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.location.NamedAreaLevel"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.location.NamedAreaType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.location.ReferenceSystem"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.location.Point"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.location.Country"/>\r
+ <!-- Media Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.media.AudioFile"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.ImageFile"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.Media"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.MediaRepresentation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.MediaRepresentationPart"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.MovieFile"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.Rights"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.media.RightsType"/>\r
+ <!-- Meta Data Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.metadata.CdmMetaData"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.metadata.CdmPreference"/>\r
+ <!-- Molecular Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.PhylogeneticTree"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.DnaQuality"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.DnaSample"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.Amplification"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.AmplificationResult"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.Primer"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.Sequence"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.SequenceString"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.SingleRead"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.SingleReadAlignment"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.Cloning"/>\r
+ <!-- Name Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.name.BacterialName"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.BotanicalName"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.CultivarPlantName"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.HomotypicalGroup"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.HybridRelationship"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.HybridRelationshipType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NameRelationship"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NameRelationshipType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NameTypeDesignation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NomenclaturalCode"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NomenclaturalStatus"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NomenclaturalStatusType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.NonViralName"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.Rank"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.TaxonNameBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.TypeDesignationBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.ViralName"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.name.ZoologicalName"/>\r
+ <!-- Occurrence Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.Collection"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.DerivationEvent"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.DerivationEventType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.DerivedUnit"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.MaterialOrMethodEvent"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.MediaSpecimen"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.DeterminationEvent"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.FieldUnit"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.GatheringEvent"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.PreservationMethod"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase"/>\r
+ <!-- Reference Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.reference.Reference"/>\r
+\r
+ <!-- Taxon Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.Synonym"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationship"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.Taxon"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.Classification"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonRelationship"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType"/>\r
+ \r
+ <!-- Validation Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.validation.EntityValidation"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.validation.EntityConstraintViolation"/>\r
+ \r
+ <!-- View Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.view.AuditEvent"/>\r
+ \r
+ <!-- for filling caches -->\r
+ <!-- since hibernate 4 listeners are not handled via hibernate.cfg.xml anymore -->\r
+ <!-- http://stackoverflow.com/questions/8616146/eventlisteners-using-hibernate-4-0-with-spring-3-1-0-release\r
+ https://community.jboss.org/wiki/HibernateCoreMigrationGuide40 -->\r
+\r
+ </session-factory>\r
+</hibernate-configuration>
\ No newline at end of file
<?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-3.2.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.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
+ 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"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">\r
+\r
+ <context:annotation-config />\r
+\r
+ <import resource="classpath:/eu/etaxonomy/cdm/httpInvokerServiceClients.xml" />\r
+\r
+ <bean id="cdmEntitySessionManager" \r
+ class="eu.etaxonomy.taxeditor.session.CdmEntitySessionManager" />\r
+\r
+ <bean id="cdmApplicationRemoteConfiguration" \r
+ class="eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration" />\r
+\r
+ \r
+ <bean id="cdmServiceRequestExecutor" \r
+ class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" />\r
\r
- <bean id="cdmApplicationRemoteConfiguration" class="eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration"/> \r
+ <bean id="cachedCommonService" \r
+ class="eu.etaxonomy.taxeditor.service.CachedCommonServiceImpl" />\r
+ \r
+ <bean id="accessDecisionManager" \r
+ class="eu.etaxonomy.cdm.persistence.hibernate.permission.UnanimousBasedUnrevokable" >\r
\r
- <import resource="classpath:/eu/etaxonomy/cdm/remoting_services_security.xml"/> \r
- \r
- <bean id="cdmTermCacher" class="eu.etaxonomy.cdm.api.cache.CdmTermCacher"/>\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
+ <property name="decisionVoters">\r
+ <list>\r
+ <bean\r
+ class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.GrantAlwaysVoter" />\r
+ <bean\r
+ class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonNodeVoter" />\r
+ <bean\r
+ class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonBaseVoter" />\r
+ <bean\r
+ class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionBaseVoter" />\r
+ <bean\r
+ class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionElementVoter" />\r
+ </list>\r
+ </property>\r
+ </bean>\r
+\r
+ <!-- CdmPermissionEvaluator.hasPermissions() evaluates the CdmPermissions \r
+ like TAXONNODE.UPDATE{20c8f083-5870-4cbd-bf56-c5b2b98ab6a7} -->\r
+ <bean id="cdmPermissionEvaluator" \r
+ 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() \r
+ if the currently authenticated principal or token has sufficient permissions \r
+ on the entity to be persisted -->\r
+ <bean id="securityHibernateInterceptor" \r
+ class="eu.etaxonomy.cdm.persistence.hibernate.CdmSecurityHibernateInterceptor">\r
+ <property name="permissionEvaluator" ref="cdmPermissionEvaluator" />\r
+ </bean>\r
+\r
+ <bean id="authenticationManager"\r
+ 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" \r
+ 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" \r
+ class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />\r
+\r
+ <bean id="saltSource" \r
+ class="org.springframework.security.authentication.dao.ReflectionSaltSource">\r
+ <property name="userPropertyToUse" value="getUsername" />\r
+ </bean>\r
+\r
+\r
+ <bean id="cdmServiceCacher" \r
+ class="eu.etaxonomy.cdm.api.cache.CdmServiceCacher" />\r
+\r
\r
</beans>\r
+++ /dev/null
-<?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.2.xsd\r
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd\r
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd\r
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.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
+++ /dev/null
-<?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.2.xsd\r
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd\r
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.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
--- /dev/null
+#\r
+#\r
+# If you are having problems with logging you may debug Log4J initialization,\r
+# start the application with a system property log4j.configDebug set to "true".\r
+# E.g.:\r
+#\r
+# java -Dlog4j.configDebug=true\r
+#\r
+log4j.rootLogger=WARN, stdout\r
+\r
+\r
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n\r
+\r
+##\r
+## NOTICE !!!!\r
+## no need to configure a FileAppender here\r
+## use eu.etaxonomy.cdm.remote.config.LoggingConfigurer instead\r
+##\r
+\r
+###\r
+# cdm\r
+###\r
+#log4j.logger.eu.etaxonomy.cdm = INFO\r
+#log4j.logger.eu.etaxonomy.taxeditor.remoting.source = INFO\r
+#log4j.logger.eu.etaxonomy.taxeditor.remoting.cache = INFO\r
+++ /dev/null
-<?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-2.5.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="8080"/>
- <property name="contextPath" value=""/>
- </bean>
-
- <bean id="incompleteRemoteSource">
- <property name="server" value="127.0.0.1"/>
- <property name="contextPath" value=""/>
- </bean>
-
-</beans>
\ No newline at end of file
eu.etaxonomy.taxeditor.editor.internal,
eu.etaxonomy.taxeditor.editor.name,
eu.etaxonomy.taxeditor.editor.name.handler,
+ eu.etaxonomy.taxeditor.editor.name.operation,
eu.etaxonomy.taxeditor.editor.view.concept,
eu.etaxonomy.taxeditor.editor.view.dataimport,
eu.etaxonomy.taxeditor.editor.view.descriptive,
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>eu.etaxonomy</groupId>
<packaging>eclipse-plugin</packaging>
<name>Editor Bundle</name>
- <description />
+ <description></description>
<url>http://dev.e-taxonomy.eu/trac/wiki/TaxonomicEditorEditorBundle</url>
</project>
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.editor;
+
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author cmathew
+ * @date 5 Feb 2015
+ *
+ */
+public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled {
+
+ private final ICdmEntitySession cdmEntitySession;
+
+ public CdmEntitySessionInput() {
+ cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+ public <T extends CdmBase> void update(IService<T> service, T cdmBase) {
+ cdmEntitySession.remoteUpdate(service, cdmBase);
+ }
+
+ public abstract <T extends CdmBase> IService<T> getService();
+
+ public <T extends CdmBase> void update(T cdmBase) {
+ cdmEntitySession.remoteUpdate(getService(), cdmBase);
+ }
+
+
+ public abstract <T extends CdmBase> void update();
+}
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.ITreeNode;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor;
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
openTaxonBase(((TaxonBase<?>) object).getUuid());
}
}
+
+ public static boolean closeObsoleteEditor(TaxonNode taxonNode, IWorkbenchPage activePage){
+ boolean result = true;
+ for (IEditorReference ref : activePage.getEditorReferences()) {
+ try {
+ String treeIndex = ((ITreeNode)taxonNode).treeIndex();
+
+
+ IEditorInput input = ref.getEditorInput();
+ if (input instanceof TaxonEditorInput) {
+ TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
+ //if node is a child of taxonNode then close the editor
+ if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){
+ //if (taxonNode.equals(node)) {
+ result &= activePage.closeEditor(ref.getEditor(false), true);
+
+ }
+ }
+ } catch (PartInitException e) {
+ continue;
+ }
+ }
+ return result;
+ }
}
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.editor.FormEditor;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.model.common.CdmBase;
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.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
*
* @version 1.0
*/
public class MultiPageTaxonEditor extends FormEditor implements
- IPartContentHasFactualData, IConversationEnabled, IPostOperationEnabled,
- IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
-
- /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
- public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon";
-
- private boolean dirty;
-
- private ConversationHolder conversation;
- private IDataChangeBehavior dataChangeBehavior;
- private IUndoContext undoContext;
-
- private TaxonEditorInput input;
-
- /**
- * <p>
- * Constructor for MultiPageTaxonEditor.
- * </p>
- */
- public MultiPageTaxonEditor() {
- super();
- undoContext = new UndoContext();
- }
-
- /** {@inheritDoc} */
- @Override
- public void dispose() {
- conversation.unregisterForDataStoreChanges(this);
- conversation.close();
- super.dispose();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
- */
- /** {@inheritDoc} */
- @Override
- protected void addPages() {
- input = (TaxonEditorInput) getEditorInput();
- conversation = input.getConversationHolder();
- conversation.registerForDataStoreChanges(this);
-
- try {
- addPage(Page.NAME.getIndex(), new TaxonNameEditor(this),
- getEditorInput());
- // setPageText(Page.NAME.getIndex(), Page.NAME.getTitle());
-
- // TODO lazy create
- // addPage(Page.DESCRIPTIVE.getIndex(), new
- // TaxonDescriptionTreeEditor(this), getEditorInput());
- // setPageText(Page.DESCRIPTIVE.getIndex(),
- // Page.DESCRIPTIVE.getTitle());
-
- // EditorUtil.showPropertySheet();
-
- } catch (PartInitException e) {
- MessagingUtils.error(getClass(), e);
- }
- }
-
- /** {@inheritDoc} */
- @Override
- public void doSave(IProgressMonitor monitor) {
- monitor.beginTask("Saving Editor", 4);
- try {
- if (!conversation.isBound()) {
- conversation.bind();
- }
- monitor.worked(1);
+IPartContentHasFactualData, IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled,
+IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
+
+ /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
+ public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon";
+
+ private boolean dirty;
+
+ private ICdmEntitySession cdmEntitySession;
+ private ConversationHolder conversation;
+ private IDataChangeBehavior dataChangeBehavior;
+ private IUndoContext undoContext;
+
+ private TaxonEditorInput input;
+
+ /**
+ * <p>
+ * Constructor for MultiPageTaxonEditor.
+ * </p>
+ */
+ public MultiPageTaxonEditor() {
+ super();
+ undoContext = new UndoContext();
+
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void dispose() {
+ if(cdmEntitySession != null) {
+ cdmEntitySession.dispose();
+ }
+ conversation.unregisterForDataStoreChanges(this);
+ conversation.close();
+ super.dispose();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected void addPages() {
+ input = (TaxonEditorInput) getEditorInput();
+ conversation = input.getConversationHolder();
+ conversation.registerForDataStoreChanges(this);
+ CdmApplicationState.getCurrentDataChangeService().register(this);
+ try {
+ addPage(Page.NAME.getIndex(), new TaxonNameEditor(this),
+ getEditorInput());
+ // setPageText(Page.NAME.getIndex(), Page.NAME.getTitle());
+
+ // TODO lazy create
+ // addPage(Page.DESCRIPTIVE.getIndex(), new
+ // TaxonDescriptionTreeEditor(this), getEditorInput());
+ // setPageText(Page.DESCRIPTIVE.getIndex(),
+ // Page.DESCRIPTIVE.getTitle());
+
+ // EditorUtil.showPropertySheet();
+
+ } catch (PartInitException e) {
+ MessagingUtils.error(getClass(), e);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void doSave(IProgressMonitor monitor) {
+ monitor.beginTask("Saving Editor", 4);
+ try {
+ if (!conversation.isBound()) {
+ conversation.bind();
+ }
+ monitor.worked(1);
for (IEditorPart editorPage : getPages()) {
if (editorPage instanceof TaxonNameEditor) {
monitor.worked(1);
}
- // commit the conversation and start a new transaction immediately
- conversation.commit(true);
- monitor.worked(1);
+ // commit the conversation and start a new transaction immediately
+
+ input.update();
+ conversation.commit(true);
+ monitor.worked(1);
this.setDirty(false);
monitor.worked(1);
} finally {
monitor.done();
}
- }
-
- private void disableEditor(boolean isOnError) {
- for (IMultiPageTaxonEditorPage editorPage : getPages()) {
- if(isOnError){
- editorPage.setOnError();
- }else {
- editorPage.setDisabled();
- }
- }
- conversation.unregisterForDataStoreChanges(this);
- conversation.close();
- setDirty(false);
- }
-
- private void setDirty(boolean dirty) {
- this.dirty = dirty;
- firePropertyChange(PROP_DIRTY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.part.MultiPageEditorPart#isDirty()
- */
- /**
- * <p>
- * isDirty
- * </p>
- *
- * @return a boolean.
- */
- @Override
+ }
+
+ private void disableEditor(boolean isOnError) {
+ for (IMultiPageTaxonEditorPage editorPage : getPages()) {
+ if(isOnError){
+ editorPage.setOnError();
+ }else {
+ editorPage.setDisabled();
+ }
+ }
+ CdmApplicationState.getCurrentDataChangeService().unregister(this);
+ conversation.unregisterForDataStoreChanges(this);
+ conversation.close();
+ setDirty(false);
+ }
+
+ private void setDirty(boolean dirty) {
+ this.dirty = dirty;
+ firePropertyChange(PROP_DIRTY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.MultiPageEditorPart#isDirty()
+ */
+ /**
+ * <p>
+ * isDirty
+ * </p>
+ *
+ * @return a boolean.
+ */
+ @Override
public boolean isDirty() {
- return dirty;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.forms.editor.FormEditor#editorDirtyStateChanged()
- */
- /** {@inheritDoc} */
- @Override
- public void editorDirtyStateChanged() {
- dirty = true;
- super.editorDirtyStateChanged();
- }
-
- /**
- * {@inheritDoc}
- *
- * Checks whether nested editors are calling
- * <code>firePropertyChange(PROP_DIRTY)</code> to signal an edit has taken
- * place before passing property change along to
- * <code>super.handlePropertyChange(int propertyId)</code>.
- */
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.part.MultiPageEditorPart#handlePropertyChange(int)
- */
- @Override
+ return dirty;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.forms.editor.FormEditor#editorDirtyStateChanged()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public void editorDirtyStateChanged() {
+ dirty = true;
+ super.editorDirtyStateChanged();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * Checks whether nested editors are calling
+ * <code>firePropertyChange(PROP_DIRTY)</code> to signal an edit has taken
+ * place before passing property change along to
+ * <code>super.handlePropertyChange(int propertyId)</code>.
+ */
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.MultiPageEditorPart#handlePropertyChange(int)
+ */
+ @Override
protected void handlePropertyChange(int propertyId) {
- if (propertyId == PROP_DIRTY) {
- setDirty(true);
- }
- super.handlePropertyChange(propertyId);
- }
-
- /** {@inheritDoc} */
- @Override
- public void doSaveAs() {
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isSaveAsAllowed() {
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public void init(IEditorSite site, IEditorInput input)
- throws PartInitException {
-
- if (!(input instanceof TaxonEditorInput)) {
+ if (propertyId == PROP_DIRTY) {
+ setDirty(true);
+ }
+ super.handlePropertyChange(propertyId);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void doSaveAs() {
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void init(IEditorSite site, IEditorInput input)
+ throws PartInitException {
+
+ if (!(input instanceof TaxonEditorInput)) {
throw new PartInitException(
- "Invalid Input: Must be TaxonEditorInput");
+ "Invalid Input: Must be TaxonEditorInput");
}
- this.input = (TaxonEditorInput) input;
-
- // try {
- // // Listen for name changes,
- // // change tab for this taxon editor accordingly
- // getTaxon().addPropertyChangeListener("name",
- // new PropertyChangeListener() {
- // public void propertyChange(PropertyChangeEvent e) {
- // setPartName();
- // }
- // });
- // } catch (NullPointerException e) {
- // EditorUtil.warn(getClass(),
- // "Caught an NPE while initing an editor. This is most " +
- // "likely due to the unsuccesful attempt to restore the former " +
- // "state of the application. We ignore this because the workbench " +
- // "will simply be reset.");
- // }
- setPartName();
-
- super.init(site, input);
- }
-
- /**
- * Calls <code>MultiPageEditorPart.setPartName(String partName)</code> with
- * text appropriate to the state of the taxon: any taxon that has been saved
- * will by necessity have a name to display; a new taxon should display
- * "New taxon" in the editor tab.
- */
- protected void setPartName() {
-
- String partName = null;
- TaxonNameBase<?, ?> name = getTaxon().getName();
-
- if (name != null) {
- partName = name.getTitleCache();
- }
-
- if (partName == null || partName.equals("")) {
- partName = ("New taxon");
- }
-
- setPartName(partName);
- }
+ this.input = (TaxonEditorInput) input;
+ cdmEntitySession = this.input.getCdmEntitySession();
+
+ // try {
+ // // Listen for name changes,
+ // // change tab for this taxon editor accordingly
+ // getTaxon().addPropertyChangeListener("name",
+ // new PropertyChangeListener() {
+ // public void propertyChange(PropertyChangeEvent e) {
+ // setPartName();
+ // }
+ // });
+ // } catch (NullPointerException e) {
+ // EditorUtil.warn(getClass(),
+ // "Caught an NPE while initing an editor. This is most " +
+ // "likely due to the unsuccesful attempt to restore the former " +
+ // "state of the application. We ignore this because the workbench " +
+ // "will simply be reset.");
+ // }
+ setPartName();
+
+ super.init(site, input);
+ }
+
+ /**
+ * Calls <code>MultiPageEditorPart.setPartName(String partName)</code> with
+ * text appropriate to the state of the taxon: any taxon that has been saved
+ * will by necessity have a name to display; a new taxon should display
+ * "New taxon" in the editor tab.
+ */
+ protected void setPartName() {
+
+ String partName = null;
+ TaxonNameBase<?, ?> name = getTaxon().getName();
+
+ if (name != null) {
+ partName = name.getTitleCache();
+ }
+
+ if (partName == null || partName.equals("")) {
+ partName = ("New taxon");
+ }
+
+ setPartName(partName);
+ }
/**
* {@inheritDoc}
changed(null);
}
- /**
- * The accepted taxon that is the input for this editor
- *
- * @return the accepted taxon
- */
- public Taxon getTaxon() {
- return input.getTaxon();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
- * ()
- */
- /**
- * <p>
- * getConversationHolder
- * </p>
- *
- * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
- * object.
- */
- @Override
+ /**
+ * The accepted taxon that is the input for this editor
+ *
+ * @return the accepted taxon
+ */
+ public Taxon getTaxon() {
+ return input.getTaxon();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
+ * ()
+ */
+ /**
+ * <p>
+ * getConversationHolder
+ * </p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
+ * object.
+ */
+ @Override
public ConversationHolder getConversationHolder() {
- return conversation;
- }
-
- /**
- * <p>
- * setConversationHolder
- * </p>
- *
- * @param conversation
- * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
- * object.
- */
- public void setConversationHolder(ConversationHolder conversation) {
- this.conversation = conversation;
- }
-
- /**
- * <p>
- * Getter for the field <code>undoContext</code>.
- * </p>
- *
- * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
- * object.
- */
- public IUndoContext getUndoContext() {
- return undoContext;
- }
-
- /**
- * <p>
- * Setter for the field <code>undoContext</code>.
- * </p>
- *
- * @param undoContext
- * a {@link org.eclipse.core.commands.operations.IUndoContext}
- * object.
- */
- public void setUndoContext(IUndoContext undoContext) {
- this.undoContext = undoContext;
- }
-
- /** {@inheritDoc} */
- @Override
- public void setFocus() {
- // logger.warn("Setting focus to editor");
- // bind the conversation
- getConversationHolder().bind();
- // pass focus to the active editor page
- getActiveEditor().setFocus();
- }
+ return conversation;
+ }
+
+ /**
+ * <p>
+ * setConversationHolder
+ * </p>
+ *
+ * @param conversation
+ * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
+ * object.
+ */
+ public void setConversationHolder(ConversationHolder conversation) {
+ this.conversation = conversation;
+ }
+
+ /**
+ * <p>
+ * Getter for the field <code>undoContext</code>.
+ * </p>
+ *
+ * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
+ * object.
+ */
+ public IUndoContext getUndoContext() {
+ return undoContext;
+ }
+
+ /**
+ * <p>
+ * Setter for the field <code>undoContext</code>.
+ * </p>
+ *
+ * @param undoContext
+ * a {@link org.eclipse.core.commands.operations.IUndoContext}
+ * object.
+ */
+ public void setUndoContext(IUndoContext undoContext) {
+ this.undoContext = undoContext;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setFocus() {
+ // logger.warn("Setting focus to editor");
+ // bind the conversation
+ getConversationHolder().bind();
+ if(cdmEntitySession != null) {
+ cdmEntitySession.bind();
+ }
+ // pass focus to the active editor page
+ getActiveEditor().setFocus();
+ }
/*
* (non-Javadoc)
return false;
}
- /**
- * Returns an <code>IEditorPart</code> implementation by type
- *
- * @param page
- * the page type
- * @return a {@link eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage}
- * object.
- */
- public IMultiPageTaxonEditorPage getPage(Page page) {
- for (IEditorPart editor : this.getPages()) {
- if (editor.getClass().equals(page.getClazz())) {
- return (IMultiPageTaxonEditorPage) editor;
- }
- }
- return null;
- }
-
- /**
- * Return a list of <code>AbstractTaxonEditor</code>s registered with this
- * <code>MultiPageTaxonEditor</code>.
- *
- * @return a {@link java.util.List} object.
- */
- public List<IMultiPageTaxonEditorPage> getPages() {
- ArrayList<IMultiPageTaxonEditorPage> editors = new ArrayList<IMultiPageTaxonEditorPage>();
- for (int i = 0; i < this.getPageCount(); i++) {
-
- editors.add((IMultiPageTaxonEditorPage) this.getEditor(i));
- }
- return editors;
- }
-
- /**
- * Refreshes a certain page of the MultipageTaxonEditor
- *
- * @param page
- * a {@link eu.etaxonomy.taxeditor.editor.Page} object.
- * @return a boolean.
- */
- public boolean redraw(Page page) {
- return redraw(page, true);
- }
-
- /**
- * Refreshes a certain page of the MultipageTaxonEditor and sets focus to
- * that page
- *
- * @param page
- * a {@link eu.etaxonomy.taxeditor.editor.Page} object.
- * @param focus
- * a boolean.
- * @return a boolean.
- */
- public boolean redraw(Page page, boolean focus) {
- IMultiPageTaxonEditorPage editorPage = getPage(page);
- return editorPage != null && editorPage.redraw(focus);
- }
-
- /**
- * <p>
- * onComplete
- * </p>
- *
- * @return a boolean.
- */
- @Override
+ /**
+ * Returns an <code>IEditorPart</code> implementation by type
+ *
+ * @param page
+ * the page type
+ * @return a {@link eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage}
+ * object.
+ */
+ public IMultiPageTaxonEditorPage getPage(Page page) {
+ for (IEditorPart editor : this.getPages()) {
+ if (editor.getClass().equals(page.getClazz())) {
+ return (IMultiPageTaxonEditorPage) editor;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return a list of <code>AbstractTaxonEditor</code>s registered with this
+ * <code>MultiPageTaxonEditor</code>.
+ *
+ * @return a {@link java.util.List} object.
+ */
+ public List<IMultiPageTaxonEditorPage> getPages() {
+ ArrayList<IMultiPageTaxonEditorPage> editors = new ArrayList<IMultiPageTaxonEditorPage>();
+ for (int i = 0; i < this.getPageCount(); i++) {
+
+ editors.add((IMultiPageTaxonEditorPage) this.getEditor(i));
+ }
+ return editors;
+ }
+
+ /**
+ * Refreshes a certain page of the MultipageTaxonEditor
+ *
+ * @param page
+ * a {@link eu.etaxonomy.taxeditor.editor.Page} object.
+ * @return a boolean.
+ */
+ public boolean redraw(Page page) {
+ return redraw(page, true);
+ }
+
+ /**
+ * Refreshes a certain page of the MultipageTaxonEditor and sets focus to
+ * that page
+ *
+ * @param page
+ * a {@link eu.etaxonomy.taxeditor.editor.Page} object.
+ * @param focus
+ * a boolean.
+ * @return a boolean.
+ */
+ public boolean redraw(Page page, boolean focus) {
+ IMultiPageTaxonEditorPage editorPage = getPage(page);
+ return editorPage != null && editorPage.redraw(focus);
+ }
+
+ /**
+ * <p>
+ * onComplete
+ * </p>
+ *
+ * @return a boolean.
+ */
+ @Override
public boolean onComplete() {
- return false;
- }
+ return false;
+ }
/**
* Reloads the data for this
}
}
- @Override
- public String toString() {
- return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
- }
+ @Override
+ public String toString() {
+ return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
+ }
+
+ @Override
+ public boolean permissionsSatisfied() {
+ IEditorPart activeEditor = getActiveEditor();
+ if(activeEditor != null && ISecuredEditor.class.isAssignableFrom(activeEditor.getClass())){
+ return ((ISecuredEditor)activeEditor).permissionsSatisfied();
+ }
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<TaxonNode> getRootEntities() {
+ return input.getRootEntities();
+ }
- @Override
- public boolean permissionsSatisfied() {
- IEditorPart activeEditor = getActiveEditor();
- if(activeEditor != null && ISecuredEditor.class.isAssignableFrom(activeEditor.getClass())){
- return ((ISecuredEditor)activeEditor).permissionsSatisfied();
- }
- return true;
- }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
}
/**
-* 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.
-*/
+ * 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.editor;
+import java.util.Arrays;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPersistableElement;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
* @created 19.03.2009
* @version 1.0
*/
-public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPersistableElement {
+public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled, IPersistableElement {
- private final ConversationHolder conversation;
+ private final ConversationHolder conversation;
- private final TaxonNode taxonNode;
+ private TaxonNode taxonNode;
- private TaxonEditorInputDataChangeBehaviour dataChangeBehavior;
+ private TaxonEditorInputDataChangeBehaviour dataChangeBehavior;
- private TaxonBase initiallySelectedTaxonBase;
+ private TaxonBase initiallySelectedTaxonBase;
- private TaxonEditorInput(TaxonNode taxonNode, ConversationHolder conversation){
- this.conversation = conversation;
- this.taxonNode = taxonNode;
- }
+ private final ITaxonNodeService service;
+ private enum CdmType {
+ TAXON_NODE,
+ TAXON_BASE,
+ PARENT_TAXON_NODE
+ }
+ private TaxonEditorInput(UUID uuid, CdmType type) {
+ this.conversation = CdmStore.createConversation();
+ service = CdmStore.getService(ITaxonNodeService.class);
+ switch(type) {
+ case PARENT_TAXON_NODE:
+ initForParentTaxonNode(uuid);
+ break;
+ case TAXON_BASE:
+ initForTaxonBase(uuid);
+ break;
+ case TAXON_NODE:
+ initForTaxonNode(uuid);
+ break;
+ }
+ }
+
+ private void init(TaxonNode taxonNode) {
+ this.taxonNode = taxonNode;
+ }
- /**
- * <p>NewInstance</p>
- *
- * @param taxonNodeUuid a {@link java.util.UUID} object.
- * @return a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput} object.
- * @throws java.lang.Exception if any.
- */
- public static TaxonEditorInput NewInstance(UUID taxonNodeUuid) throws Exception{
- try{
- ConversationHolder conversation = CdmStore.createConversation();
- return NewInstance(taxonNodeUuid, conversation);
- }catch(Exception e){
- throw e;
- }
- }
/**
+ * <p>NewInstance</p>
*
- * @param taxonNodeUuid
- * @param conversation
- * @return
+ * @param taxonNodeUuid a {@link java.util.UUID} object.
+ * @return a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput} object.
+ * @throws java.lang.Exception if any.
*/
- private static TaxonEditorInput NewInstance(UUID taxonNodeUuid, ConversationHolder conversation){
+ private void initForTaxonNode(UUID taxonNodeUuid) {
- TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, null);
+ TaxonNode taxonNode = getCdmEntitySession().remoteLoad(service,taxonNodeUuid, null);
- if(taxonNode == null){
- MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not of type TaxonNode but [null].");
- return null;
- }
+ if(taxonNode == null){
+ MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase.");
+ }
+ init(taxonNode);
+
+ }
- return new TaxonEditorInput(taxonNode, conversation);
+ private void initForTaxonBase(UUID taxonBaseUuid) {
+
+ TaxonBase taxonBase = getCdmEntitySession().remoteLoad(CdmStore.getService(ITaxonService.class),taxonBaseUuid);
+ if (taxonBase != null){
+ if(taxonBase.isInstanceOf(Taxon.class)){
+ Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
+
+ if (taxon.getTaxonNodes().size() == 0 && taxon.isMisapplication()){
+ // TODO get accepted taxon
+ MessagingUtils.info("trying to open Mispplied Name ");
+
+ Set<Taxon> acceptedTaxa = new HashSet<Taxon>();
+ Set<TaxonRelationship> relations = taxon.getRelationsFromThisTaxon();
+ for(TaxonRelationship relation : relations){
+ if(relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){
+ acceptedTaxa.add(relation.getToTaxon());
+ }
+ }
+ setInputForMultipleTaxa(conversation, acceptedTaxa);
+
+ }else{
+ setInputForMultipleNodes(conversation, taxon.getTaxonNodes());
+ }
+ }else if(taxonBase instanceof Synonym){
+ Synonym synonym = (Synonym) taxonBase;
+
+ Set<Taxon> taxa = synonym.getAcceptedTaxa();
+ setInputForMultipleTaxa(conversation, taxa);
+ }
+ }
}
+
/**
- * <p>NewInstanceFromTaxonBase</p>
+ * <p>NewEmptyInstance</p>
*
- * @param taxonBaseUuid a {@link java.util.UUID} object.
+ * @param parentNodeUuid a {@link java.util.UUID} object.
* @return a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput} object.
*/
- public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){
- ConversationHolder conversation = CdmStore.createConversation();
-
- TaxonEditorInput input = null;
-
- TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
- if (taxonBase != null){
- if(taxonBase.isInstanceOf(Taxon.class)){
- Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
-
- if (taxon.getTaxonNodes().size() == 0 && taxon.isMisapplication()){
- // TODO get accepted taxon
- MessagingUtils.info("trying to open misapplied Name ");
-
- Set<Taxon> acceptedTaxa = new HashSet<Taxon>();
- Set<TaxonRelationship> relations = taxon.getRelationsFromThisTaxon();
- for(TaxonRelationship relation : relations){
- if(relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){
- acceptedTaxa.add(relation.getToTaxon());
- }
- }
- input = getInputForMultipleTaxa(conversation, acceptedTaxa);
-
- }else{
- input = getInputForMultipleNodes(conversation, taxon.getTaxonNodes());
- }
- }else if(taxonBase instanceof Synonym){
- Synonym synonym = (Synonym) taxonBase;
-
- Set<Taxon> taxa = synonym.getAcceptedTaxa();
- input = getInputForMultipleTaxa(conversation, taxa);
- }
- if (input != null){
- input.setInitiallySelectedTaxonBase(taxonBase);
- }
- }
-
-
- return input;
+ private void initForParentTaxonNode(UUID parentNodeUuid){
+
+
+ TaxonNameBase<?, ?> name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null);
+ ITaxonTreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid);
+
+ Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference());
+ TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
+
+ // add the new taxon to the editors persistence context
+ UUID newTaxonNodeUuid = getCdmEntitySession().remoteSave(CdmStore.getService(ITaxonNodeService.class),newTaxonNode);
+
+ initForTaxonNode(newTaxonNodeUuid);
}
- private static TaxonEditorInput getInputForMultipleNodes(ConversationHolder conversation, Set<TaxonNode> taxonNodes){
- if(taxonNodes.size() == 1){
- TaxonNode taxonNode = taxonNodes.iterator().next();
- return NewInstance(taxonNode.getUuid(), conversation);
- }else if(taxonNodes.size() > 1){
- TaxonNode taxonNode = ChooseFromMultipleTaxonNodesDialog.choose(taxonNodes);
- if(taxonNode != null){
- return NewInstance(taxonNode.getUuid(), conversation);
- }
- }else if(taxonNodes.size() == 0){
- // this is an undesired state
- MessagingUtils.warningDialog("Incorrect state", TaxonEditorInput.class, "The accepted taxon is not part of any classification. This should not have happened.");
- }
- return null;
+
+
+
+ private void setInputForMultipleNodes(ConversationHolder conversation, Set<TaxonNode> taxonNodes){
+ if(taxonNodes.size() == 1){
+ TaxonNode taxonNode = taxonNodes.iterator().next();
+ init(taxonNode);
+ }else if(taxonNodes.size() > 1){
+ TaxonNode taxonNode = ChooseFromMultipleTaxonNodesDialog.choose(taxonNodes);
+ if(taxonNode != null){
+ init(taxonNode);
+ }
+ }else if(taxonNodes.size() == 0){
+ // this is an undesired state
+ MessagingUtils.warningDialog("Incorrect state", TaxonEditorInput.class, "The accepted taxon is not part of any classification. This should not have happened.");
+ }
}
- private static TaxonEditorInput getInputForMultipleTaxa(ConversationHolder conversation, Set<Taxon> taxa){
- if(taxa.size() == 1){
- Taxon taxon = taxa.iterator().next();
- Set<TaxonNode> nodes = taxon.getTaxonNodes();
- return getInputForMultipleNodes(conversation, nodes);
- }else if(taxa.size() > 1){
- Set<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
- for ( Taxon taxon : taxa ){
- taxonNodes.addAll(taxon.getTaxonNodes());
- }
- return getInputForMultipleNodes(conversation, taxonNodes);
- }else if(taxa.size() == 0){
- // this is an undesired state
- MessagingUtils.warningDialog("Incorrect state", TaxonEditorInput.class, "Trying to open accepted taxon for a synonym or misapplication but" +
- " no accepted taxa are present. This should not have happened.");
- }
- return null;
+ private void setInputForMultipleTaxa(ConversationHolder conversation, Set<Taxon> taxa){
+ if(taxa.size() == 1){
+ Taxon taxon = taxa.iterator().next();
+ Set<TaxonNode> nodes = taxon.getTaxonNodes();
+ setInputForMultipleNodes(conversation, nodes);
+ }else if(taxa.size() > 1){
+ Set<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
+ for ( Taxon taxon : taxa ){
+ taxonNodes.addAll(taxon.getTaxonNodes());
+ }
+ setInputForMultipleNodes(conversation, taxonNodes);
+ }else if(taxa.size() == 0){
+ // this is an undesired state
+ MessagingUtils.warningDialog("Incorrect state", TaxonEditorInput.class, "Trying to open accepted taxon for a synonym or misapplication but" +
+ " no accepted taxa are present. This should not have happened.");
+ }
}
/**
- * <p>NewEmptyInstance</p>
+ * <p>NewInstance</p>
*
- * @param parentNodeUuid a {@link java.util.UUID} object.
+ * @param taxonNodeUuid a {@link java.util.UUID} object.
* @return a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput} object.
+ * @throws java.lang.Exception if any.
*/
- public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){
- ConversationHolder conversation = CdmStore.createConversation();
+ public static TaxonEditorInput NewInstance(UUID taxonNodeUuid) throws Exception {
+ return new TaxonEditorInput(taxonNodeUuid, CdmType.TAXON_NODE);
+
+ }
+
+ /**
+ * <p>NewInstanceFromTaxonBase</p>
+ *
+ * @param taxonBaseUuid a {@link java.util.UUID} object.
+ * @return a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput} object.
+ */
+ public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){
+ return new TaxonEditorInput(taxonBaseUuid, CdmType.TAXON_BASE);
+ }
- TaxonNameBase<?, ?> name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null);
- ITaxonTreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid);
- Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference());
- TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
- // add the new taxon to the editors persistence context
- UUID newTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).save(newTaxonNode);
- return new TaxonEditorInput(newTaxonNode, conversation);
+ /**
+ * <p>NewEmptyInstance</p>
+ *
+ * @param parentNodeUuid a {@link java.util.UUID} object.
+ * @return a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput} object.
+ */
+ public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){
+ return new TaxonEditorInput(parentNodeUuid, CdmType.PARENT_TAXON_NODE);
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#exists()
- */
- /**
- * <p>exists</p>
- *
- * @return a boolean.
- */
- @Override
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#exists()
+ */
+ /**
+ * <p>exists</p>
+ *
+ * @return a boolean.
+ */
+ @Override
public boolean exists() {
- return taxonNode != null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
- */
- /**
- * <p>getImageDescriptor</p>
- *
- * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
- */
- @Override
+ return taxonNode != null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+ */
+ /**
+ * <p>getImageDescriptor</p>
+ *
+ * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
+ */
+ @Override
public ImageDescriptor getImageDescriptor() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getName()
- */
- /**
- * <p>getName</p>
- *
- * @return a {@link java.lang.String} object.
- */
- @Override
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getName()
+ */
+ /**
+ * <p>getName</p>
+ *
+ * @return a {@link java.lang.String} object.
+ */
+ @Override
public String getName() {
- if(getTaxon() == null){
- return null;
- }
- TaxonNameBase<?, ?> name = getTaxon().getName();
- if (name == null || name.getTitleCache() == null) {
- return "New taxon";
- } else {
- return name.getTitleCache();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getPersistable()
- */
- /**
- * <p>getPersistable</p>
- *
- * @return a {@link org.eclipse.ui.IPersistableElement} object.
- */
- @Override
+ if(getTaxon() == null){
+ return null;
+ }
+ TaxonNameBase<?, ?> name = getTaxon().getName();
+ if (name == null || name.getTitleCache() == null) {
+ return "New taxon";
+ } else {
+ return name.getTitleCache();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getPersistable()
+ */
+ /**
+ * <p>getPersistable</p>
+ *
+ * @return a {@link org.eclipse.ui.IPersistableElement} object.
+ */
+ @Override
public IPersistableElement getPersistable() {
-// if(CdmStore.isActive()){
-// TaxonNode test = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid());
-// boolean isPersistable = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid()) != null;
-// if (isPersistable) {
-// return this;
-// }
-// }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getToolTipText()
- */
- /**
- * <p>getToolTipText</p>
- *
- * @return a {@link java.lang.String} object.
- */
- @Override
+ // if(CdmStore.isActive()){
+ // TaxonNode test = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid());
+ // boolean isPersistable = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid()) != null;
+ // if (isPersistable) {
+ // return this;
+ // }
+ // }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getToolTipText()
+ */
+ /**
+ * <p>getToolTipText</p>
+ *
+ * @return a {@link java.lang.String} object.
+ */
+ @Override
public String getToolTipText() {
- return getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- /** {@inheritDoc} */
- @Override
+ return getName();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+ */
+ /** {@inheritDoc} */
+ @Override
public Object getAdapter(Class adapter) {
- if (adapter == Taxon.class) {
- return taxonNode.getTaxon();
- }
+ if (adapter == Taxon.class) {
+ return getTaxon();
+ }
- if (adapter == TaxonNode.class) {
- return taxonNode;
- }
+ if (adapter == TaxonNode.class) {
+ return taxonNode;
+ }
- return null;
- }
+ return null;
+ }
- /**
- * {@inheritDoc}
- *
- * Overrides equals to ensure that a taxon can only be edited by
- * one editor at a time.
- */
- @Override
+ /**
+ * {@inheritDoc}
+ *
+ * Overrides equals to ensure that a taxon can only be edited by
+ * one editor at a time.
+ */
+ @Override
public boolean equals(Object obj) {
- if (TaxonEditorInput.class.equals(obj.getClass())
- && getTaxon() != null
- && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){
- if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
- setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase());
- }
- return true;
- }
- return false;
- }
-
- /**
- * <p>getTaxon</p>
- *
- * @return the taxon
- */
- public Taxon getTaxon(){
- return taxonNode.getTaxon();
- }
-
- /**
- * <p>Getter for the field <code>taxonNode</code>.</p>
- *
- * @return the taxonNode
- */
- public TaxonNode getTaxonNode() {
- return taxonNode;
- }
-
- /*
- * (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
- */
- /**
- * <p>getConversationHolder</p>
- *
- * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
- */
- @Override
+ if (TaxonEditorInput.class.equals(obj.getClass())
+ && getTaxon() != null
+ && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){
+ if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
+ setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase());
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <p>getTaxon</p>
+ *
+ * @return the taxon
+ */
+ public Taxon getTaxon(){
+ Taxon taxon = CdmBase.deproxy(taxonNode.getTaxon(), Taxon.class);
+ return taxon;
+ }
+
+ /**
+ * <p>Getter for the field <code>taxonNode</code>.</p>
+ *
+ * @return the taxonNode
+ */
+ public TaxonNode getTaxonNode() {
+ return taxonNode;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
+ */
+ /**
+ * <p>getConversationHolder</p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+ */
+ @Override
public ConversationHolder getConversationHolder() {
- return conversation;
- }
-
- /*
- * (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
- */
- /** {@inheritDoc} */
- @Override
+ return conversation;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
+ */
+ /** {@inheritDoc} */
+ @Override
public void update(CdmDataChangeMap events) {
- if(dataChangeBehavior == null){
- dataChangeBehavior = new TaxonEditorInputDataChangeBehaviour(this);
- }
-
- DataChangeBridge.handleDataChange(events, dataChangeBehavior);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPersistableElement#getFactoryId()
- */
- /**
- * <p>getFactoryId</p>
- *
- * @return a {@link java.lang.String} object.
- */
- @Override
+ if(dataChangeBehavior == null){
+ dataChangeBehavior = new TaxonEditorInputDataChangeBehaviour(this);
+ }
+
+ DataChangeBridge.handleDataChange(events, dataChangeBehavior);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IPersistableElement#getFactoryId()
+ */
+ /**
+ * <p>getFactoryId</p>
+ *
+ * @return a {@link java.lang.String} object.
+ */
+ @Override
public String getFactoryId() {
- return TaxonEditorInputFactory.getFactoryId();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
- */
- /** {@inheritDoc} */
- @Override
+ return TaxonEditorInputFactory.getFactoryId();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
+ */
+ /** {@inheritDoc} */
+ @Override
public void saveState(IMemento memento) {
- TaxonEditorInputFactory.saveState(memento, this);
- }
+ TaxonEditorInputFactory.saveState(memento, this);
+ }
/**
* @param taxonBase a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
*/
public void setInitiallySelectedTaxonBase(TaxonBase taxonBase) {
- this.initiallySelectedTaxonBase = taxonBase;
- }
-
- /**
- * <p>Getter for the field <code>initiallySelectedTaxonBase</code>.</p>
- *
- * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
- */
- public TaxonBase getInitiallySelectedTaxonBase() {
- return initiallySelectedTaxonBase;
- }
-
- @Override
- public String toString() {
- return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
- }
+ this.initiallySelectedTaxonBase = taxonBase;
+ }
+
+ /**
+ * <p>Getter for the field <code>initiallySelectedTaxonBase</code>.</p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
+ */
+ public TaxonBase getInitiallySelectedTaxonBase() {
+ return initiallySelectedTaxonBase;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#getService()
+ */
+ @Override
+ public ITaxonNodeService getService() {
+ return service;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#getRootEntities()
+ */
+ @Override
+ public List<TaxonNode> getRootEntities() {
+ return Arrays.asList(taxonNode);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#update()
+ */
+ @Override
+ public <T extends CdmBase> void update() {
+ taxonNode = getCdmEntitySession().remoteUpdate(service, taxonNode);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
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.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
monitor.beginTask("Saving Editor", 1);
getConversationHolder().bind();
getConversationHolder().commit(true);
+ CdmStore.getService(IPolytomousKeyService.class).merge(((PolytomousKeyEditorInput)getEditorInput()).getKey());
setDirty(false);
monitor.worked(1);
} finally {
public void dispose() {
conversation.unregisterForDataStoreChanges(this);
conversation.close();
+ ((PolytomousKeyEditorInput)getEditorInput()).dispose();
super.dispose();
}
PolytomousKey key = (PolytomousKey) input.getKey();
setPartName(key.getTitleCache());
}
+
+
+
}
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.key.polytomous;
+import java.util.Arrays;
+import java.util.List;
import java.util.UUID;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.taxeditor.editor.key.AbstractIdentificationEditorInput;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
*
*/
-public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<PolytomousKey> {
+public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<PolytomousKey> implements ICdmEntitySessionEnabled {
- private PolytomousKey key;
+ private final PolytomousKey key;
+ private final ICdmEntitySession cdmEntitySession;
protected PolytomousKeyEditorInput(ConversationHolder conversation,
PolytomousKey key) {
super(conversation);
+ cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+
this.key = key;
}
-
-
+
+
public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid) throws Exception{
try{
ConversationHolder conversation = CdmStore.createConversation();
-
+
return NewInstance(polytomousKeyUuid, conversation);
}catch(Exception e){
throw e;
}
}
-
+
public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid, ConversationHolder conversation) throws Exception{
PolytomousKey polytomousKey = CdmStore.getService(IPolytomousKeyService.class).load(polytomousKeyUuid, null);
-
+
return new PolytomousKeyEditorInput(conversation, polytomousKey);
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.IEditorInput#getName()
*/
public String getName() {
return key.getTitleCache();
}
-
+
@Override
public PolytomousKey getKey() {
return key;
}
-
+
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
}
return super.equals(object);
}
+
+ public void dispose() {
+ cdmEntitySession.dispose();
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<PolytomousKey> getRootEntities() {
+ return Arrays.asList(key);
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
}
import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
*/
@Override
public void setFocus() {
+ CdmStore.getCurrentSessionManager().bind((PolytomousKeyEditorInput)getEditorInput());
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
}
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
/**
* @author n.hoffmann
- *
+ *
*/
public class DeleteNodeOperation extends AbstractPostTaxonOperation {
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
+
//parent.removeChild(node);
ICdmApplicationConfiguration controller;
-
- controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
-
+
+ controller = CdmStore.getCurrentApplicationConfiguration();
+
IPolytomousKeyNodeService service = controller.getPolytomousKeyNodeService();
if (node.getChildren().size()>0){
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
import org.eclipse.ui.forms.widgets.TableWrapLayout;
import org.eclipse.ui.part.EditorPart;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
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.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.IDropTargetable;
import eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage;
import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
import eu.etaxonomy.taxeditor.model.TaxeditorPartService;
import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.security.RequiredPermissions;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
* <p>
* @version 1.0
*/
public class TaxonNameEditor extends EditorPart implements
- IMultiPageTaxonEditorPage, IConversationEnabled,
+ IMultiPageTaxonEditorPage, IConversationEnabled, ICdmEntitySessionEnabled,
IPartContentHasDetails, IPartChangeListener,
ISelectionListener, IDropTargetable, ISecuredEditor {
private TaxonBase objectAffectedByLastOperation;
+ private ICdmEntitySession cdmEntitySession;
+
/**
* <p>
* Constructor for TaxonNameEditor.
* </p>
*/
public void createOrUpdateNameComposites() {
- //this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid());
- //this.taxon = HibernateProxyHelper.deproxy(this.taxon, Taxon.class);
+// this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid());
ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup(this);
ContainerFactory.createOrUpdateHeterotypicSynonymyGroups(this);
ContainerFactory.createOrUpdateMisapplicationsGroup(this);
}
if (input.getAdapter(Taxon.class) != null) {
- taxon = (Taxon) input.getAdapter(Taxon.class);
+ taxon = CdmBase.deproxy(input.getAdapter(Taxon.class), Taxon.class);
} else {
throw new PartInitException("Invalid Input: Taxon cannot be null");
}
Color background = AbstractUtility.getColor(enabled ? Resources.COLOR_COMPOSITE_BACKGROUND : Resources.COLOR_TEXT_DISABLED_BACKGROUND);
setEnabled(enabled, background);
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return editor.getCdmEntitySession();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public <T extends CdmBase> List<T> getRootEntities() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
}
// $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.
*/
private static final Logger logger = Logger
.getLogger(ChangeSynonymToAcceptedTaxonHandler.class);
private MultiPageTaxonEditor editor;
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
editor = (MultiPageTaxonEditor) HandlerUtil.getActiveEditor(event);
Shell shell = HandlerUtil.getActiveShell(event);
IEditorInput input = editor.getEditorInput();
-
+
if (!(input instanceof TaxonEditorInput)) {
logger.error("Editor input is not TaxonEditorInput");
return null;
}
Synonym synonym = (Synonym) selection.getFirstElement();
-
+
// Force user to save taxon - not really necessary though, is it?
if (!EditorUtil.forceUserSave(editor, shell)) {
return null;
// Get taxon
Taxon taxon = ((TaxonEditorInput) input).getTaxon();
-
+
TaxonNode parentNode = (TaxonNode) HibernateProxyHelper.deproxy(((TaxonEditorInput) input).getTaxonNode().getParent());
-
+
List<UUID> excludeTaxa = null;
-
+
TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Select parent", excludeTaxa, null, null);
-
+
if(newParentNode != null){
-
+
// TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
// apply confirmation dialog
HomotypicalGroup group = synonym.getHomotypicGroup();
Set<TaxonNameBase> namesInGroup = group.getTypifiedNames();
// FIXME with this implementation we can not create a taxonNode that is a direct child of the classification node
- AbstractPostOperation operation = new ChangeSynonymToAcceptedTaxonOperation("Change synonym to accepted taxon", EditorUtil.getUndoContext(),
- taxon, newParentNode, synonym, namesInGroup, this, editor); //$NON-NLS-1$
+ AbstractPostOperation operation = new ChangeSynonymToAcceptedTaxonOperation("Change synonym to accepted taxon", EditorUtil.getUndoContext(),
+ taxon, newParentNode, synonym, namesInGroup, this, editor, editor); //$NON-NLS-1$
EditorUtil.executeOperation(operation);
}
-
+
return null;
}
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
/** {@inheritDoc} */
- public boolean postOperation(CdmBase objectAffectedByOperation) {
-
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
+
// Redraw existing editor
((IPostOperationEnabled) editor).postOperation(null);
-
+
editor.doSave(EditorUtil.getMonitor());
-
+
if (objectAffectedByOperation instanceof TaxonNode) {
-
+
// Open new unsaved editor with existing taxon's parent as temporary parent
TaxonNode newNode = (TaxonNode) objectAffectedByOperation;
// TaxonNode newNode = parentNode.addChild(newTaxon);
-
+
try {
// TODO
/*
* doesn't work yet.
*/
EditorUtil.openTaxonNode(newNode.getUuid());
-
+
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
*
* @return a boolean.
*/
- public boolean onComplete() {
+ @Override
+ public boolean onComplete() {
// TODO Auto-generated method stub
return false;
}
/**
* 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.
*/
import org.eclipse.core.commands.common.NotDefinedException;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.Page;
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
Page.NAME);
Taxon taxon = editor.getTaxon();
HomotypicalGroup group = taxon.getHomotypicGroup();
- TaxonNameBase newSynonymName = ParseHandler.createEmptyName();
-
+ NonViralName newSynonymName = ParseHandler.createEmptyName();
+
AbstractPostOperation operation;
try {
- operation = new CreateSynonymInExistingHomotypicalGroupOperation(event.getCommand().getName(),
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation(event.getCommand().getName(),
editor.getUndoContext(), taxon, group, newSynonymName, editor);
EditorUtil.executeOperation(operation);
} catch (NotDefinedException e) {
MessagingUtils.error(getClass(), e);
}
-
+
return null;
}
// $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.
*/
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.Page;
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
Page.NAME);
ISelection menuSelection = HandlerUtil.getCurrentSelection(event);
-
+
Object selecteObject = ((StructuredSelection) menuSelection).getFirstElement();
-
+
if(! (selecteObject instanceof Synonym)){
return null;
}
-
-
+
+
Synonym synonym = (Synonym) selecteObject;
-
+
HomotypicalGroup group = synonym.getHomotypicGroup();
-
- TaxonNameBase newSynonymName = ParseHandler.createEmptyName();
-
+
+ NonViralName newSynonymName = ParseHandler.createEmptyName();
+
AbstractPostOperation operation;
-
+
try {
operation = new CreateSynonymInExistingHomotypicalGroupOperation(event.getCommand().getName(), editor.getUndoContext(),
editor.getTaxon(), group, newSynonymName, editor);
} catch (NotDefinedException e) {
logger.warn("Command name not set");
}
-
+
return null;
}
}
IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
- operation = new DeleteTaxonOperation(commandName, editor.getUndoContext(),(Taxon) selectedElement, new TaxonDeletionConfigurator(), null, activePage, this, editor);
+ operation = new DeleteTaxonOperation(commandName,
+ editor.getUndoContext(),
+ (Taxon) selectedElement,
+ new TaxonDeletionConfigurator(),
+ null,
+ activePage,
+ this,
+ editor,
+ editor);
//editor.dispose();
}
// $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.
*/
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
editor = EditorUtil.getActiveMultiPageTaxonEditor();
Shell shell = HandlerUtil.getActiveShell(event);
Synonym synonym = (Synonym) EditorUtil.getSelection(event).getFirstElement();
-
+
// Force user to save taxon - not really necessary though, is it?
if (!EditorUtil.forceUserSave(editor, shell)) {
return null;
}
-
+
try {
SwapSynonymAndAcceptedOperation operation = new SwapSynonymAndAcceptedOperation(event.getCommand().getName(), editor.getUndoContext(),
- editor.getTaxon(), synonym, this);
-
+ editor.getTaxon(), synonym, this, editor);
+
EditorUtil.executeOperation(operation);
-
+
} catch (NotDefinedException e) {
logger.warn("Command name not set");
- }
+ }
return null;
}
public boolean postOperation(CdmBase objectAffectedByOperation) {
// Redraw existing editor
//((IPostOperationEnabled) editor).postOperation(null);
-
+
editor.doSave(EditorUtil.getMonitor());
editor.close(true);
-
+
if (objectAffectedByOperation instanceof Taxon) {
-
+
taxon = (Taxon) objectAffectedByOperation;
-
-
+
+
}
return true;
}
public boolean onComplete() {
Display display = Display.getCurrent();
display.asyncExec(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
try {
EditorUtil.openTaxonBase(taxon.getUuid());
-
+
} catch (Exception e) {
MessagingUtils.warningDialog("Could not open editor for taxon", this, e.getMessage());
}
-
+
}
});
return true;
/**
* 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.
*/
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;
*/
public class ChangeHomotypicalGroupBasionymOperation extends
AbstractPostTaxonOperation {
- private TaxonBase taxonBase;
+ private final TaxonBase taxonBase;
/**
* <p>Constructor for ChangeHomotypicalGroupBasionymOperation.</p>
public ChangeHomotypicalGroupBasionymOperation(String text,
IUndoContext undoContext, Taxon taxon, TaxonBase taxonBase, IPostOperationEnabled postOperationEnabled) {
super(text, undoContext, taxon, postOperationEnabled);
-
+
this.taxonBase = taxonBase;
}
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
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){
postExecute(oldBasionymTaxonBase);
}
}
+
return postExecute(taxonBase);
}
// TODO replace w method from cdmlib
// FIXME this is also old code: reimplement
// CdmUtil.setGroupBasionym(synonym.getName());
-
+
return postExecute(taxonBase);
}
-
-
+
+
}
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {
private Taxon newTaxon;
- private Synonym synonym;
+ private final Synonym synonym;
private final ITaxonTreeNode parentNode;
private TaxonNode newNode;
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
- public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,
- Taxon taxon, ITaxonTreeNode parentNode, Synonym synonym, Set<TaxonNameBase> namesInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
+ public ChangeSynonymToAcceptedTaxonOperation(String label,
+ IUndoContext undoContext,
+ Taxon taxon,
+ ITaxonTreeNode parentNode,
+ Synonym synonym,
+ Set<TaxonNameBase> namesInHomotypicalGroup,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
this.element = taxon;
this.parentNode = parentNode;
Taxon taxon = newNode.getTaxon();
for (TaxonNameBase synonymName : namesInHomotypicGroup){
taxon.addHomotypicSynonymName(synonymName, null, null);
-
+
}
}*/
import org.eclipse.core.runtime.IStatus;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
AbstractPostTaxonOperation {
private final HomotypicalGroup group;
- private final TaxonNameBase newSynonymName;
+ private final NonViralName newSynonymName;
private SynonymRelationship synonymRelationship;
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
*/
public CreateSynonymInExistingHomotypicalGroupOperation(String label,
- IUndoContext undoContext, Taxon taxon, HomotypicalGroup group, TaxonNameBase newSynonymName, IPostOperationEnabled postOperationEnabled) {
+ IUndoContext undoContext, Taxon taxon, HomotypicalGroup group, NonViralName newSynonymName, IPostOperationEnabled postOperationEnabled) {
super(label, undoContext, taxon, postOperationEnabled);
this.group = group;
this.newSynonymName = newSynonymName;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
// Find misapplication relation, save citation information
- for (TaxonRelationship relationship : element.getTaxonRelations()) {
- if (relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())
- && relationship.getFromTaxon().equals(misapplication)) {
- citation = relationship.getCitation();
- microcitation = relationship.getCitationMicroReference();
- }
- }
+// for (TaxonRelationship relationship : element.getTaxonRelations()) {
+// if (relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())
+// && relationship.getFromTaxon().equals(misapplication)) {
+// citation = relationship.getCitation();
+// microcitation = relationship.getCitationMicroReference();
+// }
+// }
monitor.worked(20);
// Remove misapplied name relation from taxon
element.removeTaxon(misapplication, TaxonRelationshipType.MISAPPLIED_NAME_FOR());
ICdmApplicationConfiguration controller;
- controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
+ controller = CdmStore.getCurrentApplicationConfiguration();
ITaxonService service = controller.getTaxonService();
TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
ICdmApplicationConfiguration controller;
- controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
+ controller = CdmStore.getCurrentApplicationConfiguration();
ITaxonService service = controller.getTaxonService();
if (synonym.getId() == 0){
element.removeSynonym(synonym);
} else {
-
- DeleteResult result = service.deleteSynonym(synonym, null);
+
+ DeleteResult result = service.deleteSynonym(synonym.getUuid(), element.getUuid(), null);
if (result.isError()){
MessageDialog.openError(null, "Delete failed", result.toString());
} else if (!result.getUpdatedObjects().isEmpty()){
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;\r
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;\r
\r
public class DeleteTaxonBaseOperation extends AbstractPersistentPostOperation {\r
\r
protected TaxonDeletionConfigurator configurator;\r
\r
- public DeleteTaxonBaseOperation(String label, IUndoContext undoContext,\r
- TaxonDeletionConfigurator configurator, IWorkbenchPage activePage, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
- super(label, undoContext, postOperationEnabled,\r
- conversationEnabled);\r
+ public DeleteTaxonBaseOperation(String label,\r
+ IUndoContext undoContext,\r
+ TaxonDeletionConfigurator configurator,\r
+ IWorkbenchPage activePage,\r
+ IPostOperationEnabled postOperationEnabled,\r
+ IConversationEnabled conversationEnabled,\r
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {\r
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);\r
this.configurator = configurator;\r
\r
}\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
public class DeleteTaxonOperation extends DeleteTaxonBaseOperation{\r
\r
private final Classification classification;\r
\r
- public DeleteTaxonOperation(String label, IUndoContext undoContext,\r
- Taxon taxon, TaxonDeletionConfigurator configurator, Classification classification, IWorkbenchPage activePage, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
- super(label, undoContext, configurator, activePage, postOperationEnabled, conversationEnabled);\r
+ public DeleteTaxonOperation(String label,\r
+ IUndoContext undoContext,\r
+ Taxon taxon,\r
+ TaxonDeletionConfigurator configurator,\r
+ Classification classification,\r
+ IWorkbenchPage activePage,\r
+ IPostOperationEnabled postOperationEnabled,\r
+ IConversationEnabled conversationEnabled,\r
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {\r
+ super(label, undoContext, configurator, activePage, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);\r
this.element = taxon;\r
\r
Set<TaxonNode> nodes = taxon.getTaxonNodes();\r
\r
ITaxonService service = controller.getTaxonService();\r
\r
-\r
DeleteResult result = service.deleteTaxon(element.getUuid(), configurator, classification.getUuid());\r
+
if (result.isError()){\r
MessageDialog.openError(null, "Delete failed", result.toString());\r
} else if (!result.getUpdatedObjects().isEmpty()){\r
import org.eclipse.core.runtime.IStatus;
import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
*/
public SwapSynonymAndAcceptedOperation(String label, IUndoContext undoContext,
- Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled) {
- super("Swap Synonym And Accepted Taxon Operation", undoContext, taxon, postOperationEnabled);
+ Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super("Swap Synonym And Accepted Taxon Operation", undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
this.synonym = synonym;
}
monitor.worked(20);
- CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym, element);
+ UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid());
monitor.worked(40);
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
getViewer().refresh();
super.changed(object);
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
}
import org.eclipse.zest.layouts.LayoutStyles;
import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
return layoutAlgoritm;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
}
return defaultService.delete(arg0);
}
-
}
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
+
@Override
public DeleteResult delete(UUID arg0) {
return defaultService.delete(arg0);
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
+ @Override
+ public DeleteResult deleteDescription(DescriptionBase description) {
+ return defaultService.deleteDescription(description);
+ }
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageNamedAreasInUse(boolean, java.lang.Integer, java.lang.Integer)
*/
return defaultService.pageNamedAreasInUse(includeAllParents, pageSize, pageNumber);
}
- /**
- * {@inheritDoc}
- */
- @Override
- public DeleteResult delete(UUID arg0) {
- return defaultService.delete(arg0);
- }
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
*/
@Override
- public DeleteResult deleteDescription(DescriptionBase arg0) {
- return defaultService.deleteDescription(arg0);
+ public DeleteResult delete(UUID uuid) {
+ return defaultService.deleteDescription(uuid);
}
- /**
- * {@inheritDoc}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescription(java.util.UUID)
*/
@Override
- public DeleteResult deleteDescription(UUID arg0) {
- return defaultService.deleteDescription(arg0);
+ public DeleteResult deleteDescription(UUID uuid) {
+ return defaultService.delete(uuid);
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescriptionElement(java.util.UUID)
*/
@Override
- public UUID deleteDescriptionElement(UUID arg0) {
- return defaultService.deleteDescriptionElement(arg0);
+ public UUID deleteDescriptionElement(UUID uuid) {
+ return defaultService.deleteDescriptionElement(uuid);
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Taxon)
*/
@Override
- public UpdateResult moveTaxonDescriptions(Taxon arg0, Taxon arg1) {
- return defaultService.moveTaxonDescriptions(arg0, arg1);
+ public UpdateResult moveTaxonDescriptions(Taxon sourceTaxon, Taxon targetTaxon) {
+ return defaultService.moveTaxonDescriptions(sourceTaxon, targetTaxon);
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescriptions(java.util.UUID, java.util.UUID)
*/
@Override
- public UpdateResult moveTaxonDescriptions(UUID arg0, UUID arg1) {
- return defaultService.moveTaxonDescriptions(arg0, arg1);
+ public UpdateResult moveTaxonDescriptions(UUID sourceTaxonUuid, UUID targetTaxonUuid) {
+ return defaultService.moveTaxonDescriptions(sourceTaxonUuid, targetTaxonUuid);
+
}
}
}
-
@Override
public <S extends TaxonNameBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.INameService#setAsGroupsBasionym(java.util.UUID)
+ */
+ @Override
+ public UpdateResult setAsGroupsBasionym(UUID nameUuid) {
+ return defaultService.delete(nameUuid);
+ }
+
+
@Override
public List<HashMap<String, String>> getNameRecords() {
return defaultService.delete(arg0);
}
- /**
- * {@inheritDoc}
- */
- @Override
- public UpdateResult setAsGroupsBasionym(UUID arg0) {
- return defaultService.setAsGroupsBasionym(arg0);
- }
-
-
return defaultService.getAllHierarchyDerivatives(specimen);
}
- /**
- * {@inheritDoc}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
*/
@Override
- public DeleteResult delete(UUID arg0) {
- return defaultService.delete(arg0);
+ public DeleteResult delete(UUID uuid) {
+ return defaultService.delete(uuid);
}
-
}
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
*/
@Override
- public DeleteResult delete(UUID arg0) {
- return defaultService.delete(arg0);
+ public DeleteResult delete(UUID uuid) {
+ return defaultService.delete(uuid);
}
// $Id$
/**
-* Copyright (C) 2013 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.
-*/
+ * Copyright (C) 2013 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.editor.view.dataimport.transientServices;
import java.io.IOException;
@Override
public UpdateResult swapSynonymAndAcceptedTaxon(Synonym arg0, Taxon arg1) {
return defaultService.swapSynonymAndAcceptedTaxon(arg0, arg1);
+
}
/**
String queryString, Classification classification, Set<NamedArea> namedAreas,
Set<PresenceAbsenceTerm> distributionStatus, List<Language> languages, boolean highlightFragments,
Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths)
- throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
+ throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
return defaultService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
}
return defaultService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
}
- @Override
- public Synonym changeRelatedTaxonToSynonym(Taxon fromTaxon, Taxon toTaxon,
- TaxonRelationshipType oldRelationshipType,
- SynonymRelationshipType synonymRelationshipType)
- throws DataChangeNoRollbackException {
+ @Override
+ public Synonym changeRelatedTaxonToSynonym(Taxon fromTaxon, Taxon toTaxon,
+ TaxonRelationshipType oldRelationshipType,
+ SynonymRelationshipType synonymRelationshipType)
+ throws DataChangeNoRollbackException {
- return defaultService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
- }
+ return defaultService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.service.ITaxonService#pageAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
return defaultService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
}
- @Override
- public DeleteResult isDeletable(TaxonBase object,
- DeleteConfiguratorBase config) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public DeleteResult isDeletable(TaxonBase object,
+ DeleteConfiguratorBase config) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public IncludedTaxaDTO listIncludedTaxa(UUID taxonUuid,
- IncludedTaxonConfiguration configuration) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public IncludedTaxaDTO listIncludedTaxa(UUID taxonUuid,
+ IncludedTaxonConfiguration configuration) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- @Override
- public TaxonBase findWithoutFlush(UUID uuid) {
- return defaultService.findWithoutFlush(uuid);
- }
+ @Override
+ public TaxonBase findWithoutFlush(UUID uuid) {
+ return defaultService.findWithoutFlush(uuid);
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByName(eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator)
return defaultService.findTaxaByName(config);
}
- @Override
- public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
- return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByIdentifier(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTerm, eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.persistence.query.MatchMode, boolean, java.lang.Integer, java.lang.Integer, java.util.List)
- */
- @Override
- public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier,
- DefinedTerm identifierType, TaxonNode subtreeFilter, MatchMode matchmode, boolean includeEntity,
- Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
- }
-
-
-
+ @Override
+ public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
+ }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByIdentifier(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTerm, eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.persistence.query.MatchMode, boolean, java.lang.Integer, java.lang.Integer, java.util.List)
+ */
+ @Override
+ public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier,
+ DefinedTerm identifierType, TaxonNode subtreeFilter, MatchMode matchmode, boolean includeEntity,
+ Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
+ return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
+ }
- @Override
- public SynonymRelationship moveSynonymToAnotherTaxon(
- SynonymRelationship oldSynonymRelation, UUID newTaxonUUID,
- boolean moveHomotypicGroup,
- SynonymRelationshipType newSynonymRelationshipType,
- Reference reference, String referenceDetail, boolean keepReference)
- throws HomotypicalGroupChangeException {
-
- return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxonUUID, moveHomotypicGroup, newSynonymRelationshipType, reference, referenceDetail, keepReference);
- }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
+ */
+ @Override
+ public DeleteResult deleteSynonym(UUID synonymUuid, UUID taxonUuid, SynonymDeletionConfigurator config) {
+ return defaultService.deleteSynonym(synonymUuid, taxonUuid, config);
+ }
/**
* {@inheritDoc}
+
*/
@Override
- public DeleteResult delete(UUID arg0) {
- return defaultService.delete(arg0);
+ public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid, UUID acceptedTaxonUuid) {
+ return defaultService.swapSynonymAndAcceptedTaxon(synonymUUid, acceptedTaxonUuid);
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(java.util.UUID, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, java.util.UUID)
*/
@Override
- public DeleteResult deleteSynonym(UUID arg0, UUID arg1, SynonymDeletionConfigurator arg2) {
- return defaultService.deleteSynonym(arg0, arg1, arg2);
+ public DeleteResult deleteTaxon(UUID taxonUuid, TaxonDeletionConfigurator config, UUID classificationUuid) {
+ return defaultService.deleteTaxon(taxonUuid, config, classificationUuid);
}
* {@inheritDoc}
*/
@Override
- public DeleteResult deleteTaxon(UUID arg0, TaxonDeletionConfigurator arg1, UUID arg2) {
- return defaultService.deleteTaxon(arg0, arg1, arg2);
+ public SynonymRelationship moveSynonymToAnotherTaxon(
+ SynonymRelationship oldSynonymRelation, UUID newTaxonUUID,
+ boolean moveHomotypicGroup,
+ SynonymRelationshipType newSynonymRelationshipType,
+ Reference reference, String referenceDetail, boolean keepReference)
+ throws HomotypicalGroupChangeException {
+
+ return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxonUUID, moveHomotypicGroup, newSynonymRelationshipType, reference, referenceDetail, keepReference);
}
- /**
- * {@inheritDoc}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
*/
@Override
- public UpdateResult swapSynonymAndAcceptedTaxon(UUID arg0, UUID arg1) {
- return defaultService.swapSynonymAndAcceptedTaxon(arg0, arg1);
+ public DeleteResult delete(UUID uuid) {
+ return defaultService.delete(uuid);
+
}
}
// $Id$
/**
-* Copyright (C) 2013 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.
-*/
+ * Copyright (C) 2013 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.editor.view.dataimport.transientServices;
import java.net.URI;
return defaultService.findByIdInVocabulary(id, vocabularyUuid, clazz);
}
- @Override
- public DeleteResult isDeletable(DefinedTermBase object,
- DeleteConfiguratorBase config) {
- return defaultService.isDeletable(object, config);
- }
+ @Override
+ public DeleteResult isDeletable(DefinedTermBase object,
+ DeleteConfiguratorBase config) {
+ return defaultService.isDeletable(object, config);
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.service.ITermService#listByTermType(eu.etaxonomy.cdm.model.common.TermType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
return defaultService.listByTermType(termType, limit, start, orderHints, propertyPaths);
}
- @Override
- public DefinedTermBase findWithoutFlush(UUID uuid) {
- return defaultService.findWithoutFlush(uuid);
- }
+ @Override
+ public DefinedTermBase findWithoutFlush(UUID uuid) {
+ return defaultService.findWithoutFlush(uuid);
+ }
- @Override
- public <S extends DefinedTermBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
- return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
- }
+ @Override
+ public <S extends DefinedTermBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
+ }
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
*/
@Override
- public DeleteResult delete(UUID arg0) {
- return defaultService.delete(arg0);
+ public DeleteResult delete(UUID uuid) {
+ return defaultService.delete(uuid);
}
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
provider.toggleShowOnlyIndividualAssociations();
viewer.refresh();
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
}
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* <p>DeleteDescriptionHandler class.</p>
IWorkbenchPart part = HandlerUtil.getActivePart(event);
IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled = (part instanceof ICdmEntitySessionEnabled) ? (ICdmEntitySessionEnabled) part : null;
try {
String label = event.getCommand().getName();
// TaxonDescription
if(object instanceof TaxonDescription){
- operations.add(new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, postOperationEnabled));
+ operations.add(new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, postOperationEnabled, cdmEntitySessionEnabled));
}
else if(object instanceof SpecimenDescription){
- operations.add(new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, postOperationEnabled));
+ operations.add(new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, postOperationEnabled, cdmEntitySessionEnabled)) ;
}
// DescriptionElementBase
else if(object instanceof DescriptionElementBase){
- operations.add(new DeleteDescriptionElementOperation(label, undoContext, (DescriptionElementBase) object, postOperationEnabled));
+ operations.add(new DeleteDescriptionElementOperation(label, undoContext, (DescriptionElementBase) object, postOperationEnabled, cdmEntitySessionEnabled));
}
else if(object instanceof FeatureNodeContainer){
List<DescriptionElementBase> descriptions = ((FeatureNodeContainer) object).getDescriptionElementsForEntireBranch();
for(DescriptionElementBase description : descriptions){
- operations.add(new DeleteDescriptionElementOperation(label, undoContext, description, postOperationEnabled));
+ operations.add(new DeleteDescriptionElementOperation(label, undoContext, description, postOperationEnabled, cdmEntitySessionEnabled));
}
}
// Media
try {
for(TaxonDescription description : descriptions){
operation = new MoveDescriptionToOtherTaxonOperation(event.getCommand().getName(),
- editor.getUndoContext(), description, newAcceptedTaxonNode, this, editor);
+ editor.getUndoContext(),
+ description,
+ newAcceptedTaxonNode,
+ this,
+ editor,
+ editor);
AbstractUtility.executeOperation(operation);
}
/**
* 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.
*/
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* <p>DeleteDescriptionElementOperation class.</p>
* @version 1.0
*/
public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperation {
-
- private DescriptionElementBase element;
+
+ private final DescriptionElementBase element;
private DescriptionBase description = null;
/**
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
*/
public DeleteDescriptionElementOperation(String label, IUndoContext undoContext,
- DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, postOperationEnabled);
-
+ DescriptionElementBase element, IPostOperationEnabled postOperationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
+
this.element = element;
}
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
+
description = element.getInDescription();
-
+
monitor.worked(20);
-
+
// Remove element from description
if (description == null) {
MessagingUtils.error(this.getClass(), "Couldn't find element's description!", null);
throws ExecutionException {
description.addElement(element);
-
+
return postExecute(element);
}
}
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
private final SpecimenDescription description;
- public DeleteSpecimenDescriptionOperation(String label, IUndoContext undoContext,
- SpecimenDescription description, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, description.getDescribedSpecimenOrObservation(), postOperationEnabled);
+ public DeleteSpecimenDescriptionOperation(String label,
+ IUndoContext undoContext,
+ SpecimenDescription description,
+ IPostOperationEnabled postOperationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, description.getDescribedSpecimenOrObservation(), postOperationEnabled, cdmEntitySessionEnabled);
this.description = description;
}
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @param description a {@link eu.etaxonomy.cdm.model.description.TaxonDescription} object.
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
*/
- public DeleteTaxonDescriptionOperation(String label, IUndoContext undoContext,
- TaxonDescription description, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, postOperationEnabled);
+ public DeleteTaxonDescriptionOperation(String label,
+ IUndoContext undoContext,
+ TaxonDescription description,
+ IPostOperationEnabled postOperationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
this.description = description;
element = description.getTaxon();
return postExecute(description);
}
return null;
-
+
}
/* (non-Javadoc)
// $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.
*/
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
*/
public class MoveDescriptionToOtherTaxonOperation extends
AbstractPersistentPostOperation {
-
- private TaxonNode newAcceptedTaxonNode;
- private TaxonDescription description;
-
+ private final TaxonNode newAcceptedTaxonNode;
+
+ private final TaxonDescription description;
+
/**
* <p>Constructor for ChangeAcceptedTaxonToSynonymOperation.</p>
*
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
public MoveDescriptionToOtherTaxonOperation(String label,
- IUndoContext undoContext, TaxonDescription description, TaxonNode targetTaxonNode,
- IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled); // FIXME is this the right constructor ???
+ IUndoContext undoContext,
+ TaxonDescription description,
+ TaxonNode targetTaxonNode,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled); // FIXME is this the right constructor ???
this.description = description;
this.newAcceptedTaxonNode = targetTaxonNode;
}
monitor.worked(20);
bind();
-
+
String moveMessage = String.format("Description moved from %s", EditorUtil.getActiveMultiPageTaxonEditor().getTaxon());
if(description.isProtectedTitleCache()){
String separator = "";
annotation.setAnnotationType(AnnotationType.TECHNICAL());
description.addAnnotation(annotation);
newAcceptedTaxonNode.getTaxon().addDescription(description);
- CdmStore.getService(IDescriptionService.class).saveOrUpdate(description);
+ CdmStore.getService(IDescriptionService.class).saveOrUpdate(description);
monitor.worked(40);
-
+
return postExecute(description);
}
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
public boolean onComplete() {
return true;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
}
// $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.
*/
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
/**
*/
public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends AbstractTaxeditorOperationTestBase {
- private TaxonNameBase newSynonymName;
+ private NonViralName newSynonymName;
private HomotypicalGroup homotypicalGroup;
private NonViralName<?> taxonName;
-
+
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
-
+
taxonName = NonViralName.NewInstance(null);
taxon = Taxon.NewInstance(taxonName, null);
-
+
homotypicalGroup = HomotypicalGroup.NewInstance();
newSynonymName = NonViralName.NewInstance(null);
-
+
operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
undoContext, taxon, homotypicalGroup, newSynonymName, postOperation);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- *
+ *
* Homotypic group is the Taxons homotypic group, so we expect the synonym to be homotypic to the accepted taxon.
- *
- * @throws ExecutionException
+ *
+ * @throws ExecutionException
*/
@Test
- public void testExecuteTaxonHomotypicGroup() throws ExecutionException {
+ public void testExecuteTaxonHomotypicGroup() throws ExecutionException {
homotypicalGroup.addTypifiedName(taxonName);
operation.execute(monitor, info);
-
+
Assert.assertTrue("Taxon should have a synonym now.", taxon.getSynonyms().size() > 0);
Assert.assertTrue("Taxon should have a homotypic synonym now", taxon.getHomotypicSynonymsByHomotypicGroup().size() > 0);
}
-
+
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- *
+ *
* Homotypic group is not the accepted taxons. Heterotypic synonym should be created.
- *
- * @throws ExecutionException
+ *
+ * @throws ExecutionException
*/
@Test
- public void testExecuteSynonymHomotypicGroup() throws ExecutionException {
+ public void testExecuteSynonymHomotypicGroup() throws ExecutionException {
// test heterotypic synonym
operation.execute(monitor, info);
-
+
Assert.assertTrue("Taxon should have a synonym now.", taxon.getSynonyms().size() > 0);
Assert.assertTrue("Taxon should have a homotypic group", taxon.getHomotypicSynonymyGroups().size() > 0);
Assert.assertEquals("Synonym relationship should be heterotypic", SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF(), taxon.getSynonymRelations().toArray(new SynonymRelationship[0])[0].getType());
}
-
+
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testUndoTaxonHomotypicGroup() throws ExecutionException {
homotypicalGroup.addTypifiedName(taxonName);
-
+
operation.execute(monitor, info);
operation.undo(monitor, info);
-
+
Assert.assertTrue("There should not be synonym relationships for the taxon", taxon.getSynonyms().size() == 0);
}
-
+
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testUndoSynonymHomotypicGroup() throws ExecutionException {
operation.execute(monitor, info);
operation.undo(monitor, info);
-
+
Assert.assertTrue("There should not be synonym relationships for the taxon", taxon.getSynonyms().size() == 0);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testRedoTaxonHomotypicGroup() throws ExecutionException {
homotypicalGroup.addTypifiedName(taxonName);
-
+
operation.execute(monitor, info);
- operation.undo(monitor, info);
+ operation.undo(monitor, info);
operation.redo(monitor, info);
-
+
Assert.assertTrue("Taxon should have a synonym now.", taxon.getSynonyms().size() > 0);
Assert.assertTrue("Taxon should have a homotypic synonym now", taxon.getHomotypicSynonymsByHomotypicGroup().size() > 0);
}
-
+
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testRedoSynonymHomotypicGroup() throws ExecutionException {
operation.execute(monitor, info);
- operation.undo(monitor, info);
+ operation.undo(monitor, info);
operation.redo(monitor, info);
-
+
Assert.assertTrue("Taxon should have a synonym now.", taxon.getSynonyms().size() > 0);
Assert.assertTrue("Taxon should have a homotypic group", taxon.getHomotypicSynonymyGroups().size() > 0);
Assert.assertEquals("Synonym relationship should be heterotypic", SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF(), taxon.getSynonymRelations().toArray(new SynonymRelationship[0])[0].getType());
// $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.
*/
private static DescriptionElementBase descriptionElement;
private static TaxonDescription description;
-
+
/**
* @throws java.lang.Exception
*/
public static void setUpBeforeClass() throws Exception {
taxon = Taxon.NewInstance(null, null);
descriptionElement = TextData.NewInstance();
-
+
description = TaxonDescription.NewInstance();
-
+
description.addElement(descriptionElement);
-
+
taxon.addDescription(description);
-
-
- operation = new DeleteDescriptionElementOperation("", undoContext, descriptionElement, postOperation);
+
+
+ operation = new DeleteDescriptionElementOperation("", undoContext, descriptionElement, postOperation, cdmEntitySessionEnabled);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
operation.execute(monitor, info);
-
+
Assert.assertTrue(taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().size() == 0);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
operation.undo(monitor, info);
-
+
Assert.assertTrue(taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().size() > 0);
Assert.assertEquals(descriptionElement, taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().toArray(new DescriptionElementBase[0])[0]);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
operation.redo(monitor, info);
-
+
Assert.assertTrue(taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().size() == 0);
}
}
/**
* 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.
*/
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperationTestBase {
private static final Logger logger = Logger
.getLogger(SwapSynonymAndAcceptedOperationTest.class);
-
+
private static AbstractPostOperation operation;
private static Taxon taxon;
private static NonViralName<?> oldTaxonName;
-
+
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
-
+
(new DefaultTermInitializer()).initialize();
-
+
// Create the original accepted taxon
oldTaxonName = NonViralName.NewInstance(null);
taxon = Taxon.NewInstance(oldTaxonName, null);
-
+
// Create its parent taxon
parentTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
parentTaxon.addTaxonomicChild(taxon, null, null);
// Give it a child taxon
childTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
childTaxon.setTaxonomicParent(taxon, null, null);
-
+
// Create a homotypic synonym for the accepted taxon
taxon.addHomotypicSynonymName(NonViralName.NewInstance(null), null, null);
// homotypicSynonym = Synonym.NewInstance(NonViralName.NewInstance(null), null);
// HomotypicalGroup acceptedHomotypicalGroup = HomotypicalGroup.NewInstance();
// acceptedHomotypicalGroup.addTypifiedName(oldTaxon.getName());
// acceptedHomotypicalGroup.addTypifiedName(homotypicSynonym.getName());
-
+
// Create a heterotypic synonym that will be used to create the new accepted taxon
oldSynonymName = NonViralName.NewInstance(null);
oldHeterotypicSynonym = Synonym.NewInstance(oldSynonymName, null);
heteroypicalGroup = HomotypicalGroup.NewInstance();
heteroypicalGroup.addTypifiedName(oldHeterotypicSynonym.getName());
taxon.addSynonym(oldHeterotypicSynonym, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());
-
+
// Create a misapplication
misapplication = Taxon.NewInstance(NonViralName.NewInstance(null), null);
- taxon.addMisappliedName(misapplication, null, null);
-
+ taxon.addMisappliedName(misapplication, null, null);
+
// Create a concept relation
concept = Taxon.NewInstance(NonViralName.NewInstance(null), null);
conceptRelationshipType = TaxonRelationshipType.CONGRUENT_TO();
- concept.addTaxonRelation(taxon, conceptRelationshipType, null, null);
-
+ concept.addTaxonRelation(taxon, conceptRelationshipType, null, null);
+
// Create a description
description = TaxonDescription.NewInstance();
taxon.addDescription(description);
-
+
operation = new SwapSynonymAndAcceptedOperation
- (null, undoContext, taxon, oldHeterotypicSynonym, postOperation);
+ (null, undoContext, taxon, oldHeterotypicSynonym, postOperation, cdmEntitySessionEnabled);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testExecute() throws ExecutionException {
operation.execute(null, null);
-
- // New taxon has correct name?
+
+ // New taxon has correct name?
Assert.assertEquals(taxon.getName(), oldSynonymName);
-
+
// New taxon has correct parent?
Assert.assertEquals(taxon.getTaxonomicParent(), parentTaxon);
-
+
// New taxon has correct child?
Assert.assertTrue(taxon.getTaxonomicChildren().contains(childTaxon));
-
+
// New taxon has 2 synonyms?
Assert.assertEquals(taxon.getSynonyms().size(), 2);
-
+
// New taxon has a synonym with the name of the previous accepted taxon?
Assert.assertTrue(taxon.getSynonymNames().contains(oldTaxonName));
-
+
// New taxon has misapplication?
Assert.assertTrue(taxon.getMisappliedNames().contains(misapplication));
-
+
// New taxon has 1 concept relation?
int conceptRelCount = 0;
for (TaxonRelationship relation : taxon.getTaxonRelations()) {
conceptRelCount++;
}
Assert.assertEquals(conceptRelCount, 1);
-
+
// New taxon has description?
taxon.getDescriptions().contains(description);
}
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testUndo() throws ExecutionException {
operation.undo(null, null);
-
+
// Assert.assertEquals(oldHomotypicalGroup, synonym.getHomotypicGroup());
}
-
+
/**
* Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * @throws ExecutionException
+ * @throws ExecutionException
*/
@Test
public void testRedo() throws ExecutionException {
operation.redo(null, null);
-
+
// Assert.assertEquals(newHomotypicalGroup, synonym.getHomotypicGroup());
}
eu.etaxonomy.taxeditor.navigation.internal,
eu.etaxonomy.taxeditor.navigation.key.polytomous,
eu.etaxonomy.taxeditor.navigation.navigator,
+ eu.etaxonomy.taxeditor.navigation.navigator.operation,
eu.etaxonomy.taxeditor.navigation.search
Require-Bundle: org.eclipse.ui,
org.eclipse.ui.navigator,
</with>
</activeWhen>
</handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.navigation.navigator.handler.RemotingChangeAcceptedTaxonToSynonymHandler"
+ commandId="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonym">
+ <activeWhen>
+ <reference
+ definitionId="isRemoting">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.navigation.navigator.handler.RemotingMoveFactualDataHandler"
+ commandId="eu.etaxonomy.taxeditor.navigation.moveFactualData">
+ <activeWhen>
+ <reference
+ definitionId="isRemoting">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.navigation.navigator.handler.RemotingMoveTaxonNodeHandler"
+ commandId="eu.etaxonomy.taxeditor.navigation.command.update.moveTaxon">
+ <activeWhen>
+ <reference
+ definitionId="isRemoting">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.navigation.navigator.handler.RemotingDeleteTaxonNodeHandler"
+ commandId="eu.etaxonomy.taxeditor.navigation.command.delete">
+ <activeWhen>
+ <reference
+ definitionId="isRemoting">
+ </reference>
+ </activeWhen>
+ </handler>
</extension>
class="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester"
id="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester"
namespace="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester"
- properties="isCdmStoreConnected"
+ properties="isCdmStoreConnected,isRemoting,isStandAlone"
type="java.lang.Object">
</propertyTester>
</extension>
</test>
</with>
</definition>
+ <definition
+ id="isRemoting">
+ <test
+ property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isRemoting">
+ </test>
+ </definition>
+ <definition
+ id="isStandAlone">
+ <test
+ property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isStandAlone">
+ </test>
+ </definition>
</extension>
<extension
point="eu.etaxonomy.taxeditor.store.cdmViewer">
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.ViewPart;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
import eu.etaxonomy.taxeditor.model.IContextListener;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
*
*/
public class PolytomousKeyViewPart extends ViewPart implements
- IConversationEnabled, IPostOperationEnabled {
+ IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled {
private class FilterModifyListener implements ModifyListener{
@Override
private IContextListener contextListener;
private final CdmFormFactory formFactory;
private Text text_filter;
+ private ICdmEntitySession cdmEntitySession;
private PolytomousKeyViewPartDataChangeBehavior dataChangeBehavior;
private void setInput() {
conversation = CdmStore.createConversation();
conversation.registerForDataStoreChanges(this);
+ cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+ CdmApplicationState.getCurrentDataChangeService().register(this);
List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);
if(!viewer.getControl().isDisposed()){
viewer.setInput(input);
*/
@Override
public void setFocus() {
+ if(cdmEntitySession != null) {
+ cdmEntitySession.bind();
+ }
viewer.getControl().setFocus();
}
conversation.unregisterForDataStoreChanges(this);
conversation.close();
CdmStore.getContextManager().removeContextListener(contextListener);
+ }
+ if(cdmEntitySession != null) {
+ cdmEntitySession.dispose();
}
super.dispose();
}
return (List<PolytomousKey>)viewer.getInput();
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<PolytomousKey> getRootEntities() {
+ return getKeys();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
}
// $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.
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
-
+
List<PolytomousKey> keys = selection.toList();
-
+
if(keys.isEmpty()){
return null;
}
-
+
boolean confirmation = MessagingUtils.confirmDialog("Confirm deletaion", "Do you want to delete the selected key" + (keys.size() == 1 ? "" : "s") + "?");
-
+
if(confirmation){
-
+
for(PolytomousKey key : keys){
try {
+ PolytomousKeyViewPart pkvp = (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false);
AbstractPostOperation operation = new DeleteOperation(
event.getCommand().getName(),
- NavigationUtil.getUndoContext(), key,
- (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false),
- (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false));
+ NavigationUtil.getUndoContext(), key,
+ pkvp,
+ pkvp,
+ pkvp);
NavigationUtil.executeOperation(operation);
} catch (NotDefinedException e) {
MessagingUtils.error(getClass(), e);
}
}
}
-
+
return null;
}
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
public class DeleteOperation extends AbstractPersistentPostOperation {
private final PolytomousKey key;
+ private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
/**
* @param label
*/
public DeleteOperation(String label, IUndoContext undoContext,
PolytomousKey key,
- IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
this.key = key;
+ this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
}
@Override
bind();
DeleteResult result = CdmStore.getService(IPolytomousKeyService.class).delete(key);
+
if (result.isError() && !result.getExceptions().isEmpty()){
MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
// $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.
*/
*/
public class Root extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory, IConversationEnabled {
- private ConversationHolder conversation;
-
+ private final ConversationHolder conversation;
+
/**
* <p>Constructor for Root.</p>
*
public Root (ConversationHolder conversation){
this.conversation = conversation;
}
-
+
/**
* <p>getParentBeans</p>
*
*/
public List<Classification> getParentBeans() {
List<String> propertyPaths = Arrays.asList(new String[]{"name"});
-
+
List<Classification> classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
-
+
if(classifications.size() == 0){
Classification classification = Classification.NewInstance("My Classification");
- AbstractPostOperation operation = new CreateClassification("Creating initial classification", NavigationUtil.getUndoContext(), classification, NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false));
+ AbstractPostOperation operation = new CreateClassification("Creating initial classification", NavigationUtil.getUndoContext(), classification, NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false));
NavigationUtil.executeOperation(operation);
-
+
classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
}
-
- return classifications;
+
+ return classifications;
}
/* (non-Javadoc)
*
* @return a {@link java.lang.String} object.
*/
- public String getFactoryId() {
+ @Override
+ public String getFactoryId() {
return null;
}
* @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
*/
/** {@inheritDoc} */
- public void saveState(IMemento memento) {
+ @Override
+ public void saveState(IMemento memento) {
}
/* (non-Javadoc)
* @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento)
*/
/** {@inheritDoc} */
- public IAdaptable createElement(IMemento memento) {
+ @Override
+ public IAdaptable createElement(IMemento memento) {
return null;
}
// $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.
*/
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.navigator.ILinkHelper;
/** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.taxon"{trunked}</code> */
public static final String ID = "eu.etaxonomy.taxeditor.navigation.taxonlinkhelper"; //$NON-NLS-1$
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.navigator.ILinkHelper#activateEditor(org.eclipse.ui.IWorkbenchPage, org.eclipse.jface.viewers.IStructuredSelection)
*/
/** {@inheritDoc} */
- public void activateEditor(IWorkbenchPage page,
+ @Override
+ public void activateEditor(IWorkbenchPage page,
IStructuredSelection selection) {
try {
if (selection == null || selection.isEmpty()) {
return;
}
- if (selection.getFirstElement() instanceof TaxonNode) {
- TaxonNode taxonNode = (TaxonNode) selection.getFirstElement();
- TaxonEditorInput taxonEditorInput;
-
- taxonEditorInput = TaxonEditorInput.NewInstance(taxonNode.getUuid());
-
- IEditorPart editor = null;
- if ((editor = page.findEditor(taxonEditorInput)) != null) {
- page.bringToTop(editor);
- }
- }
+// if (selection.getFirstElement() instanceof TaxonNode) {
+// TaxonNode taxonNode = (TaxonNode) selection.getFirstElement();
+// TaxonEditorInput taxonEditorInput;
+//
+// taxonEditorInput = TaxonEditorInput.NewInstance(taxonNode.getUuid());
+//
+// IEditorPart editor = null;
+// if ((editor = page.findEditor(taxonEditorInput)) != null) {
+// page.bringToTop(editor);
+// }
+// }
} catch (Exception e) {
MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
}
* @see org.eclipse.ui.navigator.ILinkHelper#findSelection(org.eclipse.ui.IEditorInput)
*/
/** {@inheritDoc} */
- public IStructuredSelection findSelection(IEditorInput editorInput) {
+ @Override
+ public IStructuredSelection findSelection(IEditorInput editorInput) {
if (editorInput instanceof TaxonEditorInput) {
TaxonNode taxonNode = ((TaxonEditorInput) editorInput).getTaxonNode();
if (taxonNode != null) {
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.navigator.CommonNavigator;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.model.common.CdmBase;
-
+import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNodeComparator;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.DataChangeBridge;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.LoginManager;
* @version 1.0
*/
public class TaxonNavigator extends CommonNavigator implements
- IPostOperationEnabled, IConversationEnabled, Observer {
+ IPostOperationEnabled, IConversationEnabled, Observer, ICdmEntitySessionEnabled {
/**
* Constant
private ConversationHolder conversation;
+ private ICdmEntitySession cdmEntitySession;
+
private String partNameCache;
private IDataChangeBehavior dataChangeBehavior;
+ private Root root;
+
/*
* (non-Javadoc)
*
// we do not preserve state. Closing the view, in contrary to
// closing the whole application
// should be handled by the state manager too
-
- return new Root(conversation);
+ root = new Root(conversation);
+ return root;
}
return new EmptyRoot();
}
* </p>
*/
public void init() {
+
if (CdmStore.isActive() && conversation == null) {
conversation = CdmStore.createConversation();
conversation.registerForDataStoreChanges(TaxonNavigator.this);
}
+ if (CdmStore.isActive() && cdmEntitySession == null) {
+ cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+ CdmApplicationState.getCurrentDataChangeService().register(this);
+ }
CdmStore.getLoginManager().addObserver(this);
}
getCommonViewer().refresh();
}
+ /**
+ * Refresh this navigators viewer
+ */
+ public void refresh(Set objects) {
+ for(Object obj : objects) {
+ getCommonViewer().refresh(obj);
+ }
+ }
+
/**
* Removes all content
*/
* a {@link org.eclipse.core.runtime.IProgressMonitor} object.
*/
public void restore(IMemento memento, IProgressMonitor monitor) {
+ root = new Root(conversation);
if (memento == null) {
- getCommonViewer().setInput(new Root(conversation));
+ getCommonViewer().setInput(root);
return;
}
int mementoWork = 0;
subProgressMonitor.worked(1);
conversation.registerForDataStoreChanges(TaxonNavigator.this);
subProgressMonitor.worked(1);
- getCommonViewer().setInput(new Root(conversation));
+ getCommonViewer().setInput(root);
subProgressMonitor.worked(1);
getCommonViewer().refresh();
subProgressMonitor.worked(1);
if (conversation != null) {
conversation.unregisterForDataStoreChanges(this);
}
+ if(cdmEntitySession != null) {
+ cdmEntitySession.dispose();
+ }
}
/*
if (getConversationHolder() != null) {
getConversationHolder().bind();
}
+ if(cdmEntitySession != null) {
+ cdmEntitySession.bind();
+ }
}
/*
}
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<Classification> getRootEntities() {
+ if(root != null) {
+ return root.getParentBeans();
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ for(CdmBase cb : event.getChangedObjects()) {
+ if(cb instanceof TaxonNode) {
+ getCommonViewer().refresh(cb);
+ } else if (cb instanceof Classification) {
+ getCommonViewer().refresh();
+ }
+ }
+
+ }
}
/**
* 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.
*/
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorPart;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
* @created 01.04.2009
* @version 1.0
*/
-public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
+public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
IDataChangeBehavior {
- private TaxonNavigator source;
+ private final TaxonNavigator source;
private Set<CdmBase> staleObjects;
-
+
/**
* <p>Constructor for TaxonNavigatorDataChangeBehavior.</p>
*
public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator) {
source = taxonNavigator;
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
*/
* @return a boolean.
*/
public boolean isRelevant(CdmDataChangeMap events) {
-
+
// TODO react only on insert/update/delete of taxon and synonym objects
// and on update of name objects
boolean relevant = false;
staleObjects = new HashSet<CdmBase>();
-
+
for(CdmDataChangeEvent event : events.getAllEvents()){
EventType eventType = event.getEventType();
CdmBase eventEntity = event.getEntity();
-
+
+ Set<CdmBase> affectedObjects = event.getAffectedObjects();
+ if(affectedObjects != null) {
+ for(CdmBase cb : affectedObjects) {
+ staleObjects.add((CdmBase)HibernateProxyHelper.deproxy(cb));
+ }
+ }
+
// all tree node changes are relevant
- if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
+ if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
&& event.getEntity() instanceof ITaxonTreeNode){
return true;
}
-
+
// name updates of the accepted taxon of open editors are relevant
if(eventType == EventType.UPDATE && event.getEntity() instanceof TaxonNameBase){
TaxonNameBase name = null;
}else{
continue;
}
-
+
Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
/*for(IEditorPart editor : openEditors){
-
+
if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
return true;
}
if (eventType == EventType.DELETE){
return true;
}
-
+
+
+
if(eventType == EventType.UPDATE && event.getEntity() instanceof Taxon){
TaxonNameBase name = null;
if(eventEntity instanceof Taxon){
}else{
continue;
}
-
- Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
+
+ // Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
/*for(IEditorPart editor : openEditors){
-
+
if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
return true;
}
}*/
}
-
+
// if(eventType == EventType.UPDATE){
// relevant = true;
// CdmBase entity = event.getEntity();
// }
// }
}
-
+
return false;
-
+
// @deprecated
// react on everything except load
// if(events.sizeByEventType(EventType.INSERT) > 0){
final Display display = Display.getCurrent();
Job job = new Job("Updating Taxon Navigator") {
-
+
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Updating Taxon Navigator", 3);
monitor.worked(1);
-
+
// clear the session completely
monitor.subTask("Clearing Taxon Navigators session");
display.asyncExec(new Runnable() {
public void run() {
source.getConversationHolder().clear();
}
- });
- // FIXME completely clearing the session is a brute force approach.
+ });
+ // FIXME completely clearing the session is a brute force approach.
// It would be much more elegant to clear only those elements that have been changed.
// I could not get that to work but we should consider workin on this because we might
// run into serious performance issues, especially when it comes to large trees
// at least, we moved this to a job so it can run in a background thred
// seems to improve the situation but not sure if final solution
monitor.worked(1);
-
+
monitor.subTask("Refreshing viewer");
-
+
display.asyncExec(new Runnable() {
@Override
public void run() {
- source.refresh();
+ if(staleObjects != null && staleObjects.size() > 0) {
+ source.refresh(staleObjects);
+ } else {
+ source.refresh();
+ }
}
});
-
-
-
+
+
+
monitor.worked(1);
monitor.done();
return Status.OK_STATUS;
}
};
-
+
job.setPriority(Job.SHORT);
job.schedule();
-
+
}
}
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator;
+
+/**
+ * @author cmathew
+ * @date 19 Jun 2015
+ *
+ */
+public interface TaxonNavigatorLabels {
+
+ public static final String CHANGE_ACCEPTED_TAXON_TO_SYNONYM_LABEL = "Change Accepted Taxon to Synonym";
+ public static final String MOVE_TAXON_LABEL = "Move Taxon";
+ public static final String MOVE_FACTUAL_DATA_LABEL = "Move Factual Data";
+ public static final String DELETE_TAXON_NODE_LABEL = "Delete Taxon Node";
+
+ public static final String NO_TAXON_SELECTION_MESSAGE = "No taxon tree node selected for operation.";
+ public static final String SINGLE_TAXON_SELECTION_MESSAGE = "The chosen operation is available only for a single taxon.";
+ public static final String SOURCE_TAXON_HAS_CHILDREN_MESSAGE = "The chosen taxon must not have any childen. You need to move all childen to " +
+ "another taxon node in the TaxonNavigator before attempting to turn the accepted " +
+ "taxon into a synonym.";
+ public static final String RELATED_EDITOR_NOT_CLOSED_MESSAGE = "Could not close related taxon name editor. " +
+ "Please close it manually and try again.";
+ public static final String SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE = "Selected object is not a taxon tree node";
+ public static final String UNSAVED_CHANGES_MESSAGE = "There are unsaved changes in the source taxon. Please save first.";
+
+
+
+}
// $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.
-*/
+ * 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.navigation.navigator;
import java.util.Set;
import org.apache.log4j.Logger;
+import org.eclipse.core.commands.operations.AbstractOperation;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IconAndMessageDialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.ui.navigator.CommonDropAdapter;
import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
*/
public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant implements IPostOperationEnabled {
- private static final Logger logger = Logger.getLogger(TreeNodeDropAdapterAssistant.class);
-
- /** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked}</code> */
- public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$
-
- private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object)
- */
- /** {@inheritDoc} */
- @Override
- public IStatus handleDrop(CommonDropAdapter dropAdapter,
- DropTargetEvent dropTargetEvent, Object target) {
-
-
- if (target instanceof ITaxonTreeNode) {
- Set<TaxonNode> taxonNodes = getSelectedTaxa();
- ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
- if (targetTreeNode instanceof Classification){
- targetTreeNode = ((Classification)targetTreeNode).getRootNode();
- targetTreeNode = HibernateProxyHelper.deproxy(targetTreeNode, TaxonNode.class);
- }
- if(taxonNodes != null) {
- if (taxonNodes.size() == 1){
- return moveTaxon(taxonNodes.iterator().next(), targetTreeNode);
- } else{
- if( MessageDialog.openConfirm(null, "Moving taxon", "The operation move accepted taxon to other parent is available only for a single taxon.")){
- return null;
- }
- }
+ private static final Logger logger = Logger.getLogger(TreeNodeDropAdapterAssistant.class);
+
+ /** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked}</code> */
+ public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$
+
+ private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus handleDrop(CommonDropAdapter dropAdapter,
+ DropTargetEvent dropTargetEvent, Object target) {
+
+
+ if (target instanceof ITaxonTreeNode) {
+ Set<TaxonNode> taxonNodes = getSelectedTaxa();
+ ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
+ if (targetTreeNode instanceof Classification){
+ targetTreeNode = ((Classification)targetTreeNode).getRootNode();
+ targetTreeNode = HibernateProxyHelper.deproxy(targetTreeNode, TaxonNode.class);
}
- }
-
- return Status.CANCEL_STATUS;
- }
-
- private Set<TaxonNode> getSelectedTaxa(){
- HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
-
- ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
- if (selection instanceof TreeSelection) {
-
- Iterator selectionIterator = ((TreeSelection) selection).iterator();
-
- while (selectionIterator.hasNext()){
- Object object = selectionIterator.next();
- if(object instanceof TaxonNode){
- TaxonNode taxonNode = (TaxonNode) object;
- taxonNodes.add(taxonNode);
- }
- }
- }
- return taxonNodes.size() > 0 ? taxonNodes : null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#validateDrop(java.lang.Object, int, org.eclipse.swt.dnd.TransferData)
- */
- /** {@inheritDoc} */
- @Override
- public IStatus validateDrop(Object target, int operation,
- TransferData transferType) {
- if (target instanceof ITaxonTreeNode) {
-
- // check users permissions with target taxonnode and taxon
- if (target instanceof TaxonNode) {
- TaxonNode targetNode = (TaxonNode)target;
- Boolean hasTargetNodePermission = CdmStore.currentAuthentiationHasPermission(targetNode, UPDATE);
+ if(taxonNodes != null) {
+ if (taxonNodes.size() == 1){
+ return moveTaxon(taxonNodes.iterator().next(), targetTreeNode);
+ } else{
+ if( MessageDialog.openConfirm(null, "Moving taxon", "The operation move accepted taxon to other parent is available only for a single taxon.")){
+ return null;
+ }
+ }
+ }
+ }
+
+ return Status.CANCEL_STATUS;
+ }
+
+ private Set<TaxonNode> getSelectedTaxa(){
+ HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
+
+ ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
+ if (selection instanceof TreeSelection) {
+
+ Iterator selectionIterator = ((TreeSelection) selection).iterator();
+
+ while (selectionIterator.hasNext()){
+ Object object = selectionIterator.next();
+ if(object instanceof TaxonNode){
+ TaxonNode taxonNode = (TaxonNode) object;
+ taxonNodes.add(taxonNode);
+ }
+ }
+ }
+ return taxonNodes.size() > 0 ? taxonNodes : null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#validateDrop(java.lang.Object, int, org.eclipse.swt.dnd.TransferData)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus validateDrop(Object target, int operation,
+ TransferData transferType) {
+ if (target instanceof ITaxonTreeNode) {
+
+ // check users permissions with target taxonnode and taxon
+ if (target instanceof TaxonNode) {
+ TaxonNode targetNode = (TaxonNode)target;
+ Boolean hasTargetNodePermission = CdmStore.currentAuthentiationHasPermission(targetNode, UPDATE);
Boolean hasTargetTaxonPermission = CdmStore.currentAuthentiationHasPermission(targetNode.getTaxon(), UPDATE);
if(logger.isDebugEnabled()){
logger.debug("target: " + targetNode.getTaxon().getTitleCache());
}
- if(!hasTargetNodePermission || ! hasTargetNodePermission){
- if(logger.isDebugEnabled()){
- logger.debug("CANCEL_STATUS for target node: " + hasTargetNodePermission.toString() + " " + hasTargetTaxonPermission.toString() + " ");
- }
- return Status.CANCEL_STATUS;
- }
- }
-
- // do not allow to drop onto itself and
- // check users permissions with all selected taxon nodes and taxa
- for(TaxonNode taxonNode : getSelectedTaxa()){
- logger.debug("selectedTaxa: " + taxonNode.getTaxon().getTitleCache());
- Boolean isSameTaxonNode = taxonNode.equals(target);
- Boolean hasTaxonNodePermission = CdmStore.currentAuthentiationHasPermission(taxonNode, UPDATE);
- Boolean hasTaxonPermission = CdmStore.currentAuthentiationHasPermission(taxonNode.getTaxon(), UPDATE);
+ if(!hasTargetNodePermission || ! hasTargetNodePermission){
+ if(logger.isDebugEnabled()){
+ logger.debug("CANCEL_STATUS for target node: " + hasTargetNodePermission.toString() + " " + hasTargetTaxonPermission.toString() + " ");
+ }
+ return Status.CANCEL_STATUS;
+ }
+ }
+
+ // do not allow to drop onto itself and
+ // check users permissions with all selected taxon nodes and taxa
+ for(TaxonNode taxonNode : getSelectedTaxa()){
+ logger.debug("selectedTaxa: " + taxonNode.getTaxon().getTitleCache());
+ Boolean isSameTaxonNode = taxonNode.equals(target);
+ Boolean hasTaxonNodePermission = CdmStore.currentAuthentiationHasPermission(taxonNode, UPDATE);
+ Boolean hasTaxonPermission = CdmStore.currentAuthentiationHasPermission(taxonNode.getTaxon(), UPDATE);
if (
- isSameTaxonNode
- || !hasTaxonNodePermission
- || !hasTaxonPermission
- ) {
+ isSameTaxonNode
+ || !hasTaxonNodePermission
+ || !hasTaxonPermission
+ ) {
if(logger.isDebugEnabled()){
logger.debug("CANCEL_STATUS for selected " + isSameTaxonNode.toString() + " " + hasTaxonNodePermission.toString() + " " + hasTaxonPermission.toString() + " ");
}
- return Status.CANCEL_STATUS;
- }
- }
- logger.debug("OK_STATUS");
- return Status.OK_STATUS;
- }
- logger.debug("CANCEL_STATUS");
- return Status.CANCEL_STATUS;
- }
-
-
- /**
- * @param childTaxonNode
- * @param parentTaxon
- * @return
- */
- private IStatus moveTaxon(TaxonNode taxonNode, ITaxonTreeNode targetITaxonTreeNode) {
-
- TaxonNavigator taxonNavigator;
- taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
-
- if(targetITaxonTreeNode instanceof TaxonNode){
-
- TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode;
- // Make sure parent taxon does not have unsaved changes
- if (NavigationUtil.isDirty(targetTaxonNode)){
- MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +
- "changes in the parent taxon. Pleas save first.");
- return Status.CANCEL_STATUS;
- }
-
- }
- if (!PreferencesUtil.getSortNodesNaturally()){
- IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
- if (workspaceUndoContext == null) {
- logger.error("Workspace undo context is null. DND operation cancelled");
- return Status.CANCEL_STATUS;
- }
-
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true);
- NavigationUtil.executeOperation(operation);
-
- logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
- return Status.OK_STATUS;
- }else{
- String[] buttonLables = {"Parent", "Predecessor", "Cancel"};
- MessageDialog dialog = new MessageDialog(null, "Target node", null, "Do you want to use the target node as parent or do you want to move the taxon below the target.", MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0);
- dialog.open();
- int returnCode = dialog.getReturnCode();
- if (returnCode == 0){
- IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
- if (workspaceUndoContext == null) {
- logger.error("Workspace undo context is null. DND operation cancelled");
- return Status.CANCEL_STATUS;
- }
-
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true);
- NavigationUtil.executeOperation(operation);
-
- logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
- return Status.OK_STATUS;
- }else if (returnCode == 1){
- IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
- if (workspaceUndoContext == null) {
- logger.error("Workspace undo context is null. DND operation cancelled");
- return Status.CANCEL_STATUS;
- }
-
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, false);
- NavigationUtil.executeOperation(operation);
-
- logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
- return Status.OK_STATUS;
- } else{
- return Status.CANCEL_STATUS;
- }
-
-
- }
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
- */
- /** {@inheritDoc} */
- @Override
+ return Status.CANCEL_STATUS;
+ }
+ }
+ logger.debug("OK_STATUS");
+ return Status.OK_STATUS;
+ }
+ logger.debug("CANCEL_STATUS");
+ return Status.CANCEL_STATUS;
+ }
+
+
+ /**
+ * @param childTaxonNode
+ * @param parentTaxon
+ * @return
+ */
+ private IStatus moveTaxon(TaxonNode taxonNode, ITaxonTreeNode targetITaxonTreeNode) {
+
+ TaxonNavigator taxonNavigator;
+ taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
+
+ if(targetITaxonTreeNode instanceof TaxonNode){
+
+ TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode;
+ // Make sure parent taxon does not have unsaved changes
+ if (NavigationUtil.isDirty(targetTaxonNode)){
+ MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +
+ "changes in the parent taxon. Pleas save first.");
+ return Status.CANCEL_STATUS;
+ }
+
+ }
+ if (!PreferencesUtil.getSortNodesNaturally()){
+ IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
+ if (workspaceUndoContext == null) {
+ logger.error("Workspace undo context is null. DND operation cancelled");
+ return Status.CANCEL_STATUS;
+ }
+
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, taxonNode, (TaxonNode)targetITaxonTreeNode, true);
+ NavigationUtil.executeOperation(operation, null);
+ } else {
+ AbstractPostOperation operation = new MoveTaxonOperation
+ ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true);
+ NavigationUtil.executeOperation(operation);
+ }
+ logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
+ return Status.OK_STATUS;
+ }else{
+ String[] buttonLables = {"Parent", "Predecessor", "Cancel"};
+ MessageDialog dialog = new MessageDialog(null, "Target node", null, "Do you want to use the target node as parent or do you want to move the taxon below the target.", MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0);
+ dialog.open();
+ int returnCode = dialog.getReturnCode();
+ if (returnCode == 0){
+ IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
+ if (workspaceUndoContext == null) {
+ logger.error("Workspace undo context is null. DND operation cancelled");
+ return Status.CANCEL_STATUS;
+ }
+
+
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, taxonNode, (TaxonNode)targetITaxonTreeNode, true);
+ NavigationUtil.executeOperation(operation, null);
+ } else {
+ AbstractPostOperation operation = new MoveTaxonOperation
+ ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true);
+ NavigationUtil.executeOperation(operation);
+ }
+
+ logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
+ return Status.OK_STATUS;
+ }else if (returnCode == 1){
+ IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
+ if (workspaceUndoContext == null) {
+ logger.error("Workspace undo context is null. DND operation cancelled");
+ return Status.CANCEL_STATUS;
+ }
+
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, taxonNode, (TaxonNode)targetITaxonTreeNode, true);
+ NavigationUtil.executeOperation(operation, null);
+ } else {
+ AbstractPostOperation operation = new MoveTaxonOperation
+ ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, false);
+ NavigationUtil.executeOperation(operation);
+ }
+ logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
+ return Status.OK_STATUS;
+ } else{
+ return Status.CANCEL_STATUS;
+ }
+
+
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ /** {@inheritDoc} */
+ @Override
public boolean postOperation(CdmBase objectAffectedByOperation) {
- return true;
- }
-
- /**
- * <p>onComplete</p>
- *
- * @return a boolean.
- */
- @Override
+ return true;
+ }
+
+ /**
+ * <p>onComplete</p>
+ *
+ * @return a boolean.
+ */
+ @Override
public boolean onComplete() {
- // TODO Auto-generated method stub
- return false;
- }
+ // TODO Auto-generated method stub
+ return false;
+ }
}
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.navigation.navigator.handler;
import java.util.UUID;
import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.operation.ChangeAcceptedTaxonToSynonymOperation;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.DeleteOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
private UUID newAcceptedTaxonNodeUuid;
private TaxonNameEditor editor;
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
-
-
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+
activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
taxonNavigator = NavigationUtil.showNavigator();
String plural = selection.size() > 1 ? "s" : "";
// Prompt user for confirmation
-
-
+
+
Iterator selectionIterator = selection.iterator();
Set<ITaxonTreeNode> treeNodes = new HashSet<ITaxonTreeNode>();
AbstractPostOperation operation = null;
if (treeNodes.size() == 1 ){
try {
-
+
ITaxonTreeNode treeNode = treeNodes.iterator().next();
ITaxonTreeNode oldAcceptedTaxonNode =treeNode;
-
+
// check if taxon has no children
if(((TaxonNode)oldAcceptedTaxonNode).getCountChildren() > 0) {
- MessagingUtils.warningDialog("Prerequisite not met", this,
+ MessagingUtils.warningDialog("Prerequisite not met", this,
"The accepted taxon must not have any childen. You need to move all childen to " +
"another taxon node in the TaxonNavigator before attempting to turn the accepted " +
"taxon into a synonym.");
return null;
}
/*if(((TaxonNode)oldAcceptedTaxonNode).getTaxon().hasSynonyms()) {
- EditorUtil.warningDialog("Prerequisite not met", this,
+ EditorUtil.warningDialog("Prerequisite not met", this,
"The accepted taxon must not have any synonyms. You need to move all synonyms to " +
"another taxon before attempting to turn the accepted " +
"taxon into a synonym.");
return null;
}*/
-
+
List<UUID> excludeTaxa = new ArrayList<UUID>();
excludeTaxa.add(oldAcceptedTaxonNode.getUuid());
- TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
- taxonNavigator.getConversationHolder(),
- "Choose the accepted taxon",
- excludeTaxa,
- null,
- ((TaxonNode)oldAcceptedTaxonNode).getClassification());
+ TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ taxonNavigator.getConversationHolder(),
+ "Choose the accepted taxon",
+ excludeTaxa,
+ null,
+ ((TaxonNode)oldAcceptedTaxonNode).getClassification());
if (newAcceptedTaxonNode == null) {
return null;
}
-
+
if (allEditorsClosed){
-
- operation = new ChangeAcceptedTaxonToSynonymOperation(event.getCommand().getName(), NavigationUtil.getUndoContext(), oldAcceptedTaxonNode, newAcceptedTaxonNode,
- taxonNavigator, taxonNavigator);
-
+
+ operation = new ChangeAcceptedTaxonToSynonymOperation(event.getCommand().getName(),
+ NavigationUtil.getUndoContext(),
+ oldAcceptedTaxonNode,
+ newAcceptedTaxonNode,
+ taxonNavigator,
+ taxonNavigator,
+ taxonNavigator);
+
NavigationUtil.executeOperation(operation);
//}
}
-
-
-
+
+
+
} catch (NotDefinedException e) {
MessagingUtils.warn(getClass(), "Command name not set");
}
return null;
}
}
-
-
+
+
return null;
-
+
}
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
/** {@inheritDoc} */
- public boolean postOperation(CdmBase objectAffectedByOperation) {
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
Display.getDefault().asyncExec(new Runnable(){
- public void run() {
+ @Override
+ public void run() {
EditorUtil.close(editor.getMultiPageTaxonEditor());
-
+
try {
MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);
if(possibleOpenEditor != null){
MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
}
}
-
+
});
-
-
+
+
return true;
}
*
* @return a boolean.
*/
- public boolean onComplete() {
+ @Override
+ public boolean onComplete() {
// TODO Auto-generated method stub
return false;
- }
+ }
}
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
+
+ String plural = selection.size() > 1 ? "s" : "";
+ // Prompt user for confirmation
+
+
+
Iterator selectionIterator = selection.iterator();
Set<ITaxonTreeNode> treeNodes = new HashSet<ITaxonTreeNode>();
/*if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
return null;
}*/
- operation = new DeleteOperation(
- event.getCommand().getName(), NavigationUtil.getUndoContext(),
- taxonNode, config, taxonNavigator, taxonNavigator);
- AbstractUtility.executeOperation(operation);
+ operation = new DeleteOperation(event.getCommand().getName(),
+ NavigationUtil.getUndoContext(),
+ taxonNode,
+ config,
+ taxonNavigator,
+ taxonNavigator,
+ taxonNavigator);
+
+ NavigationUtil.executeOperation(operation);
+
//}
}
return null;
}
if (allEditorsClosed){
- operation = new DeleteOperation(
- event.getCommand().getName(), NavigationUtil.getUndoContext(),
- treeNodes, new TaxonDeletionConfigurator(), taxonNavigator, taxonNavigator);
- AbstractUtility.executeOperation(operation);
+ operation = new DeleteOperation(event.getCommand().getName(),
+ NavigationUtil.getUndoContext(),
+ treeNodes,
+ new TaxonDeletionConfigurator(),
+ taxonNavigator,
+ taxonNavigator,
+ taxonNavigator);
+
+ NavigationUtil.executeOperation(operation);
+
}
}catch (NotDefinedException e) {
MessagingUtils.warn(getClass(), "Command name not set");
import java.util.List;
import java.util.UUID;
-import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.AnnotationType;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
"changes in the target taxon. Please save first.");
return null;
}
- for(TaxonDescription description : taxon.getDescriptions()){
- //reload to avoid session conflicts
- description = HibernateProxyHelper.deproxy(CdmStore.getService(IDescriptionService.class).load(description.getUuid()), TaxonDescription.class);
+ CdmStore.getService(IDescriptionService.class).moveTaxonDescriptions(taxon.getUuid(),targetTaxonNode.getTaxon().getUuid());
- String moveMessage = String.format("Description moved from %s", taxon);
- if(description.isProtectedTitleCache()){
- String separator = "";
- if(!StringUtils.isBlank(description.getTitleCache())){
- separator = " - ";
- }
- description.setTitleCache(description.getTitleCache() + separator + moveMessage, true);
- }
- Annotation annotation = Annotation.NewInstance(moveMessage, Language.getDefaultLanguage());
- annotation.setAnnotationType(AnnotationType.TECHNICAL());
- description.addAnnotation(annotation);
- targetTaxonNode.getTaxon().addDescription(description);
- CdmStore.getService(IDescriptionService.class).saveOrUpdate(description);
- navigator.getConversationHolder().bind();
- navigator.getConversationHolder().commit();
- }
+ navigator.getConversationHolder().bind();
+ navigator.getConversationHolder().commit();
Display.getDefault().asyncExec(new Runnable(){
/**
* 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.
*/
package eu.etaxonomy.taxeditor.navigation.navigator.handler;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import java.util.UUID;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.expressions.EvaluationContext;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.ITreeNode;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionNaturalOrderDialog;
/**
* <p>MoveTaxonHandler class.</p>
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
TaxonNavigator taxonNavigator = (TaxonNavigator)NavigationUtil.showView(TaxonNavigator.ID);
-
+
TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
-
+
Iterator selectionIterator = selection.iterator();
TaxonNode taxonNode = null;
UUID taxonNodeUUID = null;
// do not show the current selection
List<UUID> excludeTaxa = new ArrayList<UUID>();
-
+
+
if (selection.size() == 1){
Object object = selectionIterator.next();
if(object instanceof TaxonNode){
return null;
}
}
-
-
+
+
+
// TaxonNode taxonNode = (TaxonNode) selection.getFirstElement();
if (taxonNode != null){
- boolean moveToNewParent = true;
+ boolean moveToNewParent = true;
if (PreferencesUtil.getSortNodesNaturally()){
if(!MessageDialog.openQuestion(null, "Target node", "The choosen target node should be the parent?")){
moveToNewParent = false;
"changes in the parent taxon. Please save first.");
return null;
}
-
+
AbstractPostOperation operation = new MoveTaxonOperation
("Move taxon to new parent", NavigationUtil.getUndoContext(),
taxonNode, parentTaxonNode, taxonNavigator, taxonNavigator, moveToNewParent); //$NON-NLS-1$
NavigationUtil.executeOperation(operation);
taxonNavigator.refresh();
-
+
}
}
+
return null;
}
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
/** {@inheritDoc} */
- public boolean postOperation(CdmBase objectAffectedByOperation) {
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
return true;
}
*
* @return a boolean.
*/
- public boolean onComplete() {
+ @Override
+ public boolean onComplete() {
return false;
}
-
-
-
+
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator.handler;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.common.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
+
+/**
+ * @author cmathew
+ * @date 16 Jun 2015
+ *
+ */
+public class NavigatorHandlerUtils {
+
+ protected static boolean closeObsoleteEditor(ExecutionEvent event, TaxonNode taxonNode){
+ IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+ boolean result = true;
+ for (IEditorReference ref : activePage.getEditorReferences()) {
+ try {
+ String treeIndex = ((ITreeNode)taxonNode).treeIndex();
+
+
+ IEditorInput input = ref.getEditorInput();
+ if (input instanceof TaxonEditorInput) {
+ TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
+ //if node is a child of taxonNode then close the editor
+ if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){
+ //if (taxonNode.equals(node)) {
+ result &= activePage.closeEditor(ref.getEditor(false), true);
+
+ }
+ }
+ } catch (PartInitException e) {
+ continue;
+ }
+ }
+ return result;
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingChangeAcceptedTaxonToSynonymOperation;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+/**
+ * <p>ChangeAcceptedTaxonToSynonymHandler class.</p>
+ *
+ * @author n.hoffmann
+ * @created Jan 4, 2010
+ * @version 1.0
+ */
+public class RemotingChangeAcceptedTaxonToSynonymHandler extends RemotingCdmHandler {
+
+ private static final Logger logger = Logger
+ .getLogger(RemotingChangeAcceptedTaxonToSynonymHandler.class);
+
+
+ private ITaxonTreeNode oldTaxonNode;
+
+ /**
+ * @param label
+ */
+ public RemotingChangeAcceptedTaxonToSynonymHandler() {
+ super(TaxonNavigatorLabels.CHANGE_ACCEPTED_TAXON_TO_SYNONYM_LABEL);
+ }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public IStatus allowOperations(ExecutionEvent event) {
+ TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
+ // check that only a single taxon tree node has been selected
+ if(selection.size() > 1) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SINGLE_TAXON_SELECTION_MESSAGE);
+ }
+
+ // check for no taxon tree node selected
+ if(selection.size() == 0) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.NO_TAXON_SELECTION_MESSAGE);
+ }
+
+ // check that selected object is a taxon node
+ Object obj = selection.iterator().next();
+ if(obj instanceof ITaxonTreeNode) {
+ oldTaxonNode = (ITaxonTreeNode)obj;
+ } else {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
+ }
+ // check that the source taxon node does not have children
+ if(((TaxonNode)oldTaxonNode).getCountChildren() > 0) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SOURCE_TAXON_HAS_CHILDREN_MESSAGE);
+
+ }
+
+ // check if corresponding name editor is closed
+ boolean editorClosed = NavigatorHandlerUtils.closeObsoleteEditor(event, (TaxonNode) oldTaxonNode);
+ if(editorClosed != true) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.RELATED_EDITOR_NOT_CLOSED_MESSAGE);
+ }
+
+ return Status.OK_STATUS;
+ }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#doOperations(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public AbstractOperation prepareOperation(ExecutionEvent event) {
+ List<UUID> excludeTaxa = new ArrayList<UUID>();
+ excludeTaxa.add(oldTaxonNode.getUuid());
+ TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ new ConversationHolderMock(),
+ "Choose the accepted taxon",
+ excludeTaxa,
+ null,
+ ((TaxonNode)oldTaxonNode).getClassification());
+
+ if (newAcceptedTaxonNode == null) {
+ return null;
+ }
+
+ RemotingChangeAcceptedTaxonToSynonymOperation rcattso =
+ new RemotingChangeAcceptedTaxonToSynonymOperation(event.getTrigger(),
+ false,
+ oldTaxonNode.getUuid(),
+ newAcceptedTaxonNode.getUuid());
+
+ return rcattso;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public void onComplete() {
+ // TODO Auto-generated method stub
+
+ }
+
+
+
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.navigation.navigator.handler;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator.ChildHandling;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingDeleteTaxonNodeOperation;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
+import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDialog;
+
+/**
+ * @author cmathew
+ * @date 22 Jun 2015
+ *
+ */
+public class RemotingDeleteTaxonNodeHandler extends RemotingCdmHandler {
+
+ private TaxonDeletionConfigurator config;
+ private Set<ITaxonTreeNode> treeNodes;
+
+ /**
+ * @param label
+ */
+ public RemotingDeleteTaxonNodeHandler() {
+ super(TaxonNavigatorLabels.DELETE_TAXON_NODE_LABEL);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public IStatus allowOperations(ExecutionEvent event) {
+ TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
+
+ Iterator selectionIterator = selection.iterator();
+ treeNodes = new HashSet<ITaxonTreeNode>();
+
+ while (selectionIterator.hasNext()){
+ Object object = selectionIterator.next();
+ if(object instanceof ITaxonTreeNode) {
+ treeNodes.add((ITaxonTreeNode) object);
+ }
+ }
+ boolean allEditorsClosed = true;
+ IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+ for (ITaxonTreeNode treeNode : treeNodes) {
+ if(treeNode instanceof TaxonNode) {
+ allEditorsClosed &= EditorUtil.closeObsoleteEditor((TaxonNode) treeNode, activePage);
+ }
+ }
+ if(!allEditorsClosed) {
+ return new Status(IStatus.WARNING,
+ "unknown",
+ TaxonNavigatorLabels.RELATED_EDITOR_NOT_CLOSED_MESSAGE);
+ }
+
+ config = new TaxonDeletionConfigurator();
+
+ if (treeNodes.size() == 1 ){
+
+ ITaxonTreeNode treeNode = treeNodes.iterator().next();
+ ITaxonTreeNode taxonNode = treeNode;
+ TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
+ if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){
+ return Status.CANCEL_STATUS;
+ }
+ } else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
+ return Status.CANCEL_STATUS;
+ }
+ } else {
+
+ if (taxonNode.hasChildNodes()){
+ DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
+ config,
+ HandlerUtil.getActiveShell(event),
+ "Confirm Deletion",
+ null,
+ "Do you really want to delete the selected node? It has childnodes, they will be deleted, too.",
+ MessageDialog.WARNING, new String[] { "Delete all children",
+ "Move children to parent node", "Skip" }, 0);
+ int result = dialog.open();
+
+ if (result == 0){
+ //delete all children
+ configNodes.setChildHandling(ChildHandling.DELETE);
+ config.setTaxonNodeConfig(configNodes);
+ } else if (result == 1){
+ //move children
+ configNodes.setChildHandling(ChildHandling.MOVE_TO_PARENT);
+ config.setTaxonNodeConfig(configNodes);
+ } else if (result == 2){
+ return Status.CANCEL_STATUS;
+ }
+ } else{
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){
+ return Status.CANCEL_STATUS;
+ }
+ }
+ }
+ }
+ return Status.OK_STATUS;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public AbstractOperation prepareOperation(ExecutionEvent event) {
+ return new RemotingDeleteTaxonNodeOperation(event.getTrigger(),
+ false,
+ treeNodes,
+ config);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete()
+ */
+ @Override
+ public void onComplete() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator.handler;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveFactualDataOperation;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+/**
+ * @author cmathew
+ * @date 19 Jun 2015
+ *
+ */
+public class RemotingMoveFactualDataHandler extends RemotingCdmHandler {
+
+
+ private TaxonNode sourceTaxonNode;
+ private TaxonNode targetTaxonNode;
+ /**
+ * @param label
+ */
+ public RemotingMoveFactualDataHandler() {
+ super(TaxonNavigatorLabels.MOVE_FACTUAL_DATA_LABEL);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public IStatus allowOperations(ExecutionEvent event) {
+ TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
+ // check that only a single taxon tree node has been selected
+ if(selection.size() > 1) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SINGLE_TAXON_SELECTION_MESSAGE);
+ }
+
+ // check for no taxon tree node selected
+ if(selection.size() == 0) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.NO_TAXON_SELECTION_MESSAGE);
+ }
+
+ // check that selected object is a taxon node
+ Object obj = selection.iterator().next();
+ if(obj instanceof ITaxonTreeNode) {
+ sourceTaxonNode = (TaxonNode)obj;
+ } else {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
+ }
+
+ if(NavigationUtil.isDirty(sourceTaxonNode)) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.UNSAVED_CHANGES_MESSAGE);
+ }
+
+ List<UUID> excludeTaxa = new ArrayList<UUID>();
+ excludeTaxa.add(sourceTaxonNode.getTaxon().getUuid());
+
+ targetTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ new ConversationHolderMock(),
+ "Choose the accepted taxon",
+ excludeTaxa,
+ null,
+ null);
+
+ if(targetTaxonNode == null) {
+ return new Status(IStatus.CANCEL,
+ "unknown",
+ "");
+ }
+ if(NavigationUtil.isDirty(targetTaxonNode)){
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.UNSAVED_CHANGES_MESSAGE);
+ }
+ return Status.OK_STATUS;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public AbstractOperation prepareOperation(ExecutionEvent event) {
+ return new RemotingMoveFactualDataOperation(event.getTrigger(),
+ false,
+ sourceTaxonNode.getTaxon().getUuid(),
+ targetTaxonNode.getTaxon().getUuid());
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete()
+ */
+ @Override
+ public void onComplete() {
+ Display.getDefault().asyncExec(new Runnable(){
+ @Override
+ public void run() {
+ try {
+ //close and re-open to refresh factual data view
+ MultiPageTaxonEditor sourceEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(sourceTaxonNode.getUuid());
+ MultiPageTaxonEditor targetEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(targetTaxonNode.getUuid());
+ if(targetEditor != null){
+ AbstractUtility.close(sourceEditor);
+ AbstractUtility.close(targetEditor);
+ }
+ EditorUtil.openTaxonNode(sourceTaxonNode.getUuid());
+ EditorUtil.openTaxonNode(targetTaxonNode.getUuid());
+ } catch (PartInitException e) {
+ MessagingUtils.error(this.getClass(), e);
+ throw new RuntimeException(e);
+ } catch (Exception e) {
+ MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
+ }
+ }
+
+ });
+
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.navigation.navigator.handler;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+/**
+ * @author cmathew
+ * @date 19 Jun 2015
+ *
+ */
+public class RemotingMoveTaxonNodeHandler extends RemotingCdmHandler {
+
+ private TaxonNode oldTaxonNode;
+
+ public RemotingMoveTaxonNodeHandler() {
+ super(TaxonNavigatorLabels.MOVE_TAXON_LABEL);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public IStatus allowOperations(ExecutionEvent event) {
+ TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
+ // check that only a single taxon tree node has been selected
+ if(selection.size() > 1) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SINGLE_TAXON_SELECTION_MESSAGE);
+ }
+
+ // check for no taxon tree node selected
+ if(selection.size() == 0) {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.NO_TAXON_SELECTION_MESSAGE);
+ }
+ // check that selected object is a taxon node
+ Object obj = selection.iterator().next();
+ if(obj instanceof TaxonNode) {
+ oldTaxonNode = (TaxonNode)obj;
+ } else {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
+ }
+ return Status.OK_STATUS;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public AbstractOperation prepareOperation(ExecutionEvent event) {
+ TaxonNode parentTaxonNode;
+
+ List<UUID> excludeTaxa = new ArrayList<UUID>();
+ excludeTaxa.add(oldTaxonNode.getUuid());
+
+ boolean moveToNewParent = true;
+
+ if (PreferencesUtil.getSortNodesNaturally()){
+ if(!MessageDialog.openQuestion(null, "Target node", "The choosen target node should be the parent?")){
+ moveToNewParent = false;
+ }
+ parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ new ConversationHolderMock(),
+ "Choose the taxon above the moved taxon.",
+ excludeTaxa,
+ null,
+ null);
+ } else {
+ parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ new ConversationHolderMock(),
+ "Choose new parent",
+ excludeTaxa,
+ null,
+ null);
+ }
+ if(parentTaxonNode != null){
+ if(NavigationUtil.isDirty(parentTaxonNode)){
+ MessageDialog.openWarning(HandlerUtil.getActiveShell(event),
+ "Unsaved Parent Taxon",
+ "There are unsaved changes in the parent taxon. Please save first.");
+ return null;
+ }
+
+ return new RemotingMoveTaxonOperation(event.getTrigger(),
+ false,
+ oldTaxonNode.getUuid(),
+ parentTaxonNode.getUuid(),
+ moveToNewParent);
+ }
+
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete()
+ */
+ @Override
+ public void onComplete() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
DeleteOperation {
private final TaxonNode newAcceptedTaxonNode;
+ private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
//private TaxonNode oldTaxonNode;
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
public ChangeAcceptedTaxonToSynonymOperation(String label,
- IUndoContext undoContext, ITaxonTreeNode oldTaxonNode, TaxonNode newAcceptedTaxonNode,
- IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
- super(label, undoContext, oldTaxonNode, new TaxonDeletionConfigurator(),postOperationEnabled, conversationEnabled);
+ IUndoContext undoContext,
+ ITaxonTreeNode oldTaxonNode,
+ TaxonNode newAcceptedTaxonNode,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, oldTaxonNode, new TaxonDeletionConfigurator(),postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
this.newAcceptedTaxonNode = newAcceptedTaxonNode;
+ this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
}
monitor.worked(20);
bind();
+
Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
try {
- DeleteResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode((TaxonNode) taxonNode, newAcceptedTaxonNode, null, null, null);
-
+
+ UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null);
+
if (!result.getExceptions().isEmpty() && result.isOk()){
String separator = ", ";
String exceptionString = "";
// $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.
-*/
+ * 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.navigation.navigator.operation;
+import java.util.HashSet;
import java.util.Set;
+import java.util.UUID;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
*/
public class DeleteOperation extends AbstractPersistentPostOperation{
- private Set<ITaxonTreeNode> treeNodes;
- protected final TaxonDeletionConfigurator config;
+ private Set<ITaxonTreeNode> treeNodes;
+ protected final TaxonDeletionConfigurator config;
+ private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
+ /**
+ * <p>Constructor for DeleteTreeNodeOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
+ * @param treeNodes a {@link java.util.Set} object.
+ */
+ public DeleteOperation(String label, IUndoContext undoContext,
+ ITaxonTreeNode taxonNode, TaxonDeletionConfigurator config,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+ this.taxonNode = (ITaxonTreeNode)CdmBase.deproxy(taxonNode, CdmBase.class);
+ this.config = config;
+ this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
+ }
+
+ /**
+ * <p>Constructor for DeleteTreeNodeOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
+ * @param treeNodes a {@link java.util.Set} object.
+ */
+ public DeleteOperation(String label, IUndoContext undoContext,
+ Set<ITaxonTreeNode> treeNodes, TaxonDeletionConfigurator config,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+ this.treeNodes = treeNodes;
+ this.config = config;
+ this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
+ }
- /**
- * <p>Constructor for DeleteTreeNodeOperation.</p>
- *
- * @param label a {@link java.lang.String} object.
- * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
- * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
- * @param treeNodes a {@link java.util.Set} object.
- */
- public DeleteOperation(String label, IUndoContext undoContext,
- ITaxonTreeNode taxonNode, TaxonDeletionConfigurator config,
- IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
- this.taxonNode = (ITaxonTreeNode)CdmBase.deproxy(taxonNode, CdmBase.class);
- this.config = config;
- }
-
- /**
- * <p>Constructor for DeleteTreeNodeOperation.</p>
- *
- * @param label a {@link java.lang.String} object.
- * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
- * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
- * @param treeNodes a {@link java.util.Set} object.
- */
- public DeleteOperation(String label, IUndoContext undoContext,
- Set<ITaxonTreeNode> treeNodes, TaxonDeletionConfigurator config,
- IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
- this.treeNodes = treeNodes;
- this.config = config;
- }
/* (non-Javadoc)
}else if(taxonNode != null && taxonNode instanceof Classification){
Classification taxonomicTree = (Classification) taxonNode;
- /*if(taxonomicTree.hasChildNodes()){
- if(! MessageDialog.openConfirm(null, "Confirm Deletion", "The selected tree has children, do yu realy want to delete the whole tree with its children?")){
- return null;
- }
- }*/
- DeleteResult result = CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
- if (result.isError() && !result.getExceptions().isEmpty()){
- //TODO:Error message!
- MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
- }
-
- /*}else{
- try{
- CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
- }catch(ReferencedObjectUndeletableException e){
- throw new ExecutionException(e.getMessage());
- }
- }*/
- } else {
-
- DeleteResult result =service.deleteTaxonNodes(treeNodes, config);
- if (result.isError() && !result.getExceptions().isEmpty()){
- //TODO:Error message!
- MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
- }
+ DeleteResult result = CdmStore.getService(IClassificationService.class).delete(taxonomicTree.getUuid());
+ if (result.isError() && !result.getExceptions().isEmpty()){
+ //TODO:Error message!
+ MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
+ }
+ } else {
+ Set<UUID> treeNodeUuids = new HashSet<UUID>();
+ ITaxonTreeNode entity = null;
+ for(ITaxonTreeNode treeNode : treeNodes) {
+ if(entity == null) {
+ entity = treeNode;
+ }
+ treeNodeUuids.add(treeNode.getUuid());
+ }
+
+ DeleteResult result = service.deleteTaxonNodes(treeNodeUuids, config);
+ if (result.isError() && !result.getExceptions().isEmpty()){
+ //TODO:Error message!
+ MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
}
- monitor.worked(40);
- return postExecute(null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
- /** {@inheritDoc} */
- @Override
- public IStatus redo(IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
- /** {@inheritDoc} */
- @Override
- public IStatus undo(IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException {
- return null;
- }
+ }
+
+ monitor.worked(40);
+
+ return postExecute(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ return null;
+ }
}
// $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.
*/
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @version 1.0
*/
public class EditClassificationOperation extends AbstractPersistentPostOperation {
- private Classification classification;
+ private final Classification classification;
/**
* <p>Constructor for EditTaxonomicTreeOperation.</p>
*/
public EditClassificationOperation(String label, IUndoContext undoContext, Classification classification,
IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
-
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+
this.classification = classification;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
bind();
-
+
CdmStore.getService(IClassificationService.class).save(classification);
-
+
monitor.worked(40);
return postExecute(classification);
-
+
}
/* (non-Javadoc)
package eu.etaxonomy.taxeditor.navigation.navigator.operation;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
/**
* A reference to the new taxonomical parent.
*/
- private ITaxonTreeNode newParentTreeNode;
+ private final ITaxonTreeNode newParentTreeNode;
/**
* A reference to the former taxonomical parents
*/
- //private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
- private TaxonNode taxonNode;
- private boolean moveToParentNode;
+
+
+ private final TaxonNode taxonNode;
+ private final boolean moveToParentNode;
+
+ /**
+ * <p>Constructor for MoveTaxonOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxonNodes a {@link java.util.Set} object.
+ * @param newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
+ */
+
+ public MoveTaxonOperation(String label,
+ IUndoContext undoContext,
+ TaxonNode taxonNodeToMove,
+ ITaxonTreeNode newParentTreeNode,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ boolean moveToParentNode) {
+ this(label, undoContext, taxonNodeToMove, newParentTreeNode, postOperationEnabled, conversationEnabled, null, moveToParentNode);
+ }
+
/**
* <p>Constructor for MoveTaxonOperation.</p>
*
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
- public MoveTaxonOperation(String label, IUndoContext undoContext,
- TaxonNode taxonNodeToMove, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled, boolean moveToParentNode) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
-
+
+ public MoveTaxonOperation(String label,
+ IUndoContext undoContext,
+ TaxonNode taxonNodeToMove,
+ ITaxonTreeNode newParentTreeNode,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled,
+ boolean moveToParentNode) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+
this.taxonNode = taxonNodeToMove;
/*for (TaxonNode node:taxonNodes){
this.taxonNodes.add(service.load(node.getUuid()));
}*/
-
+
+
this.newParentTreeNode = newParentTreeNode;
this.moveToParentNode = moveToParentNode;
// Save old parent ITaxonTreeNodes for undo
-
+
//this.parentNode = taxonNode.getParent();
+
}
/* (non-Javadoc)
// TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
// newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
// //taxonNodes.add(newTaxonNode);
-//
+//
// monitor.worked(2);
// }
// } catch(IllegalAncestryException e) {
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator.operation;
+
+import java.util.UUID;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+
+
+/**
+ * @author cmathew
+ * @date 17 Jun 2015
+ *
+ */
+public class RemotingChangeAcceptedTaxonToSynonymOperation extends RemotingCdmUpdateOperation {
+
+ private final UUID oldTaxonNodeUuid;
+ private final UUID newAcceptedTaxonNodeUuid;
+
+
+ private final static String LABEL = "Change Accepted Taxon to Synonym operation";
+
+ /**
+ * @param label
+ */
+ public RemotingChangeAcceptedTaxonToSynonymOperation(Object source,
+ boolean async,
+ UUID oldTaxonNodeUuid,
+ UUID newAcceptedTaxonNodeUuid) {
+ super(LABEL, Action.Update, source, async);
+ this.oldTaxonNodeUuid = oldTaxonNodeUuid;
+ this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
+ return CdmApplicationState.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(oldTaxonNodeUuid,
+ newAcceptedTaxonNodeUuid,
+ null,
+ null,
+ null);
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator.operation;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+
+/**
+ * @author cmathew
+ * @date 22 Jun 2015
+ *
+ */
+public class RemotingDeleteTaxonNodeOperation extends RemotingCdmUpdateOperation {
+
+ private final static String LABEL = "Delete Taxon Node operation";
+
+ private final Set<ITaxonTreeNode> treeNodes;
+ private final TaxonDeletionConfigurator config;
+
+ /**
+ * @param label
+ * @param action
+ * @param source
+ * @param async
+ */
+ public RemotingDeleteTaxonNodeOperation(Object source,
+ boolean async,
+ Set<ITaxonTreeNode> treeNodes,
+ TaxonDeletionConfigurator config) {
+ super(LABEL, Action.Delete, source, async);
+ this.treeNodes = treeNodes;
+ this.config = config;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
+ if(treeNodes.size() == 1) {
+ // when single node this is either a taxon or a classification
+ ITaxonTreeNode node = treeNodes.iterator().next();
+ if(node instanceof TaxonNode) {
+ return CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().deleteTaxonNode(((TaxonNode)node).getUuid(), config);
+ } else if(node instanceof Classification) {
+ return CdmApplicationState.getCurrentAppConfig().getClassificationService().delete(((Classification)node).getUuid());
+ }
+ } else {
+ // when list we assume all are taxon nodes
+ Set<UUID> treeNodeUuids = new HashSet<UUID>();
+ ITaxonTreeNode entity = null;
+ for(ITaxonTreeNode treeNode : treeNodes) {
+ if(entity == null) {
+ entity = treeNode;
+ }
+ treeNodeUuids.add(treeNode.getUuid());
+ }
+
+ return CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().deleteTaxonNodes(treeNodeUuids, new TaxonDeletionConfigurator());
+ }
+ return null;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator.operation;
+
+import java.util.UUID;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+
+/**
+ * @author cmathew
+ * @date 19 Jun 2015
+ *
+ */
+public class RemotingMoveFactualDataOperation extends RemotingCdmUpdateOperation {
+
+ private final static String LABEL = "Move Factual Data operation";
+
+ private final UUID sourceTaxonUuid;
+ private final UUID targetParentTaxonUuid;
+
+ /**
+ * @param label
+ * @param action
+ * @param source
+ * @param async
+ */
+ public RemotingMoveFactualDataOperation(Object source,
+ boolean async,
+ UUID sourceTaxonUuid,
+ UUID targetParentTaxonUuid) {
+ super(LABEL, Action.Update, source, async);
+ this.sourceTaxonUuid = sourceTaxonUuid;
+ this.targetParentTaxonUuid = targetParentTaxonUuid;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
+ return CdmApplicationState.getService(IDescriptionService.class).moveTaxonDescriptions(sourceTaxonUuid,
+ targetParentTaxonUuid);
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.navigation.navigator.operation;
+
+import java.util.UUID;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+
+/**
+ * @author cmathew
+ * @date 19 Jun 2015
+ *
+ */
+public class RemotingMoveTaxonOperation extends RemotingCdmUpdateOperation {
+
+ private final static String LABEL = "Move Taxon operation";
+
+ private final UUID taxonNodeToMoveUuid;
+ private final UUID newParentTreeNodeUuid;
+ private final boolean moveToParentNode;
+
+ public RemotingMoveTaxonOperation(Object source,
+ boolean async,
+ UUID taxonNodeToMoveUuid,
+ UUID newParentTreeNodeUuid,
+ boolean moveToParentNode) {
+ super(LABEL, Action.Update, source,async);
+ this.taxonNodeToMoveUuid = taxonNodeToMoveUuid;
+ this.newParentTreeNodeUuid = newParentTreeNodeUuid;
+ this.moveToParentNode = moveToParentNode;
+ }
+
+ public RemotingMoveTaxonOperation(Object source,
+ boolean async,
+ TaxonNode taxonNodeToMove,
+ TaxonNode newParentTreeNode,
+ boolean moveToParentNode) {
+ super(LABEL, Action.Update, source,async);
+ this.taxonNodeToMoveUuid = taxonNodeToMove.getUuid();
+ this.newParentTreeNodeUuid = newParentTreeNode.getUuid();
+ this.moveToParentNode = moveToParentNode;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
+ return CdmApplicationState.getService(ITaxonNodeService.class).moveTaxonNode(taxonNodeToMoveUuid,
+ newParentTreeNodeUuid,
+ moveToParentNode);
+ }
+
+}
// $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.
*/
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
@Deprecated // we do not undo creation of elements
public class CreateClassification extends AbstractPersistentPostOperation {
- private Classification classification;
-
+ private final Classification classification;
+
/**
* <p>Constructor for SaveClassificationOperation.</p>
*
*/
public CreateClassification(String label, IUndoContext undoContext, Classification classification,
IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
-
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitiySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitiySessionEnabled);
+
this.classification = classification;
-
+
}
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
throws ExecutionException {
bind();
monitor.worked(20);
-
+
if(classification.getReference() == null){
Reference reference = ReferenceFactory.newGeneric();
reference.setTitleCache(classification.getTitleCache());
classification.setReference(reference);
}
-
+
CdmStore.getService(IClassificationService.class).saveOrUpdate(classification);
-
+
monitor.worked(40);
return postExecute(classification);
// $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.
*/
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
@Deprecated // we do not undo creation of elements
public class CreatePolytomousKey extends AbstractPersistentPostOperation {
- private PolytomousKey key;
+ private final PolytomousKey key;
/**
* @param label
IUndoContext undoContext,
PolytomousKey key,
IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled, conversationEnabled);
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
this.key = key;
}
monitor.worked(20);
CdmStore.getService(IPolytomousKeyService.class).saveOrUpdate(key);
monitor.worked(40);
-
+
return postExecute(key);
}
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
@Deprecated // we do not undo creation of elements
public class CreateTaxonNode extends AbstractPersistentPostOperation {
- private Taxon newTaxon;
+ private final Taxon newTaxon;
private TaxonNode childTaxonNode;
* @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
- public CreateTaxonNode(String label, IUndoContext undoContext,
- ITaxonTreeNode parentNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
+ public CreateTaxonNode(String label,
+ IUndoContext undoContext,
+ ITaxonTreeNode parentNode, TaxonNameBase<?, ?> name,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
newTaxon = Taxon.NewInstance(name, null);
}
* @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
- public CreateTaxonNode(String label, IUndoContext undoContext,
- ITaxonTreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
+ public CreateTaxonNode(String label,
+ IUndoContext undoContext,
+ ITaxonTreeNode parentNode,
+ Taxon taxon,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
this.newTaxon = taxon;
}
id="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView"
name="%view.name.6"
restorable="true">
+ </view>
+ <view
+ allowMultiple="false"
+ class="eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"
+ id="eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"
+ name="Sessions"
+ restorable="false">
</view>
</extension>
<extension
</reference>
</visibleWhen>
</command>
+ <command
+ commandId="org.eclipse.ui.views.showView"
+ label="Sessions"
+ style="push">
+ <parameter
+ name="org.eclipse.ui.views.showView.viewId"
+ value="eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart">
+ </parameter>
+ </command>
</menu>
</menuContribution>
<menuContribution
name="%command.name.14">
</command>
<command
- defaultHandler="eu.etaxonomy.taxeditor.handler.OpenHandler"
- id="eu.etaxonomy.taxeditor.store.open"
- name="Open">
+ defaultHandler="eu.etaxonomy.taxeditor.handler.OpenInspectSessionsHandler"
+ id="eu.etaxonomy.taxeditor.store.open.InspectSessionsDialog"
+ name="Inspect Active Session">
</command>
</extension>
<extension
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.cdm.remote.CdmPersistentRemoteSource;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
+
import eu.etaxonomy.taxeditor.model.MementoHelper;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class CdmDataSourceRepository{
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.handler;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.swt.SWT;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.view.sessions.InspectSessionsDialog;
+
+/**
+ * @author cmathew
+ * @date 18 Feb 2015
+ *
+ */
+public class OpenInspectSessionsHandler extends AbstractHandler implements IHandler {
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ Object principal = CdmStore.getCurrentAuthentiation().getPrincipal();
+
+ ICdmEntitySession activeSession = CdmStore.getCurrentSessionManager().getActiveSession();
+
+ if(activeSession == null) {
+ MessagingUtils.warningDialog("No Active Session", this, "Active Session is null");
+ } else {
+ List<CdmBase> rootEntities = activeSession.getRootEntities();
+ if(rootEntities == null || rootEntities.isEmpty()) {
+ MessagingUtils.warningDialog("No Root Entities", this, "No root entities to inspect");
+ } else {
+ InspectSessionsDialog dialog = new InspectSessionsDialog(AbstractUtility.getShell(), SWT.NONE);
+ dialog.open();
+ }
+
+ }
+
+ return null;
+
+ }
+}
--- /dev/null
+// $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.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.taxeditor.ui.dialog.RemotingLoginDialog;
+
+/**
+ * <p>ShowLoginWindowHandler class.</p>
+ *
+ * @author n.hoffmann
+ * @created Aug 7, 2009
+ * @version 1.0
+ */
+public class ShowRemotingLoginWindowHandler extends AbstractHandler implements IHandler{
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ RemotingLoginDialog loginDialog = new RemotingLoginDialog(HandlerUtil.getActiveShell(event),SWT.DIALOG_TRIM
+ | SWT.APPLICATION_MODAL);
+ loginDialog.open();
+
+ return null;
+
+ }
+
+
+
+}
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
import java.util.TreeSet;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.NotEnabledException;
+import org.eclipse.core.commands.NotHandledException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.AbstractOperation;
import org.eclipse.core.commands.operations.IOperationHistory;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
import org.eclipse.ui.part.EditorPart;
import org.eclipse.ui.progress.IProgressService;
import eu.etaxonomy.cdm.model.common.IEnumTerm;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
import eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer;
import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
return Status.OK_STATUS;
}
+ public static IStatus executeOperation(final AbstractOperation operation, final RemotingCdmHandler handler) {
+ if (getOperationHistory() == null) {
+ throw new IllegalArgumentException(
+ "There is no operation history for this context");
+ }
+
+ final IAdaptable uiInfoAdapter = WorkspaceUndoUtil
+ .getUIInfoAdapter(getShell());
+
+ IRunnableWithProgress runnable = new IRunnableWithProgress() {
+
+ @Override
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException, InterruptedException {
+ String operationlabel = operation.getLabel();
+ monitor.beginTask(operationlabel, 100);
+ IStatus status = Status.CANCEL_STATUS;
+ try {
+ operation.addContext(IOperationHistory.GLOBAL_UNDO_CONTEXT);
+ status = getOperationHistory().execute(operation, monitor,
+ uiInfoAdapter);
+ if(handler != null) {
+ handler.postOperation(status);
+ }
+ } catch (ExecutionException e) {
+ MessagingUtils.operationDialog(this, e, TaxeditorStorePlugin.PLUGIN_ID, operationlabel, null);
+ } finally {
+ monitor.done();
+ }
+
+ String statusString = status.equals(Status.OK_STATUS) ? "completed"
+ : "cancelled";
+ setStatusLine(operationlabel + " " + statusString + ".");
+
+ }
+ };
+
+ try {
+ runInUI(runnable, null);
+ } catch (Exception e) {
+ MessagingUtils.messageDialog("Error executing operation", AbstractUtility.class, "An error occured while executing " + operation.getLabel(), e);
+ }
+
+ return Status.OK_STATUS;
+ }
/**
* <p>
* getOperationHistory
}
+ public static void executeCommand(String commandId, Object source, String pluginId) {
+ IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class);
+ Exception exception = null;
+ try {
+ handlerService.executeCommand(commandId, null);
+ } catch (ExecutionException e) {
+ exception = e;
+ } catch (NotDefinedException e) {
+ exception = e;
+ } catch (NotEnabledException e) {
+ exception = e;
+ } catch (NotHandledException e) {
+ exception = e;
+ } finally {
+ if(exception != null) {
+ MessagingUtils.errorDialog("Error executing command",
+ source,
+ "Could not execute command with id " + commandId ,
+ pluginId,
+ exception,
+ true);
+ }
+ }
+ }
}
// $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.
*/
package eu.etaxonomy.taxeditor.newWizard;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.taxeditor.store.CdmStore;
entity = CdmStore.getService(IClassificationService.class).load(entity.getUuid());
super.setEntity(entity);
}
-
+
@Override
public void addPages() {
classificationWizardPage = new ClassificationWizardPage(formFactory, getConversationHolder(), getEntity());
addPage(classificationWizardPage);
}
-
+
@Override
protected void saveEntity() {
- CdmStore.getService(IClassificationService.class).saveOrUpdate(getEntity());
+ //CdmStore.getService(IClassificationService.class).saveOrUpdate(getEntity());
+ Classification classification = getEntity();
+ CdmStore.getService(IClassificationService.class).merge(getEntity());
+
+ CdmApplicationState.getCurrentDataChangeService()
+ .fireChangeEvent(new CdmChangeEvent(Action.Create, classification, NewTaxonNodeWizard.class), true);
+
}
@Override
*/
package eu.etaxonomy.taxeditor.newWizard;
+import java.util.HashSet;
+import java.util.Set;
import java.util.UUID;
import org.apache.commons.lang.StringUtils;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
*/
public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
- private TaxonNodeWizardPage taxonNodePage;
- private boolean openEmptyEditor;
- private UUID generatedTaxonNodeUuid;
+ private TaxonNodeWizardPage taxonNodePage;
+ private boolean openEmptyEditor;
+ private UUID generatedTaxonNodeUuid;
private IWizardPageListener wizardPageListener;
- @Override
- public void addPages() {
- taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity(), wizardPageListener);
- addPage(taxonNodePage);
- }
-
- @Override
- protected void saveEntity() {
- if(taxonNodePage.getTaxon() == null || StringUtils.isEmpty(taxonNodePage.getTaxon().getName().getFullTitleCache())){
- openEmptyEditor = true;
- }else{
- getConversationHolder().bind();
- ITaxonTreeNode parent = getParentTreeNode();
- Taxon taxon = taxonNodePage.getTaxon();
- try{
- TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
- generatedTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(taxonNode);
- }catch(IllegalArgumentException e){
- MessagingUtils.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
- }
- }
- }
-
- @Override
- protected ITaxonTreeNode createNewEntity() {
- if(getSelection() != null){
- Object selectedObject = getSelection().getFirstElement();
- if(selectedObject instanceof ITaxonTreeNode){
- ITaxonTreeNode treeNode = (ITaxonTreeNode) selectedObject;
-
- if(treeNode instanceof Classification){
- return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
- }
- else if(treeNode instanceof TaxonNode){
- return CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
- }
- }
- }
-
- return null;
- }
-
- /**
- * <p>openInEditor</p>
- *
- * @return a boolean.
- */
- public boolean openInEditor(){
- return taxonNodePage.openInEditor();
- }
-
- /**
- * <p>openEmpty</p>
- *
- * @return a boolean.
- */
- public boolean openEmpty(){
- return openInEditor() && openEmptyEditor;
- }
-
- /**
- * <p>getTaxonNode</p>
- *
- * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
- */
- public TaxonNode getTaxonNode(){
- if(generatedTaxonNodeUuid != null){
- return CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
- }
- return null;
- }
-
- public ITaxonTreeNode getParentTreeNode(){
- return taxonNodePage.getParentTreeNode();
- }
-
- @Override
- protected String getEntityName() {
- return "Taxon";
- }
-
- public void addWizardPageListener(IWizardPageListener wizardPageListener){
- this.wizardPageListener = wizardPageListener;
- }
+ @Override
+ public void addPages() {
+ taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity(), wizardPageListener);
+ addPage(taxonNodePage);
+ }
+
+ @Override
+ protected void saveEntity() {
+ if(taxonNodePage.getTaxon() == null || StringUtils.isEmpty(taxonNodePage.getTaxon().getName().getFullTitleCache())){
+ openEmptyEditor = true;
+ }else{
+ getConversationHolder().bind();
+ ITaxonTreeNode parent = getParentTreeNode();
+ Taxon taxon = taxonNodePage.getTaxon();
+ try{
+ TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
+ taxonNode = CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
+ generatedTaxonNodeUuid = taxonNode.getUuid();
+ Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
+ affectedObjects.add((TaxonNode)parent);
+
+ CdmApplicationState.getCurrentDataChangeService()
+ .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
+
+ }catch(IllegalArgumentException e){
+ MessagingUtils.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
+ }
+ }
+ }
+
+ @Override
+ protected ITaxonTreeNode createNewEntity() {
+ if(getSelection() != null){
+ Object selectedObject = getSelection().getFirstElement();
+ if(selectedObject instanceof ITaxonTreeNode){
+ ITaxonTreeNode treeNode = (ITaxonTreeNode) selectedObject;
+
+ if(treeNode instanceof Classification){
+ return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
+ }
+ else if(treeNode instanceof TaxonNode){
+ return CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * <p>openInEditor</p>
+ *
+ * @return a boolean.
+ */
+ public boolean openInEditor(){
+ return taxonNodePage.openInEditor();
+ }
+
+ /**
+ * <p>openEmpty</p>
+ *
+ * @return a boolean.
+ */
+ public boolean openEmpty(){
+ return openInEditor() && openEmptyEditor;
+ }
+
+ /**
+ * <p>getTaxonNode</p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
+ */
+ public TaxonNode getTaxonNode(){
+ if(generatedTaxonNodeUuid != null){
+ return CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
+ }
+ return null;
+ }
+
+ public ITaxonTreeNode getParentTreeNode(){
+ return taxonNodePage.getParentTreeNode();
+ }
+
+ @Override
+ protected String getEntityName() {
+ return "Taxon";
+ }
+
+ public void addWizardPageListener(IWizardPageListener wizardPageListener){
+ this.wizardPageListener = wizardPageListener;
+ }
}
\ No newline at end of file
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* Superclass for all operation that have to be committed imediately after execution.
* @version 1.0
*/
public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonOperation {
- private IConversationEnabled conversationEnabled;
+ private final IConversationEnabled conversationEnabled;
protected ITaxonTreeNode parentNode;
+ /**
+ * <p>Constructor for AbstractPersistentPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
+ */
+ protected AbstractPersistentPostOperation(String label, IUndoContext undoContext,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled) {
+ this(label, undoContext, postOperationEnabled, conversationEnabled, null);
+ }
+
/**
* <p>Constructor for AbstractPersistentPostOperation.</p>
*
*/
protected AbstractPersistentPostOperation(String label, IUndoContext undoContext,
IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled);
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
this.conversationEnabled = conversationEnabled;
}
public AbstractPersistentPostOperation(String label,
IUndoContext undoContext, TaxonNode taxonNode,
IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, taxonNode, postOperationEnabled);
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, taxonNode, postOperationEnabled, cdmEntitySessionEnabled);
this.conversationEnabled = conversationEnabled;
+
}
/**
public AbstractPersistentPostOperation(String label,
IUndoContext undoContext, ITaxonTreeNode parentNode,
IPostOperationEnabled postOperationEnabled,
- IConversationEnabled conversationEnabled) {
- super(label, undoContext, postOperationEnabled);
+ IConversationEnabled conversationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
this.parentNode = parentNode;
this.conversationEnabled = conversationEnabled;
+
}
/* (non-Javadoc)
protected IStatus postExecute(CdmBase objectAffectedByOperation) {
Assert.isNotNull(conversationEnabled, "Operation has to have a valid conversation attached.");
-
+
if (!conversationEnabled.getConversationHolder().isClosed()){
conversationEnabled.getConversationHolder().bind();
conversationEnabled.getConversationHolder().commit(true);
*/
public void bind(){
conversationEnabled.getConversationHolder().bind();
+ if(getCdmEntitySessionEnabled() != null) {
+ getCdmEntitySessionEnabled().getCdmEntitySession().bind();
+ }
}
}
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* @author pplitzner
*/
protected IPostOperationEnabled postOperationEnabled;
+ private ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
/**
* <p>Constructor for AbstractPostOperation.</p>
this.postOperationEnabled = postOperationEnabled;
}
+ public AbstractPostOperation(String label, IUndoContext undoContext,
+ T element, IPostOperationEnabled postOperationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ this(label, undoContext);
+ this.element = element;
+ this.postOperationEnabled = postOperationEnabled;
+ this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
+ }
+
/**
* This method will try to call the post operation on a possibly registered
* IPostOperationEnabled implementor. Objects that were affected by the operation
* @return a {@link org.eclipse.core.runtime.IStatus} object.
*/
protected IStatus postExecute(CdmBase objectAffectedByOperation) {
- if(postOperationEnabled != null){
- return postOperationEnabled.postOperation(objectAffectedByOperation) ? Status.OK_STATUS : Status.CANCEL_STATUS;
- }
- return Status.OK_STATUS;
+
+ if(postOperationEnabled != null){
+ return postOperationEnabled.postOperation(objectAffectedByOperation) ? Status.OK_STATUS : Status.CANCEL_STATUS;
+ }
+ return Status.OK_STATUS;
}
/**
* @return a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
*/
public IPostOperationEnabled getPostOperationEnabled() {
- return postOperationEnabled;
+ return postOperationEnabled;
+ }
+
+// protected IStatus updateSession(CdmBase clientObjectAffectedByOperation, UpdateResult updateResult) {
+// Set<CdmBase> affectedObjects;
+// if(updateResult == null) {
+// affectedObjects = new HashSet<CdmBase>();
+// } else {
+// affectedObjects = updateResult.getUpdatedObjects();
+// }
+//
+// if(cdmEntitySessionEnabled != null) {
+// cdmEntitySessionEnabled.getCdmEntitySession().update(clientObjectAffectedByOperation, affectedObjects);
+// }
+// return Status.OK_STATUS;
+// }
+//
+// protected IStatus updateSession(UUID uuid) {
+//
+// if(cdmEntitySessionEnabled != null) {
+// CdmBase cdmBase = cdmEntitySessionEnabled.getCdmEntitySession().remoteLoad(CdmStore.getService(IService.class),uuid);
+// cdmEntitySessionEnabled.getCdmEntitySession().update(null, cdmBase);
+// }
+// return Status.OK_STATUS;
+// }
+
+ public ICdmEntitySessionEnabled getCdmEntitySessionEnabled() {
+ return cdmEntitySessionEnabled;
}
}
\ No newline at end of file
/**
-* 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.
-*/
+ * 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.operation;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* <p>Abstract AbstractPostOperation class.</p>
*/
public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<Taxon> {
- /**
- * A reference to the taxons TaxonNode
- */
- protected ITaxonTreeNode taxonNode;
-
- protected UUID parentNodeUuid;
-
-
- /**
- * <p>Constructor for AbstractPostOperation.</p>
- *
- * @param label a {@link java.lang.String} object.
- * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
- * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
- */
- public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
- Taxon taxon, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, taxon, postOperationEnabled);
- }
-
- /**
- * <p>Constructor for AbstractPostOperation.</p>
- *
- * @param label a {@link java.lang.String} object.
- * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
- * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
- */
- public AbstractPostTaxonOperation(String label, IUndoContext undoContext, TaxonNode taxonNode, IPostOperationEnabled postOperationEnabled){
- this(label, undoContext, taxonNode.getTaxon(), postOperationEnabled);
- this.taxonNode = taxonNode;
- }
-
- /**
- * <p>Constructor for AbstractPostOperation.</p>
- *
- * @param label a {@link java.lang.String} object.
- * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- * @param parentNodeUuid a {@link java.util.UUID} object.
- * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
- */
- public AbstractPostTaxonOperation(String label, IUndoContext undoContext, UUID parentNodeUuid, IPostOperationEnabled postOperationEnabled){
- super(label, undoContext, null, postOperationEnabled);
- this.parentNodeUuid = parentNodeUuid;
- }
-
- /**
- * <p>Constructor for AbstractPostOperation.</p>
- *
- * @param label a {@link java.lang.String} object.
- * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
- */
- public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
- IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, null, postOperationEnabled);
- }
+ /**
+ * A reference to the taxons TaxonNode
+ */
+ protected ITaxonTreeNode taxonNode;
+
+ protected UUID parentNodeUuid;
+
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ Taxon taxon, IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, taxon, postOperationEnabled, null);
+ }
+
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ Taxon taxon, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext, TaxonNode taxonNode, IPostOperationEnabled postOperationEnabled){
+ this(label, undoContext, taxonNode, postOperationEnabled, null);
+ }
+
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext, TaxonNode taxonNode, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled){
+ this(label, undoContext, taxonNode.getTaxon(), postOperationEnabled, cdmEntitySessionEnabled);
+ this.taxonNode = taxonNode;
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param parentNodeUuid a {@link java.util.UUID} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext, UUID parentNodeUuid, IPostOperationEnabled postOperationEnabled){
+ super(label, undoContext, null, postOperationEnabled, null);
+ this.parentNodeUuid = parentNodeUuid;
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, null, postOperationEnabled, null);
+ }
+
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, null, postOperationEnabled, cdmEntitySessionEnabled);
+ }
/**
* @param text
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.operation;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.ErrorDialog;
+
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+
+/**
+ * @author cmathew
+ * @date 16 Jun 2015
+ *
+ */
+public abstract class RemotingCdmHandler extends AbstractHandler {
+
+ private final String label;
+
+ public RemotingCdmHandler(String label) {
+ this.label = label;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IStatus allowStatus = allowOperations(event);
+ if(allowStatus.isOK()) {
+ AbstractOperation op = prepareOperation(event);
+ if(op != null) {
+ AbstractUtility.executeOperation(op, this);
+ }
+ } else if(allowStatus.getSeverity() == IStatus.ERROR ||
+ allowStatus.getSeverity() == IStatus.WARNING ||
+ allowStatus.getSeverity() == IStatus.INFO) {
+ MessagingUtils.warningDialog("Can not perform " + label, event.getTrigger(), allowStatus);
+ }
+ return null;
+ }
+
+ public void postOperation(IStatus status) {
+
+ switch(status.getSeverity()) {
+ case IStatus.WARNING:
+ MessagingUtils.warningDialog("Operation successful but with warnings", null, status);
+ break;
+ case IStatus.ERROR:
+ ErrorDialog.openError(null, "Error executing operation", null, status);
+ break;
+ default:
+ }
+
+ onComplete();
+ }
+
+ public abstract IStatus allowOperations(ExecutionEvent event);
+
+ public abstract AbstractOperation prepareOperation(ExecutionEvent event);
+
+ public abstract void onComplete();
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.operation;
+
+import java.util.Set;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 16 Jun 2015
+ *
+ */
+public abstract class RemotingCdmOperation extends AbstractOperation {
+
+ private final Object source;
+ private final Action action;
+ private final boolean async;
+
+ public RemotingCdmOperation(String label, Action action, Object source, boolean async) {
+ super(label);
+ this.source = source;
+ this.action = action;
+ this.async = async;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+
+ boolean success = doExecute(monitor, info);
+ postExecute(success);
+ return onComplete(success);
+ }
+
+ protected abstract boolean doExecute(IProgressMonitor monitor, IAdaptable info);
+
+ protected void postExecute(boolean success) {}
+
+ protected abstract IStatus onComplete(boolean success);
+
+ protected void fireDataChangeEvent(Set<CdmBase> changedObjects) {
+ if(changedObjects != null && !changedObjects.isEmpty()) {
+ CdmApplicationState.getCurrentDataChangeService().fireChangeEvent(new CdmChangeEvent(action, changedObjects, source.getClass()), async);
+ }
+ }
+
+ protected void fireDataChangeEvent(UpdateResult updateResult) {
+ Set<CdmBase> updatedObjects = updateResult.getUpdatedObjects();
+ if(updatedObjects != null && !updatedObjects.isEmpty()) {
+ CdmApplicationState.getCurrentDataChangeService().fireChangeEvent(new CdmChangeEvent(action, updatedObjects, source.getClass()), async);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.operation;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+
+/**
+ * @author cmathew
+ * @date 16 Jun 2015
+ *
+ */
+public abstract class RemotingCdmUpdateOperation extends RemotingCdmOperation {
+
+ private UpdateResult updateResult;
+
+ /**
+ * @param label
+ */
+ public RemotingCdmUpdateOperation(String label, Action action, Object source, boolean async) {
+ super(label, action, source, async);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected boolean doExecute(IProgressMonitor monitor, IAdaptable info) {
+ try {
+ updateResult = doUpdateExecute(monitor, info);
+ } catch (Exception e) {
+ UpdateResult exceptionResult = new UpdateResult();
+ exceptionResult.addException(e);
+ exceptionResult.setError();
+ updateResult = exceptionResult;
+ }
+ return updateResult.isOk();
+ }
+
+ protected abstract UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception;
+
+ @Override
+ protected void postExecute(boolean success) {
+ if(success && updateResult != null) {
+ fireDataChangeEvent(updateResult);
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.operation.RemotingCdmOperation#onComplete(boolean)
+ */
+ @Override
+ protected IStatus onComplete(boolean success) {
+
+ if(updateResult != null) {
+ int statusFlag = IStatus.OK;
+
+ Collection<Exception> exceptions = updateResult.getExceptions();
+ if(success && updateResult.isOk()) {
+ if(exceptions.isEmpty()) {
+ return Status.OK_STATUS;
+ } else {
+ statusFlag = IStatus.WARNING;
+ }
+ } else {
+ statusFlag = IStatus.ERROR;
+ }
+
+ Status[] childStatus = new Status[exceptions.size()];
+ int count = 0;
+ Set<String> messages = new HashSet<String>();
+ for(Exception ex : exceptions) {
+ Status status = new Status(statusFlag,
+ "unknown",
+ statusFlag,
+ ex.getLocalizedMessage(),
+ ex);
+ messages.add(ex.getLocalizedMessage());
+ childStatus[count] = status;
+ count++;
+ }
+ StringBuffer statusMsg = new StringBuffer();
+ for(String message : messages) {
+ statusMsg.append(message);
+ statusMsg.append(System.lineSeparator());
+ }
+ MultiStatus multiStatus = new MultiStatus("unknown",
+ statusFlag,
+ childStatus,
+ statusMsg.toString(),
+ null);
+ return multiStatus;
+ }
+ return null;
+ }
+}
import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.strategy.match.MatchException;
+import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator.MatchStrategy;
import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
* @param unparsedNameString a {@link java.lang.String} object.
* @return a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
*/
- public static TaxonNameBase parseReferencedName(String unparsedNameString, Rank rank){
- TaxonNameBase name = nonViralNameParser.parseReferencedName(unparsedNameString,
+ public static NonViralName parseReferencedName(String unparsedNameString, Rank rank){
+ NonViralName name = nonViralNameParser.parseReferencedName(unparsedNameString,
PreferencesUtil.getPreferredNomenclaturalCode(), rank);
// if (name.hasProblem()) {
return name;
}
- public static TaxonNameBase parseName(String unparsedNameString, Rank rank){
- TaxonNameBase name = nonViralNameParser.parseFullName(unparsedNameString,
+ public static NonViralName parseName(String unparsedNameString, Rank rank){
+ NonViralName name = nonViralNameParser.parseFullName(unparsedNameString,
PreferencesUtil.getPreferredNomenclaturalCode(), rank);
return name;
*
* @return a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
*/
- public static TaxonNameBase createEmptyName(){
+ public static NonViralName createEmptyName(){
return nonViralNameParser.getNonViralNameInstance("", PreferencesUtil.getPreferredNomenclaturalCode());
}
return new ArrayList<INomenclaturalReference>();
}
try{
- return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
+
+ return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategy.Reference);
+
}catch (MatchException e) {
MessagingUtils.error(this.getClass(), "Error finding matching references", e);
}
}
try{
- return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
+
+ return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategy.TeamOrPerson);
+
}catch (MatchException e) {
MessagingUtils.error(this.getClass(), "Error finding matching authors", e);
}
private List<TaxonNameBase> findMatchingLatinNames(TaxonNameBase taxonNameBase) {
try {
- return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
+
+ return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategy.NonViralName);
+
} catch (MatchException e) {
MessagingUtils.error(this.getClass(), "Error finding matching names", e);
// $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.
-*/
+ * 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.preference;
*/
public class CdmStorePropertyTester extends PropertyTester {
- private static final String EDITOR_IS_CONNECTED_TO_DB = "isCdmStoreConnected";
+ private static final String EDITOR_IS_CONNECTED_TO_DB = "isCdmStoreConnected";
+ private static final String IS_REMOTING = "isRemoting";
+ private static final String IS_STANDALONE = "isStandAlone";
+
+ @Override
+ public boolean test(Object receiver, String property, Object[] args,
+ Object expectedValue) {
+
+ if(EDITOR_IS_CONNECTED_TO_DB.equals(property)){
+ return isCdmStoreConnected();
+ }
+
+ if(IS_REMOTING.equals(property)){
+ if(!isCdmStoreConnected()) {
+ return false;
+ } else {
+ return isRemoting();
+ }
+ }
+
+ if(IS_STANDALONE.equals(property)){
+ if(!isCdmStoreConnected()) {
+ return false;
+ } else {
+ return !isRemoting();
+ }
+ }
+ return false;
+ }
+
+ private boolean isCdmStoreConnected(){
+ boolean active = CdmStore.isActive();
+ return active;
+ }
+
+ private boolean isRemoting() {
+ return CdmStore.getCurrentSessionManager().isRemoting();
- @Override
- public boolean test(Object receiver, String property, Object[] args,
- Object expectedValue) {
+ }
- if(EDITOR_IS_CONNECTED_TO_DB.equals(property)){
- return isCdmStoreConnected();
- }
- return false;
- }
- private boolean isCdmStoreConnected(){
- boolean active = CdmStore.isActive();
- return active;
- }
}
import eu.etaxonomy.cdm.strategy.match.MatchException;
import eu.etaxonomy.cdm.strategy.match.MatchMode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.parser.MatchStrategyConfigurator;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
/** {@inheritDoc} */
@Override
protected void performApply() {
- MatchStrategyConfigurator.setMatchStrategy(matchStrategy);
+ PreferencesUtil.setMatchStrategy(matchStrategy);
super.performApply();
}
// $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.
*/
import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
+import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.parser.MatchStrategyConfigurator;
/**
* <p>NonViralNameMatchingPreference class.</p>
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench) {
+ @Override
+ public void init(IWorkbench workbench) {
clazz = NonViralName.class;
-
+
try {
matchStrategy = MatchStrategyConfigurator.NonViralNameMatchStrategy();
} catch (MatchException e) {
throw new RuntimeException(e);
}
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.preference.matching.AbstractMatchingPreferences#getDefaultMatchStrategy()
*/
// $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.
*/
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
+import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.parser.MatchStrategyConfigurator;
/**
* <p>ReferenceMatchingPreference class.</p>
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench) {
+ @Override
+ public void init(IWorkbench workbench) {
clazz = Reference.class;
-
+
try {
matchStrategy = MatchStrategyConfigurator.ReferenceMatchStrategy();
} catch (MatchException e) {
// $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.
*/
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
+import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.parser.MatchStrategyConfigurator;
/**
* <p>TeamOrPersonMatchingPreference class.</p>
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench) {
+ @Override
+ public void init(IWorkbench workbench) {
clazz = TeamOrPersonBase.class;
-
+
try {
matchStrategy = MatchStrategyConfigurator.TeamOrPersonMatchStrategy();
} catch (MatchException e) {
MessagingUtils.error(this.getClass(), e);
throw new RuntimeException(e);
}
- }
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.preference.matching.AbstractMatchingPreferences#getDefaultMatchStrategy()
package eu.etaxonomy.taxeditor.store;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
import java.util.EnumSet;
import org.eclipse.core.runtime.IProgressMonitor;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.security.access.PermissionEvaluator;
-import org.springframework.security.authentication.ProviderManager;
+import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
+import eu.etaxonomy.cdm.api.application.CdmApplicationException;
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.ICommonService;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
import eu.etaxonomy.cdm.persistence.hibernate.permission.Role;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.io.ExportManager;
import eu.etaxonomy.taxeditor.io.ImportManager;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.mock.MockCdmEntitySessionManager;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
private static CdmStore instance;
- private final ICdmApplicationConfiguration applicationConfiguration;
+ //private final ICdmApplicationConfiguration applicationConfiguration;
private static ContextManager contextManager = new ContextManager();
private static SearchManager searchManager = new SearchManager();
private static EditorManager editorManager = new EditorManager();
-
- private static UseObjectStore useObjectInitializer = new UseObjectStore();
+
+ private static UseObjectStore useObjectInitializer = new UseObjectStore();
private static CdmStoreConnector job;
private boolean isConnected;
+
+
/**
* <p>
* getDefault
ICdmSource cdmSource;
try {
+
cdmSource = CdmDataSourceRepository.getCurrentCdmSource();
connect(cdmSource);
- } catch (CdmRemoteSourceException e) {
+ } catch (Exception e) {
MessagingUtils.messageDialog("Connection to CDM Source Failed", CdmStore.class, "Could not connect to target CDM Source", e);
}
private static void connect(final ICdmSource cdmSource,
final DbSchemaValidation dbSchemaValidation,
final Resource applicationContextBean) {
+ if(isActive()) {
+ // before we connect we clear the entity caches and the sessions
+ CdmRemoteCacheManager.removeEntityCaches();
+ if(getCurrentSessionManager() != null) {
+ getCurrentSessionManager().disposeAll();
+ }
+ }
MessagingUtils.info("Connecting to datasource: " + cdmSource);
job = new CdmStoreConnector(Display.getDefault(), cdmSource,
private void close() {
isConnected = false;
cdmSource = null;
+ CdmApplicationState.dispose();
}
static void setInstance(ICdmApplicationConfiguration applicationController,
private CdmStore(ICdmApplicationConfiguration applicationController,
ICdmSource cdmSource) {
- this.applicationConfiguration = applicationController;
+ CdmApplicationState.setCurrentAppConfig(applicationController);
+ CdmApplicationState.setCurrentDataChangeService(new CdmUIDataChangeService());
this.cdmSource = cdmSource;
isConnected = true;
}
*/
private ICdmApplicationConfiguration getApplicationConfiguration() {
try {
- return applicationConfiguration;
+ return CdmApplicationState.getCurrentAppConfig();
} catch (Exception e) {
MessagingUtils.error(CdmStore.class, e);
}
public static ConversationHolder createConversation() {
ConversationHolder conversation = getCurrentApplicationConfiguration()
.NewConversation();
- try{
+ try {
conversation.startTransaction();
}catch(Exception e){
MessagingUtils.messageDialog("No database connection", CdmStore.class, "No database connection available", e);
return conversation;
}
+ //FIXME:Remoting should be removed after moving completely to remoting
+ private MockCdmEntitySessionManager mockCdmEntitySessionManager;
+
+ private ICdmEntitySessionManager getSessionManager() {
+ //FIXME:Remoting we should only have CdmApplicationRemoteConfiguration after move to remoting
+ // bad hack which should be finally removed
+ if(getCurrentApplicationConfiguration() instanceof CdmApplicationRemoteController) {
+ return ((CdmApplicationRemoteController)getCurrentApplicationConfiguration()).getCdmEntitySessionManager();
+ } else {
+ if(mockCdmEntitySessionManager == null) {
+ mockCdmEntitySessionManager = new MockCdmEntitySessionManager();
+ }
+ return mockCdmEntitySessionManager;
+ }
+ }
+
+ public static ICdmEntitySessionManager getCurrentSessionManager() {
+ if (getDefault() != null) {
+ return getDefault().getSessionManager();
+ }
+ return null;
+
+ }
+
/**
* Generic method that will scan the getters of {@link ICdmApplicationConfiguration} for the given service
* interface. If a matching getter is found the according service implementation is returned by
* @return the configured implementation of <code>serviceClass</code> or <code>null</code>
*/
public static <T extends IService> T getService(Class<T> serviceClass) {
- ICdmApplicationConfiguration configuration = getCurrentApplicationConfiguration();
-
- Method[] methods = ICdmApplicationConfiguration.class.getDeclaredMethods();
-
- T service = null;
-
- for (Method method : methods) {
- Type type = method.getGenericReturnType();
+ T service = null;
+ try {
+ service = CdmApplicationState.getService(serviceClass);
+ } catch (CdmApplicationException cae) {
+ MessagingUtils.error(CdmStore.class, cae);
+ }
- if (type.equals(serviceClass)) {
- try {
- service = (T) method.invoke(configuration, null);
- break;
- } catch (IllegalArgumentException e) {
- MessagingUtils.error(CdmStore.class, e);
- } catch (IllegalAccessException e) {
- MessagingUtils.error(CdmStore.class, e);
- } catch (InvocationTargetException e) {
- MessagingUtils.error(CdmStore.class, e);
- }
- }
- }
-
- return service;
+ return service;
}
-
+
/**
* @see #getService(Class)
* As ICommonService is not extending IService we need a specific request here
*/
public static ICommonService getCommonService() {
- ICdmApplicationConfiguration configuration = getCurrentApplicationConfiguration();
-
- return configuration.getCommonService();
+ return CdmApplicationState.getCommonService();
}
* {@link org.springframework.security.authentication.ProviderManager}
* object.
*/
- public static ProviderManager getAuthenticationManager() {
+ public static AuthenticationManager getAuthenticationManager() {
return getCurrentApplicationConfiguration().getAuthenticationManager();
}
import eu.etaxonomy.cdm.database.DbSchemaValidation;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
import eu.etaxonomy.taxeditor.ui.dialog.LoginDialog;
import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
subprogressMonitor);
} else if(cdmSource instanceof ICdmRemoteSource) {
return CdmApplicationRemoteController.NewInstance((ICdmRemoteSource)cdmSource,
- false,
subprogressMonitor,
null);
} else {
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.store;
+
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.CdmDataChangeService;
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
+
+/**
+ * @author cmathew
+ * @date 18 Jun 2015
+ *
+ */
+public class CdmUIDataChangeService extends CdmDataChangeService {
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.ICdmDataChangeService#fireChangeEvent(eu.etaxonomy.cdm.api.application.CdmChangeEvent, boolean)
+ */
+ @Override
+ public void fireChangeEvent(final CdmChangeEvent event, boolean async) {
+ for(final ICdmChangeListener listener : listeners) {
+ // Update the user interface asynchronously
+ if(async) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ listener.onChange(event);
+ }
+ });
+ }
+ // Update the user interface synchronously
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ listener.onChange(event);
+ }
+ });
+ }
+ }
+
+}
// $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.
*/
import org.eclipse.ui.IWorkbenchListener;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.XMLMemento;
+import org.eclipse.ui.internal.Workbench;
import eu.etaxonomy.taxeditor.model.IContextListener;
import eu.etaxonomy.taxeditor.model.MementoHelper;
* @version 1.0
*/
public class ContextManager implements IWorkbenchListener{
-
- private ListenerList contextListeners = new ListenerList();
+
+ private final ListenerList contextListeners = new ListenerList();
private IMemento memento;
-
+
/**
* <p>Constructor for ContextManager.</p>
*/
protected ContextManager() {
- PlatformUI.getWorkbench().addWorkbenchListener(this);
+ if(Workbench.getInstance() != null) {
+ PlatformUI.getWorkbench().addWorkbenchListener(this);
+ }
}
-
+
/**
* <p>addContextListener</p>
*
public void addContextListener(IContextListener listener){
contextListeners.add(listener);
}
-
+
/**
* <p>removeContextListener</p>
*
public void removeContextListener(IContextListener listener) {
contextListeners.remove(listener);
}
-
+
/**
* <p>notifyContextStart</p>
*/
public void notifyContextStart() {
MessagingUtils.info("Notifying context listeners, that the context has started.");
ProgressMonitorDialog dialog = new ProgressMonitorDialog(StoreUtil.getShell());
-
+
try {
dialog.run(false, false, new IRunnableWithProgress() {
/* (non-Javadoc)
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
monitor.beginTask("Starting context", contextListeners.size());
-
-
- readMemento();
-
+
+
+ readMemento();
+
for(final Object listener : contextListeners.getListeners()){
((IContextListener) listener).contextStart(memento, monitor);
monitor.worked(1);
MessagingUtils.error(getClass(), e);
}
}
-
+
/**
- *
+ *
*/
public void notifyContextRefresh() {
MessagingUtils.info("Notifying context listeners, that the context needs to be refreshed.");
ProgressMonitorDialog dialog = new ProgressMonitorDialog(StoreUtil.getShell());
-
+
try {
dialog.run(false, false, new IRunnableWithProgress() {
/* (non-Javadoc)
@Override
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
- monitor.beginTask("Refreshing context", contextListeners.size());
-
+ monitor.beginTask("Refreshing context", contextListeners.size());
+
for(final Object listener : contextListeners.getListeners()){
((IContextListener) listener).contextRefresh(monitor);
monitor.worked(1);
MessagingUtils.error(getClass(), e);
}
}
-
+
/**
* <p>notifyContextAboutToStop</p>
*
subMonitor.beginTask("Stoping context", contextListeners.size());
// we are creating the memento here; even if the context is not stopped
createMemento();
-
+
for(final Object listener : contextListeners.getListeners()){
((IContextListener) listener).contextAboutToStop(memento, subMonitor);
subMonitor.worked(1);
- }
-
+ }
+
subMonitor.done();
}
-
+
/**
* <p>notifyContextStop</p>
*
* @param monitor a {@link org.eclipse.core.runtime.IProgressMonitor} object.
*/
public void notifyContextStop(IProgressMonitor monitor) {
-
+
IProgressMonitor subMonitor = StoreUtil.getSubProgressMonitor(monitor, 1);
subMonitor.beginTask("Stoping context", contextListeners.size());
MessagingUtils.info("Notifying context listeners, that the context has stopped.");
-
+
for(Object listener : contextListeners.getListeners()){
((IContextListener) listener).contextStop(memento, subMonitor);
subMonitor.worked(1);
- }
+ }
saveMemento();
subMonitor.done();
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchListener#preShutdown(org.eclipse.ui.IWorkbench, boolean)
*/
public boolean preShutdown(IWorkbench workbench, boolean forced) {
createMemento();
-
+
IProgressMonitor monitor = null;
-
+
for(Object listener : contextListeners.getListeners()){
((IContextListener) listener).workbenchShutdown(memento, monitor);
- }
-
+ }
+
saveMemento();
-
+
// return true in any case, otherwise the application will not stop
return true;
}
/** {@inheritDoc} */
@Override
public void postShutdown(IWorkbench workbench) {
-
-
+
+
}
-
-
+
+
private void readMemento(){
try {
memento = MementoHelper.readMementoFromFile(getStateFileForCurrentDatabase());
MessagingUtils.info("No state file for datasource");
}
}
-
+
private void createMemento(){
-
+
if (CdmStore.getActiveCdmSource() != null) {
-
+
try {
String name = CdmStore.getActiveCdmSource().getName();
name = name.trim();
name = name.replace(" ", "_");
memento = XMLMemento.createWriteRoot(name);
-
+
MessagingUtils.info("DataSource found. Memento created.");
} catch (Exception e) {
// The memento could not be created, but a not closable editor is avoided for this case.
} else {
MessagingUtils.info("Not storing state data, because no DataSource present.");
}
-
+
}
-
+
private boolean saveMemento(){
return MementoHelper.saveMementoToFile(memento, getStateFileForCurrentDatabase()) != null;
}
-
+
/**
* <p>getStateFileForCurrentDatabase</p>
*
if(CdmStore.getActiveCdmSource() == null){
return null;
}
-
+
IPath path = TaxeditorStorePlugin.getDefault().getStateLocation();
if (path == null) {
return null;
logger.debug("User authenticated: " + user.getUsername() + "\n" + gaText.toString());
}
+ authentication = new UsernamePasswordAuthenticationToken(username,password, authentication.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
if(!authentication.equals(lastAuthentication)){
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.ui.dialog;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.remoting.server.CDMServerException;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo.CdmInstanceInfo;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author cmathew
+ * @date 20 Jan 2015
+ *
+ */
+public class RemotingLoginDialog extends Dialog {
+
+ protected Object result;
+ protected Shell shlConnect;
+ private Text txtPort;
+ private Text txtCdmServerStatus;
+ private Text txtCdmInstanceStatus;
+ private Combo comboCdmServer;
+ private Combo comboCdmInstance;
+ private Button btnConnect;
+
+ private final Map<String, CdmServerInfo> csiiMap = new HashMap<String, CdmServerInfo>();
+
+ private final String STATUS_AVAILABLE = "Available";
+ private final String STATUS_NOT_AVAILABLE = "Not Available";
+ private final String STATUS_RETRIEVING = "Retrieving ...";
+ private final String STATUS_CHECKING_AVAILABILITY = "Checking ...";
+ private final String STATUS_NO_INSTANCES = "No Instances Found";
+ private final String STATUS_ERROR = "Error";
+ private final String STATUS_REMOTING_NOT_ACTIVATED = "Remoting not activated";
+
+ private CdmServerInfo selectedCsii;
+ private CdmInstanceInfo selectedCdmInstance;
+ private Button btnCdmServerRefresh;
+
+
+ /**
+ * Create the dialog.
+ * @param parent
+ * @param style
+ */
+ public RemotingLoginDialog(Shell parent, int style) {
+ super(parent, style);
+ setText("Login");
+ }
+
+ /**
+ * Open the dialog.
+ * @return the result
+ */
+ public Object open() {
+ ICdmRemoteSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource();
+ if(devRemoteSource != null) {
+ connect(devRemoteSource);
+ } else {
+ createContents();
+ populateCdmServerCombo();
+ shlConnect.open();
+ shlConnect.layout();
+
+ Display display = getParent().getDisplay();
+
+ while (!shlConnect.isDisposed()) {
+ if (!display.readAndDispatch()) {
+ display.sleep();
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Create contents of the dialog.
+ */
+ private void createContents() {
+ shlConnect = new Shell(getParent(), getStyle());
+ shlConnect.setSize(490, 157);
+ shlConnect.setText("Connect");
+ shlConnect.setLayout(new FillLayout(SWT.HORIZONTAL));
+
+ Composite composite = new Composite(shlConnect, SWT.NONE);
+ FillLayout fl_composite = new FillLayout(SWT.VERTICAL);
+ fl_composite.spacing = 5;
+ composite.setLayout(fl_composite);
+
+ Composite remotingComposite = new Composite(composite, SWT.NONE);
+ FillLayout fl_remotingComposite = new FillLayout(SWT.VERTICAL);
+ fl_remotingComposite.spacing = 5;
+ remotingComposite.setLayout(fl_remotingComposite);
+
+ Composite cdmServerComposite = new Composite(remotingComposite, SWT.NONE);
+ cdmServerComposite.setLayout(new GridLayout(6, false));
+
+ Label lblCdmServer = new Label(cdmServerComposite, SWT.NONE);
+ lblCdmServer.setText("CDM Server : ");
+ lblCdmServer.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+ lblCdmServer.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+
+ comboCdmServer = new Combo(cdmServerComposite, SWT.READ_ONLY);
+ comboCdmServer.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ refreshCdmServer();
+ }
+ });
+ GridData gd_comboCdmServer = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
+ gd_comboCdmServer.widthHint = 150;
+ comboCdmServer.setLayoutData(gd_comboCdmServer);
+ comboCdmServer.select(0);
+
+ Label lblPortSeparator = new Label(cdmServerComposite, SWT.NONE);
+ lblPortSeparator.setText(" : ");
+
+ txtPort = new Text(cdmServerComposite, SWT.BORDER);
+ GridData gd_txtPort = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
+ gd_txtPort.widthHint = 50;
+ txtPort.setLayoutData(gd_txtPort);
+
+ txtCdmServerStatus = new Text(cdmServerComposite, SWT.BORDER);
+ txtCdmServerStatus.setBackground(SWTResourceManager.getColor(SWT.COLOR_INFO_BACKGROUND));
+ txtCdmServerStatus.setEditable(false);
+ GridData gd_txtCdmServerStatus = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_txtCdmServerStatus.widthHint = 100;
+ txtCdmServerStatus.setLayoutData(gd_txtCdmServerStatus);
+
+ btnCdmServerRefresh = new Button(cdmServerComposite, SWT.NONE);
+ btnCdmServerRefresh.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ refreshCdmServer();
+ }
+ });
+ btnCdmServerRefresh.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
+ btnCdmServerRefresh.setText("Refresh");
+
+ Label lblCdmInstance = new Label(cdmServerComposite, SWT.NONE);
+ GridData gd_lblCdmInstance = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+ gd_lblCdmInstance.heightHint = 30;
+ lblCdmInstance.setLayoutData(gd_lblCdmInstance);
+ lblCdmInstance.setText("CDM Instance : ");
+ lblCdmInstance.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+
+ comboCdmInstance = new Combo(cdmServerComposite, SWT.READ_ONLY);
+ comboCdmInstance.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ updateSelectedCdmInstance();
+ checkSelectedCdmServerInstance();
+ }
+ });
+ GridData gd_comboCdmInstance = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
+ gd_comboCdmInstance.widthHint = 150;
+ comboCdmInstance.setLayoutData(gd_comboCdmInstance);
+ comboCdmInstance.select(0);
+
+ txtCdmInstanceStatus = new Text(cdmServerComposite, SWT.BORDER);
+ txtCdmInstanceStatus.setBackground(SWTResourceManager.getColor(SWT.COLOR_INFO_BACKGROUND));
+ txtCdmInstanceStatus.setEditable(false);
+ GridData gd_txtCdmInstanceStatus = new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1);
+ gd_txtCdmInstanceStatus.widthHint = 100;
+ txtCdmInstanceStatus.setLayoutData(gd_txtCdmInstanceStatus);
+
+ Button btnCdmInstanceRefresh = new Button(cdmServerComposite, SWT.FLAT);
+ btnCdmInstanceRefresh.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ refreshCdmInstance();
+ }
+ });
+ GridData gd_btnCdmInstanceRefresh = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_btnCdmInstanceRefresh.widthHint = 110;
+ gd_btnCdmInstanceRefresh.heightHint = 30;
+ btnCdmInstanceRefresh.setLayoutData(gd_btnCdmInstanceRefresh);
+ btnCdmInstanceRefresh.setText("Refresh");
+ new Label(cdmServerComposite, SWT.NONE);
+
+ btnConnect = new Button(cdmServerComposite, SWT.FLAT);
+ btnConnect.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseUp(MouseEvent e) {
+ int selInstanceIndex = comboCdmInstance.getSelectionIndex();
+ String instance = comboCdmInstance.getItem(selInstanceIndex);
+ checkSelectedCdmServerInstance();
+ connect(selectedCsii.getCdmRemoteSource(selectedCdmInstance));
+ }
+ });
+ GridData gd_btnConnect = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_btnConnect.heightHint = 30;
+ btnConnect.setLayoutData(gd_btnConnect);
+ btnConnect.setText("Connect");
+ new Label(cdmServerComposite, SWT.NONE);
+ new Label(cdmServerComposite, SWT.NONE);
+ new Label(cdmServerComposite, SWT.NONE);
+ new Label(cdmServerComposite, SWT.NONE);
+
+ }
+
+ private void populateCdmServerCombo() {
+ Job job = new Job("Retrieve Server Instances") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ for(CdmServerInfo csii : CdmServerInfo.getCdmServers()) {
+ csiiMap.put(csii.getName(), csii);
+ comboCdmServer.add(csii.getName());
+ }
+ comboCdmServer.select(0);
+ refreshCdmServer();
+ }
+ });
+ return Status.OK_STATUS;
+ }
+ };
+ job.schedule();
+ }
+
+
+ private void refreshCdmServer() {
+ txtCdmServerStatus.setText(STATUS_CHECKING_AVAILABILITY);
+ updateSelectedCdmServer();
+ updatePort();
+ checkSelectedCdmServer();
+ }
+
+ private void updateSelectedCdmServer() {
+ int selIndex = comboCdmServer.getSelectionIndex();
+ if(selIndex != -1) {
+ selectedCsii = csiiMap.get(comboCdmServer.getItem(selIndex));
+ }
+ }
+
+ private void updatePort() {
+ txtPort.setText("");
+ if(selectedCsii != null) {
+ txtPort.setText(String.valueOf(selectedCsii.getPort()));
+ }
+ }
+
+ private void checkSelectedCdmServer() {
+ int selIndex = comboCdmServer.getSelectionIndex();
+ txtCdmInstanceStatus.setText("");
+ if(selectedCsii != null) {
+ if(selectedCsii.pingServer()) {
+ txtCdmServerStatus.setText(STATUS_AVAILABLE);
+ populateCdmInstanceCombo(true);
+ } else {
+ txtCdmServerStatus.setText(STATUS_NOT_AVAILABLE);
+ comboCdmInstance.removeAll();
+ }
+ }
+ }
+
+
+ private void populateCdmInstanceCombo(final boolean forceRefresh) {
+ comboCdmInstance.removeAll();
+ comboCdmInstance.setEnabled(false);
+ btnConnect.setEnabled(false);
+ txtCdmInstanceStatus.setText(STATUS_RETRIEVING);
+ Job job = new Job("Retrieve Server Instances") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ if(selectedCsii != null) {
+ if(forceRefresh) {
+ selectedCsii.refreshInstances();
+ }
+ final List<CdmInstanceInfo> instances = selectedCsii.getInstances();
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ if(!instances.isEmpty()) {
+ for(CdmInstanceInfo cdmInstance : instances) {
+ comboCdmInstance.add(cdmInstance.getName());
+ }
+ comboCdmInstance.select(0);
+ updateSelectedCdmInstance();
+ checkSelectedCdmServerInstance();
+ comboCdmInstance.setEnabled(true);
+ } else {
+ txtCdmInstanceStatus.setText(STATUS_NO_INSTANCES);
+ btnConnect.setEnabled(false);
+ }
+ }
+ });
+ }
+ } catch (CDMServerException e) {
+ MessagingUtils.warn(getClass(), e);
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ txtCdmInstanceStatus.setText(STATUS_REMOTING_NOT_ACTIVATED);
+ comboCdmInstance.setEnabled(false);
+ btnConnect.setEnabled(false);
+ }
+ });
+ }
+ return Status.OK_STATUS;
+ }
+ };
+
+ if(txtCdmServerStatus.getText().equals(STATUS_AVAILABLE)) {
+ // Start the Job
+ job.schedule();
+ }
+
+ }
+
+ private void refreshCdmInstance() {
+ txtCdmInstanceStatus.setText(STATUS_CHECKING_AVAILABILITY);
+ updateSelectedCdmInstance();
+ checkSelectedCdmServerInstance();
+ }
+
+ private void updateSelectedCdmInstance() {
+ int selIndex = comboCdmInstance.getSelectionIndex();
+ if(selIndex != -1) {
+ selectedCdmInstance = selectedCsii.getInstanceFromName(comboCdmInstance.getItem(selIndex));
+ }
+ }
+
+ private void checkSelectedCdmServerInstance() {
+ if(txtCdmServerStatus.getText().equals(STATUS_AVAILABLE)) {
+ try {
+ if(selectedCsii.pingInstance(selectedCdmInstance)) {
+ txtCdmInstanceStatus.setText(STATUS_AVAILABLE);
+ btnConnect.setEnabled(true);
+ } else {
+ txtCdmInstanceStatus.setText(STATUS_NOT_AVAILABLE);
+ btnConnect.setEnabled(false);
+ }
+ } catch (Exception e) {
+ txtCdmInstanceStatus.setText(STATUS_NOT_AVAILABLE);
+ MessagingUtils.warn(this.getClass(), e);
+ }
+ }
+
+ }
+
+ private void connect(ICdmRemoteSource source) {
+ if(CdmStore.isConnecting()){
+ MessagingUtils.warningDialog("Already connecting", this, "You are currently connecting to a different CDM Instance already.");
+ return;
+ }
+
+ try {
+ CdmDataSourceRepository.changeDataSource(source);
+ } catch (Exception e) {
+ // Do not expect anything to go wrong at this point, so we throw a runtime exception
+ // if any problems
+ throw new RuntimeException(e);
+ }
+
+ if(shlConnect != null) {
+ shlConnect.dispose();
+ }
+ }
+
+
+}
// $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.
-*/
+ * 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.view;
+import java.util.Arrays;
+import java.util.List;
+
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* <p>Abstract AbstractCdmViewPart class.</p>
* @created Jun 15, 2010
* @version 1.0
*/
-public abstract class AbstractCdmViewPart extends ViewPart implements ISelectionListener, IPostOperationEnabled, IConversationEnabled, IDirtyMarkable{
+public abstract class AbstractCdmViewPart extends ViewPart implements ISelectionListener, IPostOperationEnabled, IConversationEnabled, ICdmEntitySessionEnabled, IDirtyMarkable{
- protected ISelectionService selectionService;
+ protected ISelectionService selectionService;
- public static IStructuredSelection EMPTY_SELECTION = new StructuredSelection();
+ public static IStructuredSelection EMPTY_SELECTION = new StructuredSelection();
- protected IWorkbenchPart part;
+ protected IWorkbenchPart part;
private PageBook pageBook;
- private Label emptySelectionLabel;
+ private Label emptySelectionLabel;
- private Composite viewerComposite;
+ private Composite viewerComposite;
- /** {@inheritDoc} */
- @Override
- public void createPartControl(Composite parent) {
- selectionService = getSite().getWorkbenchWindow().getSelectionService();
- selectionService.addSelectionListener(this);
+ /** {@inheritDoc} */
+ @Override
+ public void createPartControl(Composite parent) {
+ selectionService = getSite().getWorkbenchWindow().getSelectionService();
+ selectionService.addSelectionListener(this);
- pageBook = new PageBook(parent, SWT.NULL);
- //create viewerComposite
- viewerComposite = new SashForm(pageBook, SWT.HORIZONTAL);
- createViewer(viewerComposite);
+ pageBook = new PageBook(parent, SWT.NULL);
+ //create viewerComposite
+ viewerComposite = new SashForm(pageBook, SWT.HORIZONTAL);
+ createViewer(viewerComposite);
- // Page 2: Nothing selected
+ // Page 2: Nothing selected
emptySelectionLabel = new Label(pageBook, SWT.TOP + SWT.LEFT + SWT.WRAP);
setInitialSelection();
- }
-
- /**
- *
- */
- private void setInitialSelection() {
- selectionChanged(AbstractUtility.getActivePart(), getInitialSelection());
- }
-
- /**
- * <p>getInitialSelection</p>
- *
- * @return a {@link org.eclipse.jface.viewers.ISelection} object.
- */
- protected ISelection getInitialSelection() {
- return selectionService.getSelection();
- }
-
- /**
- * <p>showEmptyPage</p>
- */
- public void showEmptyPage(){
- pageBook.showPage(emptySelectionLabel);
- }
+ }
+
+ /**
+ *
+ */
+ private void setInitialSelection() {
+ selectionChanged(AbstractUtility.getActivePart(), getInitialSelection());
+ }
+
+ /**
+ * <p>getInitialSelection</p>
+ *
+ * @return a {@link org.eclipse.jface.viewers.ISelection} object.
+ */
+ protected ISelection getInitialSelection() {
+ return selectionService.getSelection();
+ }
+
+ /**
+ * <p>showEmptyPage</p>
+ */
+ public void showEmptyPage(){
+ pageBook.showPage(emptySelectionLabel);
+ }
/**
* <p>showViewer</p>
* @param selection a {@link org.eclipse.jface.viewers.ISelection} object.
*/
public void showViewer(IWorkbenchPart part, IStructuredSelection selection){
- this.part = part;
+ this.part = part;
- Object element = selection.getFirstElement();
+ Object element = selection.getFirstElement();
- getViewer().setInput(element);
+ getViewer().setInput(element);
- showViewer();
+ showViewer();
}
/**
*/
public abstract Viewer getViewer();
- /**
- * <p>showViewer</p>
- */
- public void showViewer(){
- pageBook.showPage(viewerComposite);
+ /**
+ * <p>showViewer</p>
+ */
+ public void showViewer(){
+ pageBook.showPage(viewerComposite);
}
- public void setEnabled(boolean enabled){
- pageBook.setEnabled(enabled);
- }
-
- /** {@inheritDoc} */
- @Override
- public void setFocus() {
- if(getConversationHolder() != null){
- getConversationHolder().bind();
- }
- getViewer().getControl().setFocus();
- }
-
- /**
- * <p>createViewer</p>
- *
- * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
- */
- public abstract void createViewer(Composite parent);
-
- /** {@inheritDoc} */
- @Override
+ public void setEnabled(boolean enabled){
+ pageBook.setEnabled(enabled);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setFocus() {
+ if(getConversationHolder() != null){
+ getConversationHolder().bind();
+ }
+ if(getCdmEntitySession() != null){
+ getCdmEntitySession().bind();
+ }
+ getViewer().getControl().setFocus();
+ }
+
+ /**
+ * <p>createViewer</p>
+ *
+ * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
+ */
+ public abstract void createViewer(Composite parent);
+
+ /** {@inheritDoc} */
+ @Override
public boolean postOperation(CdmBase objectAffectedByOperation) {
- changed(objectAffectedByOperation);
- return true;
- }
+ changed(objectAffectedByOperation);
+ return true;
+ }
- /** {@inheritDoc} */
- @Override
+ /** {@inheritDoc} */
+ @Override
public abstract void changed(Object object);
- /**
- * <p>getConversationHolder</p>
- *
- * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
- */
- @Override
+ /**
+ * <p>getConversationHolder</p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+ */
+ @Override
public ConversationHolder getConversationHolder() {
- if(part != null && part instanceof IConversationEnabled) {
+ if(part != null && part instanceof IConversationEnabled) {
return ((IConversationEnabled) part).getConversationHolder();
}
- return null;
- }
+ return null;
+ }
- /** {@inheritDoc} */
- @Override
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ if(part != null && part instanceof ICdmEntitySessionEnabled) {
+ return ((ICdmEntitySessionEnabled) part).getCdmEntitySession();
+ }
+ return null;
+ }
+
+ @Override
+ public List<CdmBase> getRootEntities() {
+ return Arrays.asList((CdmBase)getViewer().getInput());
+ }
+
+ /** {@inheritDoc} */
+ @Override
public void update(CdmDataChangeMap changeEvents) {
- }
-
- /** {@inheritDoc} */
- @Override
- public void dispose() {
- selectionService.removeSelectionListener(this);
- super.dispose();
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
- */
- @Override
- public void forceDirty() {
- changed(null);
- }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void dispose() {
+ selectionService.removeSelectionListener(this);
+ super.dispose();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
+ */
+ @Override
+ public void forceDirty() {
+ changed(null);
+ }
}
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.Feature;
public boolean onComplete() {
return true;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.view.sessions;
+
+import java.util.List;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.FilteredTree;
+import org.eclipse.ui.dialogs.PatternFilter;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+import eu.etaxonomy.taxeditor.remoting.cache.CdmModelFieldPropertyFromClass;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
+import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult.CdmEntityInfo;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author cmathew
+ * @date 17 Feb 2015
+ *
+ */
+public class InspectSessionsDialog extends Dialog {
+
+ protected Object result;
+ protected Shell shlInspectSessions;
+ private Text txtDebugInfo;
+ private Label lblDebugInformation;
+
+ private final Cache cdmlibModelCache;
+
+ private final ICdmEntitySession activeSession;
+
+ private TreeViewer treeViewer;
+ private Button btnClose;
+ EntityCacherDebugResult ecdr;
+ private SashForm sashForm;
+ private Composite compositeDebug;
+ /**
+ * Create the dialog.
+ * @param parent
+ * @param style
+ */
+ public InspectSessionsDialog(Shell parent, int style) {
+ super(parent, style);
+ setText("Inspect Active Session");
+ cdmlibModelCache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+ activeSession = CdmStore.getCurrentSessionManager().getActiveSession();
+ ecdr = activeSession.debug();
+ }
+
+ /**
+ * Open the dialog.
+ * @return the result
+ */
+ public Object open() {
+
+ createContents();
+ setDebugInfoText();
+ treeViewer.setContentProvider(new SessionsTreeContentProvider());
+ treeViewer.setLabelProvider(new SessionsTreeLabelProvider());
+ treeViewer.setInput(getRootElements());
+ shlInspectSessions.open();
+ shlInspectSessions.layout();
+ Display display = getParent().getDisplay();
+ while (!shlInspectSessions.isDisposed()) {
+ if (!display.readAndDispatch()) {
+ display.sleep();
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Create contents of the dialog.
+ */
+ private void createContents() {
+ shlInspectSessions = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.RESIZE);
+ shlInspectSessions.setSize(641, 631);
+ shlInspectSessions.setText("Inspect Sessions");
+ shlInspectSessions.setLayout(new GridLayout(1, false));
+
+ sashForm = new SashForm(shlInspectSessions, SWT.VERTICAL);
+ sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+
+ PatternFilter filter = new PatternFilter();
+ FilteredTree tree = new FilteredTree(sashForm, SWT.MULTI | SWT.H_SCROLL | SWT.BORDER
+ | SWT.V_SCROLL, filter, true);
+ treeViewer = tree.getViewer();
+ //treeViewer = new TreeViewer(sashForm, SWT.BORDER);
+ //Tree tree = treeViewer.getTree();
+
+ compositeDebug = new Composite(sashForm, SWT.NONE);
+ compositeDebug.setLayout(new GridLayout(1, false));
+
+ lblDebugInformation = new Label(compositeDebug, SWT.NONE);
+ lblDebugInformation.setAlignment(SWT.CENTER);
+ lblDebugInformation.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1));
+ lblDebugInformation.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblDebugInformation.setText("Debug Information");
+
+ txtDebugInfo = new Text(compositeDebug, SWT.BORDER | SWT.READ_ONLY | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL | SWT.MULTI);
+ txtDebugInfo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ sashForm.setWeights(new int[] {338, 184});
+
+ btnClose = new Button(shlInspectSessions, SWT.NONE);
+ btnClose.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ shlInspectSessions.dispose();
+ }
+ });
+ GridData gd_btnClose = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_btnClose.widthHint = 70;
+ btnClose.setLayoutData(gd_btnClose);
+ btnClose.setText("Close");
+
+ }
+
+ private void setDebugInfoText() {
+ txtDebugInfo.setText(ecdr.toString());
+ }
+ private CdmEntityInfo[] getRootElements() {
+
+ List<CdmEntityInfo> rootElemnts = ecdr.getRootElements();
+ return rootElemnts.toArray(new CdmEntityInfo[rootElemnts.size()]);
+ }
+
+ class SessionsTreeContentProvider implements ITreeContentProvider {
+
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ @Override
+ public void dispose() {
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getElements(java.lang.Object)
+ */
+ @Override
+ public Object[] getElements(Object inputElement) {
+ return (CdmEntityInfo[])inputElement;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+ */
+ @Override
+ public Object[] getChildren(Object parentElement) {
+ List<CdmEntityInfo> children = ((CdmEntityInfo)parentElement).getChildren();
+ return children.toArray();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+ */
+ @Override
+ public Object getParent(Object element) {
+ CdmEntityInfo cei = (CdmEntityInfo)element;
+ return cei.getParent();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+ */
+ @Override
+ public boolean hasChildren(Object element) {
+ List<CdmEntityInfo> children = ((CdmEntityInfo)element).getChildren();
+ if(children != null && !children.isEmpty()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public CdmModelFieldPropertyFromClass getFromCdmlibModelCache(String className) {
+ Element e = cdmlibModelCache.get(className);
+ if (e == null) {
+ return null;
+ } else {
+ return (CdmModelFieldPropertyFromClass) e.getObjectValue();
+ }
+ }
+
+ }
+
+ class SessionsTreeLabelProvider extends StyledCellLabelProvider implements ILabelProvider {
+
+ @Override
+ public void update(ViewerCell cell) {
+ CdmEntityInfo cei = (CdmEntityInfo)cell.getElement();
+ StyledString text = new StyledString();
+ if(cei != null) {
+ text.append(cei.getLabel());
+ }
+ cell.setText(text.toString());
+ cell.setStyleRanges(text.getStyleRanges());
+ super.update(cell);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
+ */
+ @Override
+ public Image getImage(Object element) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+ */
+ @Override
+ public String getText(Object element) {
+ CdmEntityInfo cei = (CdmEntityInfo)element;
+ return cei.getLabel();
+ }
+ }
+}
+
+
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.view.sessions;
+
+import java.text.DecimalFormat;
+import java.util.Collection;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.statistics.LiveCacheStatistics;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+import eu.etaxonomy.cdm.api.cache.CdmCacher;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author cmathew
+ * @date 16 Feb 2015
+ *
+ */
+public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManagerObserver {
+
+ public static final String ID = "eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"; //$NON-NLS-1$
+ public static final String OPEN_INSPECT_SESSIONS_DIALOG_ID = "eu.etaxonomy.taxeditor.store.open.InspectSessionsDialog";
+ private Table tableSessions;
+
+ private final String[] titles = { "Owner", "In Memory", "On Disk"};
+
+ private final ICdmEntitySessionManager cdmEntitySessionManager;
+ private Text txtNoOfSessions;
+ private Text txtNoOfCaches;
+ private Text txtDefaultInMemory;
+ private Text txtCdmModelInMemory;
+ private Text txtCdmModelOnDisk;
+ private Text txtDefaultOnDisk;
+
+ public SessionsViewPart() {
+ this.cdmEntitySessionManager = CdmStore.getCurrentSessionManager();
+ if(cdmEntitySessionManager != null) {
+ cdmEntitySessionManager.addSessionObserver(this);
+ }
+ }
+
+ /**
+ * Create contents of the view part.
+ * @param parent
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NONE);
+ container.setLayout(new GridLayout(5, false));
+ {
+ Label lblNoOfSessions = new Label(container, SWT.NONE);
+ lblNoOfSessions.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblNoOfSessions.setAlignment(SWT.RIGHT);
+ GridData gd_lblNoOfSessions = new GridData(SWT.RIGHT, SWT.FILL, false, false, 1, 1);
+ gd_lblNoOfSessions.widthHint = 115;
+ gd_lblNoOfSessions.minimumHeight = 30;
+ lblNoOfSessions.setLayoutData(gd_lblNoOfSessions);
+ lblNoOfSessions.setText("No. of Sessions : ");
+ }
+ {
+ txtNoOfSessions = new Text(container, SWT.BORDER);
+ txtNoOfSessions.setEditable(false);
+ txtNoOfSessions.setBackground(SWTResourceManager.getColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
+ GridData gd_txtNoOfSessions = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtNoOfSessions.widthHint = 50;
+ txtNoOfSessions.setLayoutData(gd_txtNoOfSessions);
+ }
+ new Label(container, SWT.NONE);
+ new Label(container, SWT.NONE);
+ new Label(container, SWT.NONE);
+ {
+ Label lblNoOfCaches = new Label(container, SWT.CENTER);
+ lblNoOfCaches.setAlignment(SWT.RIGHT);
+ lblNoOfCaches.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ GridData gd_lblNoOfCaches = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+ gd_lblNoOfCaches.widthHint = 150;
+ lblNoOfCaches.setLayoutData(gd_lblNoOfCaches);
+ lblNoOfCaches.setText("No. of entity caches : ");
+ }
+ {
+ txtNoOfCaches = new Text(container, SWT.BORDER);
+ txtNoOfCaches.setEditable(false);
+ GridData gd_txtNoOfCaches = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtNoOfCaches.widthHint = 50;
+ txtNoOfCaches.setLayoutData(gd_txtNoOfCaches);
+ }
+ new Label(container, SWT.NONE);
+ new Label(container, SWT.NONE);
+ new Label(container, SWT.NONE);
+
+ {
+ Label lblDefaultCache = new Label(container, SWT.CENTER);
+ lblDefaultCache.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblDefaultCache.setText("Default Cache, ");
+ lblDefaultCache.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblDefaultCache.setAlignment(SWT.RIGHT);
+ }
+ {
+ Label lblDefaultInMemory = new Label(container, SWT.CENTER);
+ lblDefaultInMemory.setText("in Memory : ");
+ lblDefaultInMemory.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblDefaultInMemory.setAlignment(SWT.RIGHT);
+ lblDefaultInMemory.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ }
+ {
+ txtDefaultInMemory = new Text(container, SWT.BORDER);
+ txtDefaultInMemory.setEditable(false);
+ GridData gd_txtDefaultInMemory = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtDefaultInMemory.widthHint = 130;
+ txtDefaultInMemory.setLayoutData(gd_txtDefaultInMemory);
+ }
+ {
+ Label lblDefaultOnDisk = new Label(container, SWT.CENTER);
+ lblDefaultOnDisk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblDefaultOnDisk.setText("on Disk : ");
+ lblDefaultOnDisk.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblDefaultOnDisk.setAlignment(SWT.RIGHT);
+ }
+ {
+ txtDefaultOnDisk = new Text(container, SWT.BORDER);
+ txtDefaultOnDisk.setEditable(false);
+ txtDefaultOnDisk.setText("");
+ GridData gd_txtDefaultOnDisk = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtDefaultOnDisk.widthHint = 130;
+ txtDefaultOnDisk.setLayoutData(gd_txtDefaultOnDisk);
+ }
+ {
+ Label lblCdmModelCache = new Label(container, SWT.CENTER);
+ lblCdmModelCache.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblCdmModelCache.setText("CDM Model Cache, ");
+ lblCdmModelCache.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblCdmModelCache.setAlignment(SWT.RIGHT);
+ }
+ {
+ Label lblCdmModelInMemory = new Label(container, SWT.CENTER);
+ lblCdmModelInMemory.setText("in Memory : ");
+ lblCdmModelInMemory.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblCdmModelInMemory.setAlignment(SWT.RIGHT);
+ GridData gd_lblCdmModelInMemory = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+ gd_lblCdmModelInMemory.widthHint = 86;
+ lblCdmModelInMemory.setLayoutData(gd_lblCdmModelInMemory);
+ }
+ {
+ txtCdmModelInMemory = new Text(container, SWT.BORDER);
+ txtCdmModelInMemory.setEditable(false);
+ GridData gd_txtCdmModelInMemory = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtCdmModelInMemory.widthHint = 130;
+ txtCdmModelInMemory.setLayoutData(gd_txtCdmModelInMemory);
+ }
+ {
+ Label lblCdmModelOnDisk = new Label(container, SWT.CENTER);
+ lblCdmModelOnDisk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblCdmModelOnDisk.setText("on Disk : ");
+ lblCdmModelOnDisk.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+ lblCdmModelOnDisk.setAlignment(SWT.RIGHT);
+ }
+ {
+ txtCdmModelOnDisk = new Text(container, SWT.BORDER);
+ txtCdmModelOnDisk.setEditable(false);
+ txtCdmModelOnDisk.setText("");
+ GridData gd_txtCdmModelOnDisk = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtCdmModelOnDisk.widthHint = 130;
+ txtCdmModelOnDisk.setLayoutData(gd_txtCdmModelOnDisk);
+ }
+ {
+ Button btnRefresh = new Button(container, SWT.NONE);
+ btnRefresh.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ changed();
+ }
+ });
+ GridData gd_btnRefresh = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
+ gd_btnRefresh.widthHint = 100;
+ btnRefresh.setLayoutData(gd_btnRefresh);
+ btnRefresh.setText("Refresh");
+ }
+ {
+ Button btnInspectActiveSession = new Button(container, SWT.NONE);
+ btnInspectActiveSession.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ AbstractUtility.executeCommand(OPEN_INSPECT_SESSIONS_DIALOG_ID, this, null);
+ }
+ });
+ btnInspectActiveSession.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1));
+ btnInspectActiveSession.setText("Inspect Active Session");
+ }
+ new Label(container, SWT.NONE);
+ new Label(container, SWT.NONE);
+
+ {
+ tableSessions = new Table(container, SWT.BORDER | SWT.FULL_SELECTION);
+ GridData gd_tableSessions = new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1);
+ gd_tableSessions.widthHint = 769;
+ tableSessions.setLayoutData(gd_tableSessions);
+ tableSessions.setHeaderVisible(true);
+ tableSessions.setLinesVisible(true);
+ }
+
+ createActions();
+ initializeToolBar();
+ initializeMenu();
+ }
+
+ /**
+ * Create the actions.
+ */
+ private void createActions() {
+
+
+ for (String title : titles) {
+ TableColumn column = new TableColumn(tableSessions, SWT.NULL);
+ column.setWidth(200);
+ column.setText(title);
+ }
+ changed();
+
+ }
+
+
+ @Override
+ public void changed() {
+ if(tableSessions.isDisposed()) {
+ return;
+ }
+ tableSessions.removeAll();
+ if(cdmEntitySessionManager != null) {
+ Collection<ICdmEntitySession> sessions = cdmEntitySessionManager.getSessions();
+ txtNoOfSessions.setText(String.valueOf(sessions.size()));
+ for(ICdmEntitySession session : sessions) {
+ if(session.getOwner() != null) {
+ TableItem item = new TableItem(tableSessions, SWT.NULL);
+ item.setText(session.getOwner().toString());
+ String activePrefix = "";
+ if(session.isActive()) {
+ activePrefix = "*";
+ }
+ item.setText(0, activePrefix + session.getOwner().toString());
+ LiveCacheStatistics cacheStatistics = session.getCacheStatistics();
+ item.setText(1, getInMemoryStats(cacheStatistics));
+ item.setText(2, getOnDiskStats(cacheStatistics));
+ }
+ }
+ for (int i=0; i<titles.length; i++) {
+ tableSessions.getColumn (i).pack ();
+ }
+ }
+
+ CdmRemoteCacheManager instance = CdmRemoteCacheManager.getInstance();
+ int cdmEnityCacheSize = CacheManager.create().getCacheNames().length;
+ txtNoOfCaches.setText(String.valueOf(cdmEnityCacheSize));
+
+ Cache defaultCache = CacheManager.create().getCache(CdmCacher.DEFAULT_CACHE_NAME);
+ txtDefaultInMemory.setText("");
+ txtDefaultOnDisk.setText("");
+ if(defaultCache != null) {
+ LiveCacheStatistics liveCacheStatistics = defaultCache.getLiveCacheStatistics();
+ txtDefaultInMemory.setText(getInMemoryStats(liveCacheStatistics));
+ txtDefaultOnDisk.setText(getOnDiskStats(liveCacheStatistics));
+ }
+
+ Cache cdmModelGetMethodsCache = instance.getCdmModelGetMethodsCache();
+ txtCdmModelInMemory.setText("");
+ txtCdmModelOnDisk.setText("");
+ if(cdmModelGetMethodsCache != null) {
+ LiveCacheStatistics liveCacheStatistics = cdmModelGetMethodsCache.getLiveCacheStatistics();
+ txtCdmModelInMemory.setText(getInMemoryStats(liveCacheStatistics));
+ txtCdmModelOnDisk.setText(getOnDiskStats(liveCacheStatistics));
+ }
+
+ }
+
+ private String getInMemoryStats(LiveCacheStatistics statistics) {
+ long localHeapSize = statistics.getLocalHeapSize();
+
+ long localHeapSizeInBytes = statistics.getLocalHeapSizeInBytes();
+ String localHeapSizeInBytesStr =
+ (new DecimalFormat("#.##")).format(localHeapSizeInBytes/1048576.0);
+ return String.valueOf(localHeapSize) + " objects / " + localHeapSizeInBytesStr + " Mb";
+ }
+
+ private String getOnDiskStats(LiveCacheStatistics statistics) {
+ long localDiskSize = statistics.getLocalDiskSize();
+
+ long localDiskSizeInBytes = statistics.getLocalDiskSizeInBytes();
+ String localDiskSizeInBytesStr =
+ (new DecimalFormat("#.##")).format(localDiskSizeInBytes/1048576.0);
+ return String.valueOf(localDiskSize) + " objects / " + localDiskSizeInBytesStr + " Mb";
+ }
+
+ /**
+ * Initialize the toolbar.
+ */
+ private void initializeToolBar() {
+ IToolBarManager toolbarManager = getViewSite().getActionBars().getToolBarManager();
+ }
+
+ /**
+ * Initialize the menu.
+ */
+ private void initializeMenu() {
+ IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();
+ }
+
+ @Override
+ public void setFocus() {
+ // Set the focus
+ }
+
+}
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.EditorPart;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
+
}
// $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.
*/
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
/**
* @author n.hoffmann
* @version 1.0
*/
public abstract class AbstractTaxeditorOperationTestBase {
-
+
public static final IUndoContext undoContext = null;
-
+
public static final IProgressMonitor monitor = null;
- public static final IAdaptable info = null;
+ public static final IAdaptable info = null;
public static final IPostOperationEnabled postOperation = null;
-
+ public static final ICdmEntitySessionEnabled cdmEntitySessionEnabled = null;
+
protected static AbstractPostOperation operation;
protected static Taxon taxon;
}
<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/test/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry including="**/*.java" kind="src" path="src/test/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/test/resources"/>
+ <classpathentry exported="true" kind="lib" path="lib/byte-buddy-0.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
-<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>eu.etaxonomy.taxeditor.test</name>
- <comment></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.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+ <name>eu.etaxonomy.taxeditor.test</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/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
-#Wed Oct 05 13:31:15 CEST 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.apache.log4j,
- org.eclipse.ui,
+Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
- org.eclipse.swtbot.eclipse.core,
- org.eclipse.swtbot.eclipse.finder,
- org.eclipse.swtbot.junit4_x,
org.eclipse.ui.ide,
- eu.etaxonomy.taxeditor.application,
- eu.etaxonomy.taxeditor.bulkeditor,
+ org.junit;bundle-version="4.8.2",
eu.etaxonomy.taxeditor.cdmlib,
+ eu.etaxonomy.taxeditor.bulkeditor,
eu.etaxonomy.taxeditor.editor,
eu.etaxonomy.taxeditor.help,
eu.etaxonomy.taxeditor.navigation,
eu.etaxonomy.taxeditor.printpublisher,
- eu.etaxonomy.taxeditor.store
-Eclipse-RegisterBuddy: org.apache.log4j
+ eu.etaxonomy.taxeditor.store,
+ org.apache.log4j,
+ org.hamcrest,
+ org.eclipse.swtbot.eclipse.core,
+ org.eclipse.swtbot.eclipse.finder
+Eclipse-RegisterBuddy: org.apache.log4j, org.eclipse.swtbot.swt.finder
+Bundle-ClassPath: .,
+ lib/byte-buddy-0.5.1.jar,
+ lib/org.springframework.context-3.2.2.RELEASE.jar,
+ lib/unitils-core-3.4.2.jar,
+ lib/unitils-database-3.4.2.jar,
+ lib/unitils-dbmaintainer-3.4.2.jar,
+ lib/unitils-dbunit-3.4.2.jar,
+ lib/unitils-spring-3.4.2.jar,
+ lib/dbunit-2.4.9.jar
+Export-Package: org.hamcrest
-source.. = src/test/java/
+source.. = src/test/java/,\
+ src/test/resources/
bin.includes = META-INF/,\
- .
+ .,\
+ lib/byte-buddy-0.5.1.jar,\
+ lib/org.springframework.context-3.2.2.RELEASE.jar,\
+ lib/unitils-core-3.4.2.jar,\
+ lib/unitils-database-3.4.2.jar,\
+ lib/unitils-dbmaintainer-3.4.2.jar,\
+ lib/unitils-dbunit-3.4.2.jar,\
+ lib/unitils-spring-3.4.2.jar,\
+ lib/dbunit-2.4.9.jar,\
+ src/test/resources/
+output.. = target/classes
<?xml version="1.0" encoding="UTF-8"?>\r
<project>\r
\r
- <parent>\r
- <groupId>eu.etaxonomy</groupId>\r
- <artifactId>taxeditor-parent</artifactId>\r
- <version>3.4.0-SNAPSHOT</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <artifactId>eu.etaxonomy.taxeditor.test</artifactId>\r
- <packaging>eclipse-test-plugin</packaging>\r
- <name>UI Test Bundle</name>\r
- <description>Holds all UI tests for the Taxonomic Editor</description>\r
- <!-- <repositories> -->\r
- <!-- <repository> -->\r
- <!-- <id>ganymede</id> -->\r
- <!-- <layout>p2</layout> -->\r
- <!-- <url>http://download.eclipse.org/releases/galileo</url> -->\r
- <!-- </repository> -->\r
- <!-- <repository> -->\r
- <!-- <id>swtbot</id> -->\r
- <!-- <layout>p2</layout> -->\r
- <!-- <url>http://download.eclipse.org/technology/swtbot/galileo/dev-build/update-site</url> -->\r
- <!-- </repository> -->\r
- <!-- </repositories> -->\r
-\r
- <build>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.eclipse.tycho</groupId>\r
- <artifactId>tycho-maven-plugin</artifactId>\r
- <version>${tycho.version}</version>\r
- <extensions>true</extensions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.eclipse.tycho</groupId>\r
- <artifactId>target-platform-configuration</artifactId>\r
- <version>${tycho.version}</version>\r
- <configuration>\r
- <resolver>p2</resolver>\r
- </configuration>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.eclipse.tycho</groupId>\r
- <artifactId>tycho-surefire-plugin</artifactId>\r
- <version>${tycho.version}</version>\r
- <configuration>\r
- <useUIHarness>true</useUIHarness>\r
- <useUIThread>false</useUIThread>\r
- <includes>\r
- <include>**/*Test.java</include>\r
- </includes>\r
- <product>eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product</product>\r
- <application>eu.etaxonomy.taxeditor.application.application</application>\r
- <!-- <dependency>
- <type>p2-installable-unit</type>
- <artifactId>eu.etaxonomy.taxeditor.product</artifactId>
- <version>0.0.0</version>
- </dependency> -->\r
- </configuration>\r
- </plugin>\r
- <!-- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>maven-osgi-test-plugin</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <useUIHarness>true</useUIHarness>
- <useUIThread>false</useUIThread>
- <product>eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product</product>
- <application>org.eclipse.ui.ide.workbench</application>
- <dependencies>
- <dependency>
- <type>p2-installable-unit</type>
- <artifactId>eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product</artifactId>
- <version>0.0.0</version>
- </dependency>
- </dependencies>
- </configuration>
- </plugin> -->\r
- </plugins>\r
- </build>\r
+ <parent>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>taxeditor-parent</artifactId>\r
+ <version>3.6.1-SNAPSHOT</version>\r
+ </parent>\r
+ <modelVersion>4.0.0</modelVersion>\r
+ <artifactId>eu.etaxonomy.taxeditor.test</artifactId>\r
+ <packaging>eclipse-test-plugin</packaging>\r
+ <name>UI Test Bundle</name>\r
+ <description>Holds all Tests for the Taxonomic Editor</description>\r
+ <build>\r
+ <plugins>\r
+ <plugin>\r
+ <groupId>org.eclipse.tycho</groupId>\r
+ <artifactId>target-platform-configuration</artifactId>\r
+ <version>${tycho.version}</version>\r
+ <configuration>\r
+ <filters>\r
+ <!-- Work around for https://bugs.eclipse.org/bugs/show_bug.cgi?id=348045 -->\r
+ <!-- taken from https://wiki.eclipse.org/index.php?title=Tycho/Target_Platform#Filtering -->\r
+ <filter>\r
+ <type>p2-installable-unit</type>\r
+ <id>org.eclipse.equinox.servletbridge.extensionbundle</id>\r
+ <removeAll />\r
+ </filter>\r
+ </filters>\r
+ </configuration>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>org.eclipse.tycho</groupId>\r
+ <artifactId>tycho-surefire-plugin</artifactId>\r
+ <version>${tycho.version}</version>\r
+ <configuration>\r
+ <!-- currently we run only the non-ui unit tests so we don't the \r
+ harness -->\r
+ <!-- <useUIHarness>true</useUIHarness> -->\r
+ <dependencies>\r
+ <!-- This will pull the feature and its dependent plugins into \r
+ the classpath for the tests. Note that this requires ALL taxeditor projects \r
+ to be installed. -->\r
+ <dependency>\r
+ <type>eclipse-feature</type>\r
+ <artifactId>eu.etaxonomy.taxeditor.feature</artifactId>\r
+ <!-- This is the minimum required version -->\r
+ <version>1.0.0</version>\r
+ </dependency>\r
+ </dependencies>\r
+ </configuration>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>org.eclipse.jetty</groupId>\r
+ <artifactId>jetty-maven-plugin</artifactId>\r
+ <version>9.2.9.v20150224</version>\r
+ <configuration>\r
+ <jvmArgs>-Xmx512m -XX:MaxPermSize=512m</jvmArgs>\r
+ <systemProperties>\r
+ <systemProperty>\r
+ <name>spring.profiles.active</name>\r
+ <value>remoting</value>\r
+ </systemProperty>\r
+ <systemProperty>\r
+ <name>cdm.beanDefinitionFile</name>\r
+ <value>${basedir}/src/test/resources/datasources.xml</value>\r
+ </systemProperty>\r
+ <systemProperty>\r
+ <name>cdm.datasource</name>\r
+ <value>cdmTest</value>\r
+ </systemProperty>\r
+ </systemProperties>\r
+ <stopPort>9191</stopPort>\r
+ <stopKey>jetty-cdm-server</stopKey>\r
+ <stopWait>10</stopWait>\r
+ <httpConnector>\r
+ <port>9090</port>\r
+ </httpConnector>\r
+ <war>${project.parent.basedir}/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war</war>\r
+ <daemon>true</daemon>\r
+ </configuration>\r
+ <executions>\r
+ <execution>\r
+ <id>start-jetty</id>\r
+ <phase>pre-integration-test</phase>\r
+ <goals>\r
+ <goal>deploy-war</goal>\r
+ </goals>\r
+ <configuration>\r
+ <scanIntervalSeconds>0</scanIntervalSeconds>\r
+ </configuration>\r
+ </execution>\r
+ <execution>\r
+ <id>stop-jetty</id>\r
+ <phase>post-integration-test</phase>\r
+ <goals>\r
+ <goal>stop</goal>\r
+ </goals>\r
+ </execution>\r
+ </executions>\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
</project>
\ No newline at end of file
--- /dev/null
+httpPort=9090
+stopPort=9191
+stopKey=jetty-cdm-server
+user=admin
+password=00000
+
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
- debug="false">
-
- <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="%d{dd MMM yyyy HH:mm:ss.SSS} - %25t - %-5p - %30c{1} - (%C{1}.java:%L) - %m%n" />
- </layout>
- </appender>
-
- <appender name="fileAppender" class="org.apache.log4j.FileAppender">
- <param name="File" value="/tmp/debug.log" />
- <param name="Append" value="false" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="%d{dd MMM yyyy HH:mm:ss.SSS} - %25t - %-5p - %30c{1} - (%C{1}.java:%L) - %m%n" />
- </layout>
- </appender>
-
- <appender name="asyncAppender" class="org.apache.log4j.AsyncAppender">
- <!-- appender-ref ref="consoleAppender" / -->
- <appender-ref ref="fileAppender" />
- </appender>
-
- <!-- don't log matchers, this is very high amount of chatter -->
- <category name="org.eclipse.swtbot.swt.finder.matchers">
- <priority value="OFF" />
- </category>
-
- <!--
- don't log widget notification events, this is moderately high chatter
- -->
- <category name="org.eclipse.swtbot.swt.finder.widgets">
- <priority value="OFF" />
- </category>
-
- <!-- don't log finders, this is moderate chatter -->
- <category name="org.eclipse.swtbot.swt.finder.finders">
- <priority value="DEBUG" />
- </category>
-
- <category name="org.eclipse.swtbot.swt.finder.keyboard">
- <!-- set to a value higher than debug to turn on. -->
- <priority value="DEBUG" />
- </category>
-
- <category name="org.eclipse.swtbot">
- <priority value="ALL" />
- </category>
-
- <root>
- <priority value="INFO" />
- <appender-ref ref="consoleAppender" />
- <appender-ref ref="fileAppender" />
- </root>
-
-</log4j:configuration>
\ No newline at end of file
--- /dev/null
+// $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.cdm.api.cache;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.KeyStatement;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+
+/**
+ * @author cmathew
+ * @date 7 Oct 2014
+ *
+ */
+@DataSet
+public class CdmClientCachingTest extends RemotingSessionAwareTest {
+
+ private static final Logger logger = Logger.getLogger(CdmClientCachingTest.class);
+
+ private final UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+ private final UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
+ private final UUID polytomousKeyNodeUuid1 = UUID.fromString("75e4c924-ff58-4ee7-a59d-fd9173517d08");
+ private final UUID polytomousKeyNodeUuid2 = UUID.fromString("b775c027-13c0-4b87-8aa9-712faeaafbdc");
+
+
+ private final IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+ private final IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
+ private final ICommonService commonService = getRemoteApplicationController().getCommonService();
+ private final ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+
+
+ private static final List<String> PKEY_DEPTH1_INIT_STRATEGY = Arrays.asList(new String[] {
+ });
+
+ private static final List<String> PKEY_DEPTH2_INIT_STRATEGY = Arrays.asList(new String[] {
+ "root"});
+
+ private static final List<String> PKEY_DEPTH3_INIT_STRATEGY = Arrays.asList(new String[] {
+ "root.statement"});
+
+
+ @BeforeClass
+ public static void initializePolytomousKeyTest() {
+
+ }
+
+
+
+
+ @Test
+ public void recursiveLoadSubGraphDepth1Test() {
+
+ // this call will load into the session cache the graph
+ // polytomous key
+ // |- root : polytomous key node
+ // in a recursive call
+ PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH1_INIT_STRATEGY),PolytomousKey.class);
+
+
+ // checking to make sure the root object is in the session cache
+ Assert.assertSame(pkey1.getRoot(), cacher.getFromCache(pkey1.getRoot()));
+
+ }
+
+
+ @Test
+ public void recursiveLoadSubGraphDepth2Test() {
+
+ // this call will load into the session cache the graph
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+ // in a recursive call
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+ CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+ // checking to make sure the root object is in the session cache
+ Assert.assertSame(pkey.getRoot(), cacher.getFromCache(pkey.getRoot()));
+ Assert.assertSame(pkey.getRoot().getStatement(), cacher.getFromCache(pkey.getRoot().getStatement()));
+ Assert.assertSame(pkey.getRoot().getQuestion(), cacher.getFromCache(pkey.getRoot().getQuestion()));
+
+ }
+
+ /**
+ * when : retrieving objects using recursive caching of object graphs with different depths
+ * then : the objects in the sub-graph having the same persistence id should be the same
+ */
+ @Test
+ public void lazyLoadRecursiveTest() {
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+ PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+ CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+
+ }
+
+
+ /**
+ * when : retrieving objects using recursive caching of object graphs with different depths
+ * then : the objects in the sub-graph having the same persistence id should be the same
+ */
+ @Test
+ public void differentSubGraphDepthTest1() {
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // in a recursive call
+ PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH1_INIT_STRATEGY),PolytomousKey.class);
+ KeyStatement ks1 = CdmBase.deproxy(pkey1.getRoot().getStatement(), KeyStatement.class);
+
+ CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+ PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH3_INIT_STRATEGY),PolytomousKey.class);
+
+ KeyStatement ks2 = CdmBase.deproxy(pkey2.getRoot().getStatement(), KeyStatement.class);
+
+ Assert.assertSame(ks2, cacher.getFromCache(ks2));
+ Assert.assertSame(cacher.getFromCache(KeyStatement.class, ks1.getId()), cacher.getFromCache(ks2));
+
+ }
+
+ /**
+ * when : retrieving objects using recursive caching of object graphs with different depths
+ * then : the objects in the sub-graph having the same persistence id should be the same
+ */
+ @Test
+ public void differentSubGraphDepthTest2() {
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+ PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+
+ CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH1_INIT_STRATEGY),PolytomousKey.class);
+
+
+ Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement()));
+ Assert.assertSame(pkey1.getRoot().getStatement(), pkey2.getRoot().getStatement());
+ Assert.assertSame(cacher.getFromCache(pkey1.getRoot().getStatement()), cacher.getFromCache(pkey2.getRoot().getStatement()));
+ }
+
+ /**
+ * when : retrieving objects using (first) recursive load directly and (second) lazy loading in the same session
+ * then : the objects in the sub-graph having the same persistence id should be the same
+ */
+ @Test
+ public void recursiveLoadAndLazyLoadTest() {
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+ PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+
+ CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+
+ // checking that the root is not null and
+ // that it exists in the cache and
+ // that both the original object and the
+ // cached object are the same
+ Assert.assertNotNull(pkey1.getRoot().getStatement());
+ Assert.assertNotNull(cacher.getFromCache(pkey1.getRoot().getStatement()));
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+
+ Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement()));
+ Assert.assertSame(pkey1.getRoot().getStatement(), pkey2.getRoot().getStatement());
+ Assert.assertSame(cacher.getFromCache(pkey1.getRoot().getStatement()), cacher.getFromCache(pkey2.getRoot().getStatement()));
+ }
+
+ /**
+ * when : retrieving objects using (first) lazy loading and (second) recursive load directly in the same session
+ * then : the objects in the sub-graph having the same persistence id should be the same
+ */
+ @Test
+ public void lazyLoadAndRecursiveLoadTest() {
+
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+
+ PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ // lazy initialising root.statement
+ KeyStatement st = CdmBase.deproxy(pkey1.getRoot().getStatement(), KeyStatement.class);
+ st.getLabel();
+
+ // checking that the root is not null and
+ // that it exists in the cache and
+ // that both the original object and the
+ // cached object are the same
+ Assert.assertNotNull(pkey1.getRoot().getStatement());
+ Assert.assertSame(CdmBase.deproxy(pkey1.getRoot().getStatement(), KeyStatement.class),
+ cacher.getFromCache(pkey1.getRoot().getStatement(), KeyStatement.class));
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+
+ PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+
+
+ Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement(), KeyStatement.class));
+ Assert.assertSame(st, pkey2.getRoot().getStatement());
+ Assert.assertSame(cacher.getFromCache(st), cacher.getFromCache(pkey2.getRoot().getStatement(), KeyStatement.class));
+ }
+
+
+
+
+
+ /**
+ * when : loading an object (first) and then (second) loading a graph the object is contained in, in the same session
+ * then : the object should be the same
+ */
+ @Test
+ public void subGraphObjectLoadTest1() {
+
+ // this call will load into the session cache a polytomous key node object
+ PolytomousKeyNode rootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid1),PolytomousKeyNode.class);
+
+
+ Assert.assertNotNull(rootPKNode);
+ Assert.assertSame(rootPKNode, cacher.getFromCache(rootPKNode));
+
+ PolytomousKeyNode childOfRootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid2),PolytomousKeyNode.class);
+
+
+ Assert.assertNotNull(childOfRootPKNode);
+ Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+
+
+ Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+ Assert.assertSame(pkey.getRoot().getChildAt(1), childOfRootPKNode);
+ }
+
+ /**
+ * when : loading a graph (first) and then (second) loading an object contained in in the graph, in the same session
+ * then : the object should be the same
+ */
+ @Test
+ public void subGraphObjectLoadTest2() {
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+
+
+ // this call will load into the session cache a polytomous key node object
+ PolytomousKeyNode rootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid1),PolytomousKeyNode.class);
+
+
+ Assert.assertNotNull(rootPKNode);
+ Assert.assertSame(rootPKNode, cacher.getFromCache(rootPKNode));
+
+ PolytomousKeyNode childOfRootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid2),PolytomousKeyNode.class);
+
+
+ Assert.assertNotNull(childOfRootPKNode);
+ Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+
+ Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+ Assert.assertSame(pkey.getRoot().getChildAt(1), childOfRootPKNode);
+ }
+
+
+ /**
+ * when : loading objects from a collection
+ * then : the object stored in the cache should be the same
+ */
+ @Test
+ public void subGraphCollectionLoadTest() {
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+
+
+ PolytomousKeyNode childOfRootPKNode = pkey.getRoot().getChildAt(1);
+
+ Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+ Assert.assertSame(pkey.getRoot().getChildAt(1), childOfRootPKNode);
+
+ }
+
+ /**
+ * when : loading a non-lazy collection in a subgraph and loading the collection directly
+ * then : the object stored in the cache should be the same as the object in the sub-graph collection and
+ * the object in the directly loaded collection
+ */
+ @Test
+ public void nonLazyCollectionLoadTest() {
+ // need to find an example of this
+ }
+
+ /**
+ * when : loading objects from a map
+ * then : the object stored in the cache should be the same
+ */
+ @Test
+ public void subGraphMapLoadTest() {
+
+ Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+ Language hindi = Language.getLanguageFromUuid(UUID.fromString("0a1d9d1d-135d-4575-b172-669b51673c39"));
+
+
+ // this call will load into the session cache the graph and update the objects in the sub-graph for a
+ // polytomous key
+ // |- root : polytomous key node
+ // |- question : KeyStatement
+ // |- statement : KeyStatement
+
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH3_INIT_STRATEGY),PolytomousKey.class);
+
+
+ Map<Language, LanguageString> labelMap = pkey.getRoot().getStatement().getLabel();
+ Set<Language> languages = labelMap.keySet();
+ Iterator<Language> languagesItr = languages.iterator();
+ while(languagesItr.hasNext()) {
+ Language lang = languagesItr.next();
+ if(lang.equals(english)) {
+ Assert.assertSame(lang, english);
+ }
+ if(lang.equals(hindi)) {
+ Assert.assertSame(lang, hindi);
+ }
+ Assert.assertSame(lang, cacher.getFromCache(lang));
+ }
+ }
+
+ /**
+ * when : loading a non-lazy map in a subgraph and loading the map directly
+ * then : the object stored in the cache should be the same as the object in the sub-graph map and
+ * the object in the directly loaded map
+ */
+ @Test
+ public void nonLazyMapLoadTest() {
+ // need to find an example of this
+ }
+
+
+
+}
--- /dev/null
+package eu.etaxonomy.cdm.api.cache;
+
+import java.util.List;
+
+import net.sf.ehcache.Cache;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+
+import eu.etaxonomy.taxeditor.remoting.cache.CdmModelCacher;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmModelFieldPropertyFromClass;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+
+
+public class CdmModelGetMethodCacherTest {
+
+ private static final Logger logger = Logger.getLogger(CdmModelGetMethodCacherTest.class);
+
+
+ @Test
+ public void cacheGettersTest() {
+
+ CdmModelCacher cmdmc = new CdmModelCacher();
+
+ Cache cdmlibCache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+ List<CdmModelFieldPropertyFromClass> cmgmfcList = cmdmc.getCdmModelGetMethodFromClassList();
+
+ List<Object> keys = cdmlibCache.getKeys();
+ Assert.assertEquals(cmgmfcList.size(), keys.size());
+
+ for(CdmModelFieldPropertyFromClass cmgmfc: cmgmfcList) {
+ String className = cmgmfc.getClassName();
+ Assert.assertTrue(keys.contains(className));
+ logger.info("Class Name : " + className + " has been cached");
+ }
+
+ //FIXME:Remoting do we need to test this ?
+ // this will cause the following tests to fail since all caches are shutdown
+ //cdmlibCache.removeAll();
+ //CacheManager.create().shutdown();
+ }
+
+
+
+
+}
--- /dev/null
+// $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.cdm.model;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Credit;
+import eu.etaxonomy.cdm.model.common.Extension;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.KeyStatement;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.model.media.Rights;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
+import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.session.MockSessionOwner;
+
+/**
+ * @author cmathew
+ * @date 7 Oct 2014
+ *
+ */
+@DataSet
+public class PolytomousKeyTest extends RemotingSessionAwareTest {
+
+ private static final Logger logger = Logger.getLogger(PolytomousKeyTest.class);
+
+ UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+ UUID subKeyUuid = UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01");
+ //UUID polytomousKeyUuid = UUID.fromString("bab66772-2c83-428a-bb6d-655d12ac6097");
+ UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
+
+
+ IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+ IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
+ ICommonService commonService = getRemoteApplicationController().getCommonService();
+ ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+
+ Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+
+
+ @BeforeClass
+ public static void initializePolytomousKeyTest() {
+ }
+
+
+ @Test
+ public void readAllPolytomousKeys() {
+ List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
+ Iterator<PolytomousKey> pKeysItr = pKeys.iterator();
+ Assert.assertEquals(pKeysItr.next().getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
+ Assert.assertEquals(pKeysItr.next().getUuid(),UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));
+ }
+
+
+ @Test
+ //@DataSet("PolytomousKeyTest.readPolytmousKeyData.xml")
+ public void readPolytmousKeyData() {
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+ Set<Taxon> taxonomicScope = pKey.getTaxonomicScope();
+ Iterator<Taxon> tsItr = taxonomicScope.iterator();
+ Taxon taxon = tsItr.next();
+
+ Assert.assertEquals("Achillea sec. Cyprus", taxon.getTitleCache());
+ Assert.assertEquals(tsItr.hasNext(), false);
+
+ List<Credit> credits = pKey.getCredits();
+ AgentBase agent = credits.get(0).getAgent();
+ Assert.assertEquals(agent.getId(),4809);
+ Assert.assertEquals(agent.getTitleCache(),"R. A. Graham");
+ Assert.assertEquals(credits.get(0).getText(),"Credits Text Test");
+
+ Set<Extension> exts = pKey.getExtensions();
+ Iterator<Extension> extItr = exts.iterator();
+ Extension ext = extItr.next();
+ Assert.assertEquals(ext.getValue(), "http://test.com");
+
+ Set<Rights> rights = pKey.getRights();
+ Iterator<Rights> rightsItr = rights.iterator();
+ Rights right = rightsItr.next();
+ Assert.assertEquals(right.getText(),"Rights Text Test");
+
+ Set<IdentifiableSource> sources = pKey.getSources();
+ Iterator<IdentifiableSource> sourcesItr = sources.iterator();
+ IdentifiableSource source = sourcesItr.next();
+ Assert.assertEquals(source.getId(), 23710);
+ source = sourcesItr.next();
+ Assert.assertEquals(source.getId(), 23711);
+
+ // TO DO : Added tests for Annotations , Markers
+ }
+
+ @Test
+ public void readPolytomousKeyDataFromNodes() {
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+ PolytomousKeyNode rootNode = pKey.getRoot();
+
+
+ Assert.assertEquals(rootNode.getId(), 2750);
+
+ Assert.assertEquals(rootNode.getChildAt(0).getId(), 2751);
+ Assert.assertEquals(rootNode.getChildAt(0).getParent().getId(), rootNode.getId());
+ Assert.assertEquals(rootNode.getKey().getId(), pKey.getId());
+ Integer sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(0), "sortIndex");
+ Assert.assertEquals(sortIndex, new Integer(0));
+ String statement = "Capitula without ligulate ray-florets; leaves entire or subentire";
+ Assert.assertEquals(rootNode.getChildAt(0).getStatement().getLabelText(english), statement);
+
+ Assert.assertEquals(rootNode.getChildAt(1).getId(), 2753);
+ Assert.assertEquals(rootNode.getChildAt(1).getParent().getId(), rootNode.getId());
+ Assert.assertEquals(rootNode.getChildAt(1).getKey().getId(), pKey.getId());
+ sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1), "sortIndex");
+ Assert.assertEquals(sortIndex, new Integer(1));
+ statement = "Capitula with ligulate ray-florets; leaves pinnatisect";
+ Assert.assertEquals(rootNode.getChildAt(1).getStatement().getLabelText(english), statement);
+
+ Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getId(), 2754);
+ Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getParent().getId(), rootNode.getChildAt(1).getId());
+ Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getKey().getId(), pKey.getId());
+ sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1).getChildAt(0), "sortIndex");
+ Assert.assertEquals(sortIndex, new Integer(0));
+ statement = "Ray-florets yellow";
+ Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getStatement().getLabelText(english), statement);
+ Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getChildAt(0).getTaxon().getTitleCache(), "Achillea arabica Kotschy sec. Cyprus");
+ }
+
+ @Test
+ public void savePolytomousKeyNodeData() {
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+ PolytomousKeyNode pkeynode = pkey.getRoot();
+ String newQuestion = "New Question";
+ String newStatement = "New Statement";
+
+ Assert.assertEquals("Question 1",pkeynode.getQuestion().getLabel().get(english).getText());
+ for(PolytomousKeyNode node : pkeynode.getChildren()) {
+
+ node.setQuestion(null);
+ node.setStatement(null);
+ }
+ //FIXME:Remoting Add tests for feature after fixing problem
+
+ //Feature feature = pkeynode.getFeature();
+ //Assert.assertEquals(feature.getTitleCache(),"Systematics");
+ //pkeynode.setFeature(null);
+
+ Assert.assertEquals(pkeynode.getChildAt(0).getModifyingText().get(english).getText(),"Modifying Text 1a");
+ String modifyingText = "Modifying Text 1a updated";
+
+ //pkeynode.getChildAt(0).putModifyingText(english, modifyingText);
+
+ Assert.assertEquals(pkeynode.getChildAt(0).getSubkey().getId(),751);
+ Assert.assertEquals("Asphodeline", pkeynode.getChildAt(0).getSubkey().getTitleCache());
+ Assert.assertNull(pkeynode.getChildAt(1).getTaxon());
+ Taxon taxon = CdmBase.deproxy(taxonService.find(taxon1Uuid),Taxon.class);
+ pkeynode.getChildAt(1).setTaxon(taxon);
+
+ EntityCacherDebugResult debugResult = new EntityCacherDebugResult(cacher, Arrays.asList(pkey));
+
+ polytomousKeyService.merge(pkey);
+
+ pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+ sessionOwner = new MockSessionOwner();
+
+
+ pkeynode = pkey.getRoot();
+ for(PolytomousKeyNode node : pkeynode.getChildren()) {
+ Assert.assertNull(node.getQuestion());
+ node.setQuestion(KeyStatement.NewInstance(english,newQuestion));
+ Assert.assertNull(node.getStatement());
+ node.setStatement(KeyStatement.NewInstance(english,newStatement));
+ }
+
+
+ Assert.assertEquals(pkeynode.getChildAt(1).getTaxon(), taxon);
+
+ polytomousKeyService.merge(pkey);
+
+ pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+ sessionOwner = new MockSessionOwner();
+
+
+ pkeynode = pkey.getRoot();
+ for(PolytomousKeyNode node : pkeynode.getChildren()) {
+ Assert.assertNotNull(node.getQuestion());
+ Map<Language, LanguageString> label = node.getQuestion().getLabel();
+ Assert.assertEquals(newQuestion, label.get(english).getText());
+ Assert.assertNotNull(node.getStatement());
+ Assert.assertEquals(newStatement, node.getStatement().getLabel(english).getText());
+ }
+ //Assert.assertEquals(pkeynode.getFeature().getId(), feature.getId());
+
+ }
+
+ @Test
+ public void savePolytomousKeyNodeDataWithSameSubKey() {
+
+ ICdmEntitySessionEnabled sessionOwner = new MockSessionOwner();
+ cdmEntitySessionManager.bind(sessionOwner);
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ PolytomousKeyNode pkeynode = pkey.getRoot();
+
+ PolytomousKey subkey1 = CdmBase.deproxy(pkeynode.getChildAt(0).getSubkey(), PolytomousKey.class);
+ String subkey1title = subkey1.getTitleCache();
+ subkey1.setTitleCache(subkey1title + "test", true);
+
+
+ PolytomousKey subkey2 = CdmBase.deproxy(pkeynode.getChildAt(1).getChildAt(0).getSubkey(), PolytomousKey.class);
+ String subkey2title = subkey2.getTitleCache();
+ subkey2.setTitleCache(subkey2title + "test", true);
+
+ Assert.assertSame(subkey1, subkey2);
+
+ polytomousKeyService.merge(pkey);
+ }
+
+ @Test
+ public void savePolytomousKeyNodeDataWithSameSubKeyUsingService() {
+
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ PolytomousKeyNode pkeynode = pkey.getRoot();
+
+ PersistentCollection children = (PersistentCollection) pkeynode.getChildren();
+ PolytomousKeyNode childNode0 = (PolytomousKeyNode)commonService.get(children, 0);
+ PolytomousKey subkey1 = CdmBase.deproxy(childNode0.getSubkey(),PolytomousKey.class);
+ String subkey1title = subkey1.getTitleCache();
+ subkey1.setTitleCache(subkey1title + "test", true);
+
+ PolytomousKeyNode childNode1 = (PolytomousKeyNode)commonService.get(children, 1);
+ PolytomousKey subkey2 = CdmBase.deproxy(childNode1.getSubkey(),PolytomousKey.class);
+ String subkey2title = subkey2.getTitleCache();
+ subkey2.setTitleCache(subkey2title + "test", true);
+
+ Assert.assertNotSame(childNode0, childNode1);
+
+ Assert.assertSame(subkey1, subkey2);
+
+ polytomousKeyService.merge(pkey);
+ }
+
+
+ @Test
+ public void savePolytomousKeyNodeDataWithSameLanguageInLabel() {
+ PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+ PolytomousKeyNode pkeynode = pkey.getRoot();
+
+ Map<Language, LanguageString> label1 = pkeynode.getQuestion().getLabel();
+ label1.size();
+
+
+ Map<Language, LanguageString> label2 = pkeynode.getChildAt(0).getStatement().getLabel();
+ label2.size();
+
+
+ polytomousKeyService.merge(pkey);
+ }
+
+ @Test
+ public void deleteSubKeyInPolytomousSubKeyWithoutInitializing() {
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ PolytomousKeyNode rootNode = pKey.getRoot();
+ PolytomousKeyNode child = rootNode.getChildAt(0);
+ PolytomousKey subKey = child.getSubkey();
+
+ polytomousKeyService.delete(subKey);
+
+ // since subKey was not initialized before the delete, an attempt
+ // to initialize it after will lead to an NPE
+ try {
+ PolytomousKeyNode subKeyRootNode = subKey.getRoot();
+ Assert.fail("A NullPointerException indicating null root node should be thrown here");
+ } catch(NullPointerException npe) {
+
+ }
+ // retrieving subkey shows its null
+ subKey = CdmBase.deproxy(polytomousKeyService.find(subKeyUuid),PolytomousKey.class);
+ Assert.assertNull(subKey);
+
+ pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ rootNode = pKey.getRoot();
+ child = rootNode.getChildAt(0);
+ subKey = child.getSubkey();
+ // subkey will not be null, because the delete functionality of the subkey
+ // does not currently delete it from a polytomous key node
+ Assert.assertNotNull(subKey);
+ // after reloading the object graph, accessing subKey should throw a null pointer exception
+ try {
+ PolytomousKeyNode subKeyRootNode = subKey.getRoot();
+ Assert.fail("A NullPointerException indicating null root node should be thrown here");
+ } catch(NullPointerException npe) {
+
+ }
+
+ }
+
+ @Test
+ public void deleteSubKeyInPolytomousNode() {
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ PolytomousKeyNode rootNode = pKey.getRoot();
+ List<PolytomousKeyNode> children = rootNode.getChildren();
+ PolytomousKeyNode child = rootNode.getChildAt(0);
+ polytomousKeyNodeService.delete(child.getUuid(), true);
+
+ pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+ rootNode = pKey.getRoot();
+ children = rootNode.getChildren();
+ Assert.assertFalse(children.contains(child));
+ }
+
+ @Test
+ public void deleteSubKeyInPolytomousSubKeyAfterInitializing() {
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ PolytomousKeyNode rootNode = pKey.getRoot();
+ PolytomousKeyNode child = rootNode.getChildAt(0);
+ PolytomousKey subKey = child.getSubkey();
+ // this call initializes the subkey
+ subKey.getRoot();
+
+ polytomousKeyService.delete(subKey);
+
+ // since subKey was initialized before the delete, it will be
+ // accesible even after the delete. This behaviour is similar
+ // to hibernate session delete where the deleted object is
+ // made transient, but not deleted from the object graph
+
+ PolytomousKeyNode subKeyRootNode = subKey.getRoot();
+ Assert.assertNotNull(subKey);
+
+ }
+
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.operations.BaseOperationTest;
+
+/**
+ * @author cmathew
+ * @date 3 Feb 2015
+ *
+ */
+
+@DataSet
+public class TaxonNameEditorTest extends BaseOperationTest {
+
+ private static final Logger logger = Logger.getLogger(TaxonNameEditorTest.class);
+
+ ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
+ ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+ IClassificationService classificationService = getRemoteApplicationController().getClassificationService();
+
+ Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+
+ @Test
+ public void testAddHomotypicSynonym() throws ExecutionException {
+ UUID taxonNodeUuid = UUID.fromString("ce54c396-3694-47f2-abb0-1d7b7e057985");
+
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ Taxon taxon = taxonNode.getTaxon();
+ HomotypicalGroup group = taxon.getHomotypicGroup();
+ BotanicalName newSynonymName = BotanicalName.NewInstance(null);
+ newSynonymName.setTitleCache("New Synonym", true);
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
+ undoContext, taxon, group, newSynonymName, postOperation);
+
+ operation.execute(monitor, info);
+ taxonNodeService.merge(taxonNode);
+ Assert.assertEquals(taxon.getHomotypicGroup().getTypifiedNames().size(), 2);
+ Assert.assertEquals(taxon.getSynonyms().size(), 1);
+ Iterator<Synonym> synonymItr = taxon.getSynonyms().iterator();
+ Synonym synonym = synonymItr.next();
+ Assert.assertTrue(taxon.getHomotypicGroup().getTypifiedNames().contains(synonym.getName()));
+ }
+
+ @Test
+ public void addHeterotypicSynonym() throws ExecutionException {
+ UUID taxonNodeUuid = UUID.fromString("ce54c396-3694-47f2-abb0-1d7b7e057985");
+
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ Taxon taxon = taxonNode.getTaxon();
+ HomotypicalGroup group = taxon.getHomotypicGroup();
+ BotanicalName newSynonymName = BotanicalName.NewInstance(null);
+ newSynonymName.setTitleCache("New Synonym", true);
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
+ undoContext, taxon, group, newSynonymName, postOperation);
+
+ operation.execute(monitor, info);
+ taxonNodeService.merge(taxonNode);
+
+
+ }
+
+ @Test
+ public void addDeleteAddHomotypicSynonym() throws ExecutionException {
+ UUID taxonNodeUuid = UUID.fromString("ce54c396-3694-47f2-abb0-1d7b7e057985");
+
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ Taxon taxon = taxonNode.getTaxon();
+ HomotypicalGroup group = taxon.getHomotypicGroup();
+ BotanicalName newSynonymName = BotanicalName.NewInstance(null);
+ newSynonymName.setTitleCache("New Synonym", true);
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
+ undoContext, taxon, group, newSynonymName, postOperation);
+
+ operation.execute(monitor, info);
+ taxonNodeService.merge(taxonNode);
+ Assert.assertEquals(taxon.getHomotypicGroup().getTypifiedNames().size(), 2);
+
+ Set<Synonym> synonyms = taxon.getSynonyms();
+ for(Synonym synonym : synonyms) {
+ taxonService.deleteSynonym(synonym.getUuid(), taxon.getUuid(), null);
+ }
+
+ taxonNodeService.merge(taxonNode);
+
+ newSynonymName = BotanicalName.NewInstance(null);
+ newSynonymName.setTitleCache("Another New Synonym", true);
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
+ undoContext, taxon, group, newSynonymName, postOperation);
+
+ operation.execute(monitor, info);
+ taxonNodeService.merge(taxonNode);
+ }
+
+ @Test
+ public void swapSynonymWithAcceptedTaxon() throws ExecutionException {
+ List<TaxonNode> rootEntities = new ArrayList<TaxonNode>();
+ UUID taxonNodeUuid = UUID.fromString("d425a971-1abe-4895-9e1f-1e5c8ff1c84c");
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ rootEntities.add(taxonNode);
+
+ cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
+
+ UUID taxonUuid = UUID.fromString("9763e5f0-6cd4-4d96-b8a4-4420854f7727");
+ Taxon taxon = (Taxon)taxonService.load(taxonUuid);
+ TaxonNameBase taxonName = taxon.getName();
+
+ UUID synonymUuid = UUID.fromString("1eb173bd-b174-4162-8ff5-5136d8f1e746");
+ Synonym synonym = (Synonym)taxonService.load(synonymUuid);
+ TaxonNameBase synonymName = synonym.getName();
+
+ taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid());
+
+ Assert.assertEquals(taxonName, synonym.getName());
+ Assert.assertEquals(synonymName, taxon.getName());
+ }
+
+ @Test
+ public void addTaxon() {
+ NonViralName taxonName = NonViralName.NewInstance(null);
+ Taxon taxon = Taxon.NewInstance(taxonName, null);
+ taxonService.merge(taxon);
+ }
+
+}
+
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.model;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator.ChildHandling;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingChangeAcceptedTaxonToSynonymOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingDeleteTaxonNodeOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveFactualDataOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOperation;
+import eu.etaxonomy.taxeditor.operations.BaseOperationTest;
+
+/**
+ * @author cmathew
+ * @date 9 Mar 2015
+ *
+ */
+@DataSet
+public class TaxonNavigatorTest extends BaseOperationTest {
+
+ private static final Logger logger = Logger.getLogger(TaxonNameEditorTest.class);
+
+ ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
+ ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+ IClassificationService classificationService = getRemoteApplicationController().getClassificationService();
+
+ Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+
+
+ @Test
+ public void testChangeAcceptedTaxonToSynonym() throws ExecutionException {
+
+
+ UUID oldTaxonNodeNodeUuid = UUID.fromString("b85b5b78-6760-409f-ac91-bb89e95ff2a1");
+ UUID newAcceptedTaxonNodeUuid = UUID.fromString("6ad8e9e2-f5f6-41ad-aa30-f62a903650db");
+
+ TaxonNode oldTaxonNode = taxonNodeService.load(oldTaxonNodeNodeUuid);
+ TaxonNameBase name = oldTaxonNode.getTaxon().getName();
+
+
+ TaxonNode newAcceptedTaxonNode = taxonNodeService.load(newAcceptedTaxonNodeUuid);
+ int countTargetSynonyms = newAcceptedTaxonNode.getTaxon().getSynonyms().size();
+ sessionOwner.addExpectedUpdatedObject(oldTaxonNode.getParent());
+ sessionOwner.addExpectedUpdatedObject(newAcceptedTaxonNode);
+
+ operation = new RemotingChangeAcceptedTaxonToSynonymOperation(sessionOwner,
+ false,
+ oldTaxonNode.getUuid(),
+ newAcceptedTaxonNode.getUuid());
+ operation.execute(monitor, info);
+ newAcceptedTaxonNode = taxonNodeService.load(newAcceptedTaxonNodeUuid);
+ oldTaxonNode = taxonNodeService.load(oldTaxonNodeNodeUuid);
+ Assert.assertNull(oldTaxonNode);
+ Assert.assertEquals(countTargetSynonyms + 1,newAcceptedTaxonNode.getTaxon().getSynonyms().size());
+ Assert.assertEquals(name, newAcceptedTaxonNode.getTaxon().getSynonyms().iterator().next().getName());
+
+
+ }
+
+ @Test
+ public void testMoveTaxon() throws ExecutionException {
+
+ UUID taxonNodeToMoveUuid = UUID.fromString("b8439f51-6b96-445a-b401-7a836ba1cf58");
+ UUID newParentTreeNodeUuid = UUID.fromString("2f05d429-632d-4230-b9cb-70299360b470");
+ boolean moveToParentNode = true;
+
+ TaxonNode taxonNodeToMove = taxonNodeService.load(taxonNodeToMoveUuid);
+ TaxonNode oldParent = taxonNodeToMove.getParent();
+ sessionOwner.addExpectedUpdatedObject(oldParent);
+ int childCount = oldParent.getCountChildren();
+ TaxonNode newParentTreeNode = taxonNodeService.load(newParentTreeNodeUuid);
+ sessionOwner.addExpectedUpdatedObject(newParentTreeNode);
+ operation = new RemotingMoveTaxonOperation(sessionOwner,
+ false,
+ taxonNodeToMove.getUuid(),
+ newParentTreeNode.getUuid(),
+ moveToParentNode);
+ operation.execute(monitor, info);
+ Assert.assertEquals(childCount-1, oldParent.getCountChildren());
+ Assert.assertTrue(!oldParent.getChildNodes().contains(taxonNodeToMove));
+ Assert.assertTrue(newParentTreeNode.getChildNodes().contains(taxonNodeToMove));
+ }
+
+ @Test
+ public void testMoveFactualData() throws ExecutionException {
+ UUID sourceTaxonUuid = UUID.fromString("e40854d7-143f-4054-b229-6ed4cedb4bff");
+ UUID targetTaxonUuid = UUID.fromString("b8402dc4-5050-4882-a147-01b71e0e47d6");
+
+ Taxon sourceTaxon = CdmBase.deproxy(taxonService.load(sourceTaxonUuid), Taxon.class);
+ Set<TaxonDescription> sourceDescriptions = new HashSet(sourceTaxon.getDescriptions());
+ sessionOwner.addExpectedUpdatedObject(sourceTaxon);
+
+ Taxon targetTaxon = CdmBase.deproxy(taxonService.load(targetTaxonUuid), Taxon.class);
+ int countTargetDescriptions = targetTaxon.getDescriptions().size();
+ sessionOwner.addExpectedUpdatedObject(targetTaxon);
+
+ operation = new RemotingMoveFactualDataOperation(sessionOwner,
+ false,
+ sourceTaxonUuid,
+ targetTaxonUuid);
+ operation.execute(monitor, info);
+ Assert.assertEquals(0, sourceTaxon.getDescriptions().size());
+ Assert.assertEquals(sourceDescriptions.size() + countTargetDescriptions, targetTaxon.getDescriptions().size());
+ Assert.assertTrue(targetTaxon.getDescriptions().containsAll(sourceDescriptions));
+ }
+
+ @Test
+ public void testDeleteTaxonNodeWithDeleteChildren() throws ExecutionException {
+ UUID taxonNodeUuid = UUID.fromString("2f05d429-632d-4230-b9cb-70299360b470");
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ List<TaxonNode> childNodes = taxonNode.getChildNodes();
+ Assert.assertTrue(taxonNode.getCountChildren() > 0);
+
+ Set<ITaxonTreeNode> nodes = new HashSet<ITaxonTreeNode>();
+ nodes.add(taxonNode);
+
+ TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
+ configNodes.setChildHandling(ChildHandling.DELETE);
+ TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
+ config.setTaxonNodeConfig(configNodes);
+
+ sessionOwner.addExpectedUpdatedObject(taxonNode.getParent());
+
+ operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+ false,
+ nodes,
+ config);
+ operation.execute(monitor, info);
+ TaxonNode reloadedNode = taxonNodeService.load(taxonNode.getUuid());
+ Assert.assertNull(reloadedNode);
+ for(TaxonNode childNode : childNodes) {
+ TaxonNode reloadedChildNode = taxonNodeService.load(childNode.getUuid());
+ Assert.assertNull(reloadedChildNode);
+ }
+ }
+
+ @Ignore // waiting for #5019 to be fixed
+ @Test
+ public void testDeleteTaxonNodes() throws ExecutionException {
+ UUID taxonNode1Uuid = UUID.fromString("99f03b56-67cd-4e01-9ceb-2362d48f9d07");
+ UUID taxonNode2Uuid = UUID.fromString("91698cec-615f-4472-9002-feda1a6acded");
+ UUID taxonNode3Uuid = UUID.fromString("4fe03763-b966-4361-8334-352f6f777588");
+
+ TaxonNode taxonNode1 = taxonNodeService.load(taxonNode1Uuid);
+ TaxonNode taxonNode2 = taxonNodeService.load(taxonNode2Uuid);
+ TaxonNode taxonNode3 = taxonNodeService.load(taxonNode3Uuid);
+
+ Set<ITaxonTreeNode> nodes = new HashSet<ITaxonTreeNode>();
+ nodes.add(taxonNode1);
+ nodes.add(taxonNode2);
+ nodes.add(taxonNode3);
+
+ TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
+
+
+ sessionOwner.addExpectedUpdatedObject(taxonNode1.getParent());
+ sessionOwner.addExpectedUpdatedObject(taxonNode2.getParent());
+ sessionOwner.addExpectedUpdatedObject(taxonNode3.getParent());
+ operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+ false,
+ nodes,
+ config);
+ operation.execute(monitor, info);
+ TaxonNode reloadedNode1 = taxonNodeService.load(taxonNode1.getUuid());
+ TaxonNode reloadedNode2 = taxonNodeService.load(taxonNode2.getUuid());
+ TaxonNode reloadedNode3 = taxonNodeService.load(taxonNode3.getUuid());
+ Assert.assertNull(reloadedNode1);
+ Assert.assertNull(reloadedNode2);
+ Assert.assertNull(reloadedNode3);
+
+ }
+
+ @Test
+ public void testDeleteTaxonNodeWithMovingChildrenToParentNode() throws ExecutionException {
+ UUID taxonNodeUuid = UUID.fromString("2f05d429-632d-4230-b9cb-70299360b470");
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ TaxonNode parentTaxonNode = taxonNode.getParent();
+ List<TaxonNode> childNodes = taxonNode.getChildNodes();
+ Assert.assertTrue(taxonNode.getCountChildren() > 0);
+
+ Set<ITaxonTreeNode> nodes = new HashSet<ITaxonTreeNode>();
+ nodes.add(taxonNode);
+
+ TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
+ configNodes.setChildHandling(ChildHandling.MOVE_TO_PARENT);
+ TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
+ config.setTaxonNodeConfig(configNodes);
+
+ sessionOwner.addExpectedUpdatedObject(taxonNode.getParent());
+ operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+ false,
+ nodes,
+ config);
+ operation.execute(monitor, info);
+ TaxonNode reloadedNode = taxonNodeService.load(taxonNode.getUuid());
+ Assert.assertNull(reloadedNode);
+ List<TaxonNode> parentChildNodes = parentTaxonNode.getChildNodes();
+ Assert.assertTrue(parentChildNodes.containsAll(childNodes));
+ }
+
+ @Test
+ @DataSet("TaxonNavigatorTest.testDeleteClassificationWithDeleteChildren.xml")
+ public void testDeleteClassificationWithDeleteChildren() throws ExecutionException {
+ UUID classificationUuid = UUID.fromString("0c2b5d25-7b15-4401-8b51-dd4be0ee5cab");
+ Classification classification = classificationService.load(classificationUuid);
+ TaxonNode rootNode = classification.getRootNode();
+ Set<ITaxonTreeNode> nodes = new HashSet<ITaxonTreeNode>();
+ nodes.add(classification);
+
+ TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
+ configNodes.setChildHandling(ChildHandling.DELETE);
+ TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
+ config.setTaxonNodeConfig(configNodes);
+
+ operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+ false,
+ nodes,
+ config);
+ operation.execute(monitor, info);
+
+ Classification reloadedClassification = classificationService.load(classification.getUuid());
+ Assert.assertNull(reloadedClassification);
+ TaxonNode reloadedRootNode = taxonNodeService.load(rootNode.getUuid());
+ Assert.assertNull(reloadedRootNode);
+
+ }
+
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.application;
+
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.common.monitor.NullProgressMonitor;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+
+/**
+ * @author cmathew
+ * @date 26 May 2015
+ *
+ */
+public class CdmApplicationRemoteControllerTest extends BaseRemotingTest {
+
+
+ @Test
+ public void initApplicationControllerTest() {
+ CdmRemoteSource crs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+ CDMServer.getInstance().getHost(),
+ CDMServer.getInstance().getPort(),
+ CDMServer.getInstance().getContextPath(),
+ NomenclaturalCode.ICNAFP);
+ // first initialize with validation to make sure the xml is valid
+ CdmApplicationRemoteController.NewInstance(crs,
+ true,
+ new NullProgressMonitor(),
+ null);
+ }
+}
package eu.etaxonomy.taxeditor.application.menu.general;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
\r
/**\r
* Open all "General -> New" menus\r
- * \r
+ *\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class NewMenuTest extends AbstractEditorTest {\r
\r
@Test\r
openNewWizardFor("Taxon");\r
utils.cancel();\r
}\r
- \r
+\r
\r
@Test\r
public void canOpenNewWizardForReference(){\r
openNewWizardFor("Reference");\r
utils.cancel();\r
}\r
- \r
- \r
+\r
+\r
@Test\r
public void canOpenNewWizardForName(){\r
openNewWizardFor("Name");\r
utils.cancel();\r
}\r
- \r
- \r
+\r
+\r
@Test\r
public void canOpenNewWizardForTeam(){\r
openNewWizardFor("Team");\r
utils.cancel();\r
}\r
- \r
- \r
+\r
+\r
@Test\r
public void canOpenNewWizardForPerson(){\r
openNewWizardFor("Person");\r
utils.cancel();\r
}\r
- \r
+\r
@Test\r
public void canOpenNewWizardForSpecimen(){\r
openNewWizardFor("Specimen");\r
utils.cancel();\r
}\r
- \r
- \r
+\r
+\r
@Test\r
public void canOpenNewWizardForClassification(){\r
openNewWizardFor("Classification");\r
--- /dev/null
+/**
+ * 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.File;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.Map;
+import java.util.Properties;
+
+import net.sf.ehcache.CacheManager;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.osgi.framework.Bundle;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.context.SecurityContextImpl;
+import org.unitils.UnitilsJUnit4;
+import org.unitils.database.DatabaseUnitils;
+import org.unitils.database.annotations.Transactional;
+import org.unitils.database.util.TransactionMode;
+import org.unitils.spring.annotation.SpringApplicationContext;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmDataChangeService;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.session.CdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+
+
+/**
+ * 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)
+@SpringApplicationContext("file:./target/classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml")
+public abstract class BaseRemotingTest extends UnitilsJUnit4 {
+ private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+
+
+ public static final Resource SERVER_PROPERTIES_FILE =
+ new ClassPathResource("server.properties");
+
+ public static final Resource EDITOR_DATASOURCES_FILE =
+ new ClassPathResource(".cdmLibrary/writableResources/cdm.datasources.xml");
+
+ //private static CdmApplicationRemoteController remoteApplicationController;
+ private static ICdmRemoteSource cdmRemoteSource;
+ private static CdmPersistentRemoteSource remotePersistentSource;
+
+ public static boolean useManagedServer = true;
+
+
+ protected static ICdmEntitySessionManager cdmEntitySessionManager;
+
+ private final static String DEFAULT_USER = "admin";
+ private final static String DEFAULT_PASSWORD = "00000";
+
+ private static String userHomeKey = "user.home";
+
+ private static String user = DEFAULT_USER;
+ private static String password = DEFAULT_PASSWORD;
+
+ @BeforeClass
+ public static void initializeBaseRemotingTest() {
+
+ //NOTE: Run this the cdmTest H2 DB whenever it needs to be
+ // recreated e.g. after a model change
+ DatabaseUnitils.disableConstraints();
+
+ try {
+ String userHomeDirPath;
+ Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.test");
+ // if bundle is null then we are running as junit test in eclipse
+ if(bundle == null) {
+ userHomeDirPath = EDITOR_DATASOURCES_FILE.getFile().getParentFile().getParentFile().getParent();
+ } else {
+ // ... else we are running in maven which requires loading the dir via the
+ // classpath bundle
+ URL userHomeDirURL = bundle.getEntry("src/test/resources");
+ File userHomeDir = new File(FileLocator.resolve(userHomeDirURL).toURI());
+ userHomeDirPath = userHomeDir.getAbsolutePath();
+ }
+
+
+ logger.info("Setting user.home to " + userHomeDirPath);
+ System.setProperty(userHomeKey, userHomeDirPath);
+
+ CDMServer cdmServer = CDMServer.getInstance();
+
+
+ Properties prop = new Properties();
+ InputStream inputStream = SERVER_PROPERTIES_FILE.getInputStream();
+
+ if (inputStream != null) {
+ prop.load(inputStream);
+ inputStream.close();
+ }
+
+ if(prop.getProperty("httpPort") != null) {
+ cdmServer.setHttpPort(Integer.valueOf(prop.getProperty("httpPort")));
+ }
+
+ if(prop.getProperty("stopPort") != null) {
+ cdmServer.setStopPort(Integer.valueOf(prop.getProperty("stopPort")));
+ }
+
+ if(prop.getProperty("stopKey") != null) {
+ cdmServer.setStopKey(prop.getProperty("stopKey"));
+ }
+
+ if(prop.getProperty("user") != null) {
+ user = prop.getProperty("user");
+ }
+
+ if(prop.getProperty("password") != null) {
+ password = prop.getProperty("password");
+ }
+
+ cdmServer.start();
+ initializeController(CDMServer.getInstance().getName(),
+ CDMServer.getInstance().getHost(),
+ CDMServer.getInstance().getPort(),
+ CDMServer.getInstance().getContextPath(),
+ NomenclaturalCode.ICNAFP,
+ user,
+ password);
+ } catch (Exception e) {
+ e.printStackTrace();
+ // Assert.fail("Server failed to start. Reason : " + e.getMessage());
+ }
+
+ logger.info("Emptying all caches (except model cache) ");
+ //emptyAllCachesExceptModelCache();
+ }
+
+ public static void emptyAllCachesExceptModelCache() {
+ CacheManager cm = CacheManager.create();
+ String[] cacheNames = CacheManager.create().getCacheNames();
+ for(String cacheName : cacheNames) {
+ if(!cacheName.equals(CdmRemoteCacheManager.CDM_MODEL_CACHE_NAME)) {
+ cm.removeCache(cacheName);
+ }
+ }
+ }
+
+
+ public static void initializeController(String sourceName, String host, int port, String contextPath, NomenclaturalCode ncode, String username, String password) {
+
+ if(CdmApplicationState.getCurrentAppConfig() != null) {
+ return;
+ }
+ cdmRemoteSource = CdmRemoteSource.NewInstance(sourceName, host, port, contextPath, ncode);
+ CdmApplicationRemoteController remoteApplicationController =
+ CdmApplicationRemoteController.NewInstance(cdmRemoteSource,
+ null,
+ null);
+ CdmApplicationState.setCurrentAppConfig(remoteApplicationController);
+ try {
+ remotePersistentSource = CdmPersistentRemoteSource.NewInstance(sourceName);
+ } catch (CdmRemoteSourceException e) {
+ Assert.fail("Default Remote Persistent Source failed to load. Reason : " + e.getMessage());
+ }
+ cdmEntitySessionManager = getRemoteApplicationController().getCdmEntitySessionManager();
+
+ CdmApplicationState.setCurrentDataChangeService(new CdmDataChangeService());
+
+ //FIXME:Remoting the authentication code should be replaced by a method call which actually
+ // does the authentication in the editor code so that the 'real' authentication can be tested
+ SecurityContextHolder.clearContext();
+ SecurityContextImpl sc = new SecurityContextImpl();
+ Authentication token = new UsernamePasswordAuthenticationToken(username,password);
+ Authentication authentication = getRemoteApplicationController().getAuthenticationManager().authenticate(token);
+ authentication = new UsernamePasswordAuthenticationToken(username,password, authentication.getAuthorities());
+ sc.setAuthentication(authentication);
+
+ SecurityContextHolder.setContext(sc);
+ }
+
+
+
+ protected static CdmApplicationRemoteController getRemoteApplicationController() {
+ return (CdmApplicationRemoteController) CdmApplicationState.getCurrentAppConfig();
+ }
+
+ protected static ICdmRemoteSource getCdmRemoteSource() {
+ return cdmRemoteSource;
+ }
+
+ protected static CdmPersistentRemoteSource getCdmPersistentRemoteSource() {
+ return remotePersistentSource;
+ }
+
+ protected static ICdmEntitySessionManager getCdmEntitySessionManager() {
+ return cdmEntitySessionManager;
+ }
+
+
+ protected static CdmEntitySession getSession(ICdmEntitySessionEnabled sessionOwner) {
+ Map<ICdmEntitySessionEnabled, CdmEntitySession> ownerSessionMap =
+ (Map<ICdmEntitySessionEnabled, CdmEntitySession>) getFieldValueViaReflection(cdmEntitySessionManager, "ownerSessionMap");
+ return ownerSessionMap.get(sessionOwner);
+ }
+
+ protected static CdmEntitySession getActiveSession() {
+ return (CdmEntitySession) getFieldValueViaReflection(cdmEntitySessionManager, "activeSession");
+ }
+
+ protected static CdmTransientEntityCacher getCacher(ICdmEntitySessionEnabled sessionOwner) {
+ return (CdmTransientEntityCacher) getFieldValueViaReflection(getSession(sessionOwner), "cdmTransientEntityCacher");
+ }
+
+ @AfterClass
+ public static void cleanup() {
+ try {
+ CDMServer.getInstance().stop();
+ } catch (Exception e) {
+ Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+ }
+ }
+
+
+ protected static Object getFieldValueViaReflection(Object object, String fieldName) {
+ Class<?> clazz = object.getClass();
+ try {
+ Field field = clazz.getDeclaredField(fieldName);
+ field.setAccessible(true);
+ return field.get(object);
+ } catch (NoSuchFieldException e) {
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+
+
+}
--- /dev/null
+// $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.management.InstanceNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanServerConnection;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.unitils.database.annotations.TestDataSource;
+
+import eu.etaxonomy.taxeditor.remoting.server.CDMServerException;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceBase;
+
+/**
+ *
+ * (Singleton) Server instance which manages a compatible cdmlib-webapp-war.
+ * This is done by launching a jetty instance (using jetty-runner) as an
+ * executed process. The choice of the external process over a more
+ * preferable 'embedded jetty' instance is due to problems arising from the
+ * class loading of classes (e.g. from hibernate core) which are needed
+ * for both the webapp as well as the remoting client.
+ *
+ * @author cmathew
+ * @date 23 Sep 2014
+ *
+ */
+
+public class CDMServer {
+
+ public static final Logger logger = Logger.getLogger(CDMServer.class);
+
+ @TestDataSource
+ protected DataSource dataSource;
+
+ private final String name = "default";
+ private final String host = "127.0.0.1";
+ private int httpPort = 9090;
+ private int stopPort = 9191;
+ private String stopKey = "jetty-cdm-server";
+ private final String contextPath = "";
+
+ public static final Resource DEFAULT_CDM_WEBAPP_RESOURCE =
+ new ClassPathResource("/etc/jetty/cdmlib-remote-webapp.war");
+
+ 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 boolean serverAlreadyRunning = false;
+
+ private void CDMServer() {}
+
+ 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 httpPort;
+ }
+
+ public String getContextPath() {
+ return contextPath;
+ }
+
+ public void setHttpPort(int port) {
+ this.httpPort = port;
+ }
+
+ public void setStopPort(int stopPort) {
+ this.stopPort = stopPort;
+ }
+
+ public void setStopKey(String stopKey) {
+ this.stopKey = stopKey;
+ }
+
+
+ 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() throws IOException {
+ StringBuilder sb = new StringBuilder();
+ sb.append(" --port " + httpPort);
+ 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 {
+
+ /**
+ * First check if the CDM server responds to a service request, which implies that
+ * the server has started properly. If no response is received then check if the
+ * server is listening on specific host / port, which implies that the server
+ * has started but incorrectly, in which case we try to force stop it (if we can)
+ * and start a new server.
+ */
+ if(isStarted(1)) {
+ logger.info("[CDM-Server] Server already running @ " + host + ":" + httpPort );
+ serverAlreadyRunning = true;
+ 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] Starting server with Command : " + command);
+ p = Runtime.getRuntime().exec(command);
+
+ BufferedReader inpReader =
+ new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+ BufferedReader errReader =
+ new BufferedReader(new InputStreamReader(p.getErrorStream()));
+
+ String line = "";
+ while ((line = inpReader.readLine())!= null) {
+ logger.info("[CDM-Server Start] : " + line);
+ }
+
+ while ((line = errReader.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(isStarted(50)) {
+ logger.info("[CDM-Server] Server running @ " + host + ":" + httpPort );
+ } else {
+ logger.info("[CDM-Server] Server not started within given interval");
+ // making sure to kill server if it is not started correctly
+ try {
+ stop(true);
+ } catch (Exception e) {
+ throw new CDMServerException("CDM Server could not be stopped : " + e.getMessage());
+ }
+ throw new CDMServerException("CDM Server not started : ");
+ }
+
+ }
+
+
+ public boolean isStarted(int checkingIntervals) throws CDMServerException {
+ CdmRemoteSourceBase crsb = new CdmRemoteSourceBase("local-cdm-server",
+ host,
+ httpPort,
+ contextPath,
+ null);
+ int intervalsCount = 0;
+ do {
+ try {
+ if(cdmse != null) {
+ return false;
+ }
+ boolean check = crsb.checkConnection();
+ if(check) {
+ logger.info("[CDM-Server] Running @ " + host + ":" + httpPort );
+ return true;
+ }
+ } catch (Exception e) {
+
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException ie) {
+ throw new CDMServerException("Error checking CDM Server status", ie);
+ }
+ intervalsCount++;
+ } while (intervalsCount < checkingIntervals);
+ return false;
+ }
+
+ public void stop() throws Exception {
+ stop(false);
+ }
+
+ public void stop(boolean force) throws Exception {
+
+ if(!force) {
+ if(!getInstance().isStarted(1)) {
+ logger.info("[CDM-Server] Server already stopped @ " + host + ":" + httpPort );
+ return;
+ }
+ }
+
+ if(serverAlreadyRunning) {
+ 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);
+
+ BufferedReader inpReader =
+ new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+ BufferedReader errReader =
+ new BufferedReader(new InputStreamReader(p.getErrorStream()));
+
+ String line = "";
+ while ((line = inpReader.readLine())!= null) {
+ logger.info("[CDM-Server Stop] : " + line);
+ }
+
+ while ((line = errReader.readLine())!= null) {
+ logger.info("[CDM-Server Stop] : " + line);
+ }
+ logger.info("CDM-Server Stopped : ");
+ } catch (Exception e) {
+ logger.info("[CDM-Server] Could not stop @ " + host + ":" + httpPort + ". Please kill it manually");
+
+ }
+
+ }
+ };
+
+ t.setDaemon(true);
+ t.start();
+
+ }
+
+ public static void stopServerViaJMX(int jmxPort) throws CDMServerException {
+ String JMX_URL = "service:jmx:rmi:///jndi/rmi://localhost:" + jmxPort + "/jmxrmi";
+ logger.warn("Shutting down Jetty instance ... ");
+
+ try {
+ JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(JMX_URL), null);
+ connector.connect(null);
+ MBeanServerConnection connection = connector.getMBeanServerConnection();
+ ObjectName objectName = new ObjectName("org.eclipse.jetty.server:type=server,id=0");
+ connection.invoke(objectName, "stop", null, null);
+ logger.warn("Shutdown command sent");
+ } catch (InstanceNotFoundException e) {
+ throw new CDMServerException(e);
+ } catch (MBeanException e) {
+ throw new CDMServerException(e);
+ } catch (ReflectionException e) {
+ throw new CDMServerException(e);
+ } catch (IOException e) {
+ throw new CDMServerException(e);
+ } catch (MalformedObjectNameException e) {
+ throw new CDMServerException(e);
+ }
+
+
+
+ }
+}
--- /dev/null
+/**
+ * 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.util.Map;
+
+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.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.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() {
+ }
+
+ @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());
+ }
+ }
+
+
+
+}
--- /dev/null
+/**
+* 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.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.remoting.RemoteAccessException;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.lazyloading.RemotePersistentCollectionTest;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+
+public class CdmRemoteSourceTest extends BaseRemotingTest {
+ private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
+
+
+ @Test
+ public void whenConnectingToInactiveServerThenFailToConnect() {
+ // check if non-active server throws the right exception
+ 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(CDMServer.getInstance().getName(),
+ CDMServer.getInstance().getHost(),
+ CDMServer.getInstance().getPort(),
+ CDMServer.getInstance().getContextPath(),
+ NomenclaturalCode.ICNAFP);
+ String dbSchemaVersion = "";
+ try {
+ dbSchemaVersion = activeCrs.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 = activeCrs.isDbEmpty();
+ } catch (CdmSourceException e) {
+ Assert.fail("isDbEmpty() on active cdm server should not have thrown CdmSourceException");
+ }
+ Assert.assertFalse(isDbEmpty);
+
+
+ boolean check = true;
+ try {
+ isDbEmpty = activeCrs.checkConnection();
+ } catch (CdmSourceException e) {
+ Assert.fail("checkConnection() on active cdm server should not have thrown CdmSourceException");
+ }
+ Assert.assertTrue(check);
+
+ }
+
+}
--- /dev/null
+// $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.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+import org.unitils.UnitilsJUnit4;
+
+import eu.etaxonomy.taxeditor.remoting.server.CDMServerException;
+
+/**
+ * @author cmathew
+ * @date 6 Oct 2014
+ *
+ */
+public class CdmServerTest extends UnitilsJUnit4 {
+ private static final Logger logger = Logger.getLogger(CdmServerTest.class);
+
+
+ @Test
+ public void startCdmServer() throws CDMServerException {
+ CDMServer.getInstance().start();
+ }
+
+ @Test
+ public void stopCdmServer() {
+ try {
+ CDMServer.getInstance().stop(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+ }
+ }
+
+}
--- /dev/null
+/**
+ * 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.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+
+/**
+ * Class to test the HttpInvoker services exposed by the CDM Sever
+ *
+ */
+public class HttpInvokerServicesTest extends BaseRemotingTest {
+ private static final Logger logger = Logger.getLogger(HttpInvokerServicesTest.class);
+
+
+ @Test
+ public void whenCallingMethodsOnRemoteServicesThenSucceed() {
+ try {
+
+ //getRemoteApplicationController().getDatabaseService();
+ 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");
+ }
+
+ getRemoteApplicationController().getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.junit.After;
+import org.junit.Before;
+
+import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.MockSessionOwner;
+
+/**
+ * @author cmathew
+ * @date 12 Jun 2015
+ *
+ */
+public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
+
+ protected CdmTransientEntityCacher cacher;
+ protected MockSessionOwner sessionOwner;
+ protected ICdmEntitySession cdmEntitySession;
+
+ @Before
+ public void initializeSession() {
+ sessionOwner = new MockSessionOwner();
+ cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
+ sessionOwner.setCdmEntitySession(cdmEntitySession);
+ cacher = getCacher(sessionOwner);
+ }
+
+ @After
+ public void postSessionAwareTest() {
+ sessionOwner.dispose();
+ }
+}
--- /dev/null
+/**
+ * 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.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}
+ *
+ */
+// FIXME:Remoting need to create a proper dataset for this test
+// Could be combined with RemotePersistentCollectionTest
+@Ignore
+@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() {
+
+ 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.assertTrue("Title caches should not be equal",oldTitleCache.equals(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.setCombinationAuthorship(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.assertTrue("Title caches should not be equal",oldTitleCache.equals(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.assertTrue("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache().equals(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);
+
+ }
+ }
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
+
+
+public class CdmServiceCacherTest extends RemotingSessionAwareTest {
+ private static final Logger logger = Logger.getLogger(CdmServiceCacherTest.class);
+
+
+ private static CdmServiceCacher cdmServiceCacher = (CdmServiceCacher)getRemoteApplicationController().getBean("cdmServiceCacher");
+
+ @Test
+ public void testLanguageCache() {
+ Language defaultLanguage = Language.getDefaultLanguage();
+
+ Language defaultLanguageInCache = (Language)cdmServiceCacher.getFromCache(defaultLanguage.getUuid());
+ 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);
+
+ }
+
+}
--- /dev/null
+/**
+ * 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.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.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
+ *
+ */
+//FIXME:Remoting need to create a proper dataset for this test
+//Could be combined with AbstractLazyInitializerTest
+@Ignore
+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() {
+ 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.assertTrue("Title caches should not be equal",oldTitleCache.equals(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.setCombinationAuthorship(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.getCombinationAuthorship(),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.setCombinationAuthorship(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.assertTrue("Title caches should not be equal",oldTitleCache.equals(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.assertTrue("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache().equals(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);
+
+ }
+ }
+}
--- /dev/null
+/**
+* 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.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.hibernate.collection.spi.PersistentCollection;
+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.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.TaxonDescription;
+import eu.etaxonomy.cdm.model.description.TextData;
+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 collections.
+ *
+ * @author c.mathew
+ * @created 13.03.2014
+ */
+//FIXME:Remoting need to create a proper dataset for this test
+//Could be combined with AbstractLazyInitializerTest
+@Ignore
+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() {
+ classificationService = getRemoteApplicationController().getClassificationService();
+ commonService = getRemoteApplicationController().getCommonService();
+ }
+
+ /**
+ * Test method which checks remoting for persistent lists.
+ *
+ */
+ @Test
+ public void persistentListTest() {
+
+ 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());
+
+ 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();
+ // 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 = commonService.size((PersistentCollection)childNodes);
+ Assert.assertEquals(childCount, remoteChildCount);
+
+ String firstNodeTaxonTitle = taxonNode.getTaxon().getTitleCache();
+ 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)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
+ Assert.assertTrue(taxonNode.getChildNodes().contains(localTaxonNode));
+ Assert.assertTrue(taxonNode.getChildNodes().contains(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(commonService.contains((PersistentCollection)taxa, localTaxon));
+// }
+// }
+// }
+// }
+
+ @Test
+ public void persistentMapTest() {
+ List<TaxonNode> taxonNodes = classificationService.getAllNodes();
+ // calling iterator will initialise the collection
+ Iterator<TaxonNode> taxonNodesItr = taxonNodes.iterator();
+ while(taxonNodesItr.hasNext()) {
+ TaxonNode taxonNode = taxonNodesItr.next();
+ Taxon taxon = taxonNode.getTaxon();
+
+ if(taxon != null) {
+ Set<TaxonDescription> descriptions = taxon.getDescriptions();
+ Iterator<TaxonDescription> descriptionsItr = descriptions.iterator();
+ while(descriptionsItr.hasNext()) {
+ TaxonDescription desc = descriptionsItr.next();
+ if(desc != null) {
+ 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);
+ //Assert.assertTrue(init);
+
+ if(!multilanguagetextMap.isEmpty()) {
+ // found a map whcih we can test!
+ logger.info("Found Non-empty 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();
+ // testing 'containsKey' on locally initialised collection
+ boolean localContainsKey = multilanguagetextMap.containsKey(key);
+ Assert.assertTrue(localContainsKey);
+ // testing 'containsKey' on remotely initialised collection
+ 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 =
+ commonService.containsValue((PersistentCollection)multilanguagetextMap, value);
+ Assert.assertTrue(remoteContainsValue);
+
+ }
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.taxeditor.navigation.navigator.contextmenu;\r
\r
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;\r
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;\r
import org.junit.Before;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class ClassificationTest extends AbstractEditorTest {\r
\r
private SWTBotView navigatorView;\r
private SWTBotTree tree;\r
\r
- @Before\r
+ @Override\r
+ @Before\r
public void setup() {\r
super.setup();\r
navigatorView = utils.view("Taxon Navigator");\r
tree = utils.tree(navigatorView.getWidget());\r
}\r
- \r
+\r
@Test\r
public void canDeleteClassification() throws Exception {\r
tree.select(0);\r
bot.waitUntil(Conditions.shellIsActive("Confirm Deletion"));\r
utils.ok();\r
}\r
- \r
+\r
@Test\r
public void canCreateClassification() throws Exception {\r
tree.setFocus();\r
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.taxeditor.newWizard;\r
\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class NewTaxonWizardTest extends AbstractEditorTest {\r
\r
@Override\r
bot.menu("General").menu("New").menu("Taxon").click();\r
bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
}\r
- \r
+\r
@Test\r
public void unalteredDialogCanNotBefinished() {\r
boolean finishIsEnabled = bot.button("Finish").isEnabled();\r
Assert.assertEquals(false, finishIsEnabled);\r
utils.cancel();\r
}\r
- \r
+\r
@Test\r
public void canCreateNewTaxonMinimal(){\r
utils.openFilteredSelection(0, "Choose a Classification");\r
bot.textWithLabel("New Taxon").setText(newTaxonName);\r
bot.waitUntil(Conditions.widgetIsEnabled(bot.button("Finish")));\r
utils.finish();\r
- \r
+\r
// bot.waitUntil(Conditions.waitForEditor(WithPartId.withPartId(MultiPageTaxonEditor.ID)));\r
// Assert.assertEquals(newTaxonName, bot.activeEditor().getTitle());\r
}\r
- \r
- \r
\r
- \r
+\r
+\r
+\r
}\r
--- /dev/null
+// $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.operations;
+
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.test.MockConversationEnabled;
+
+/**
+ * @author n.hoffmann
+ * @created 15.04.2009
+ * @version 1.0
+ */
+public abstract class BaseOperationTest extends RemotingSessionAwareTest {
+
+ public static final IUndoContext undoContext = null;
+
+ public static final IProgressMonitor monitor = new NullProgressMonitor();
+ public static final IAdaptable info = null;
+ public static final IPostOperationEnabled postOperation = null;
+ public static final IConversationEnabled conversationEnabled = new MockConversationEnabled();
+ public static final ICdmEntitySessionEnabled cdmEntitySessionEnabled = null;
+
+ protected static AbstractOperation operation;
+
+
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+public interface ITestService {
+
+ public String test(String arg);
+ public String test(Object arg);
+ public String notest();
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
+
+public class ServiceInterceptorTest extends RemotingSessionAwareTest {
+
+ private static final Logger logger = Logger.getLogger(ServiceInterceptorTest.class);
+ private final ITermService termService = getRemoteApplicationController().getTermService();
+ private final CdmServiceCacher cdmServiceCacher = (CdmServiceCacher)getRemoteApplicationController().getBean("cdmServiceCacher");
+
+
+ @Test
+ public void termServiceInterceptorTest() {
+ List<DefinedTermBase<?>> terms = termService.listByTermType(TermType.Language, null, null, null, null);
+ int cacheLanguageSize = 0;
+ List<UUID> keys = cdmServiceCacher.getDefaultCache().getKeys();
+ for(UUID key : keys) {
+ if(cdmServiceCacher.getFromCache(key).getClass().equals(Language.class)) {
+ cacheLanguageSize++;
+ }
+ }
+ Assert.assertEquals(terms.size(), cacheLanguageSize);
+ // TO DO : get the static termTypeMap from TermServiceRequestExecutor and check the size
+ }
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+
+public class TargetTestService {
+
+ public static String test(String arg) {
+ //String value = testService.test(arg);
+ return "Overridden " + arg;
+ }
+
+ public static String test(Object arg) {
+ //String value = testService.test(arg);
+ return "Overridden " + arg;
+ }
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.service;
+
+public class TestService implements ITestService {
+
+ @Override
+ public String test(String arg) {
+ return "String : " + arg;
+ }
+
+ @Override
+ public String test(Object arg) {
+ return "Object : " + arg.toString();
+ }
+
+ @Override
+ public String notest() {
+ return "No Test";
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
+
+//FIXME:Remoting fix data issue : User#30
+//@Ignore
+@DataSet
+public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
+
+ private static final Logger logger = Logger.getLogger(CdmEntitySessionManagerTest.class);
+
+
+ IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+
+ private final UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+ private final Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+
+ @BeforeClass
+ public static void initializeCdmEntitySessionManagerTest() {
+ }
+
+
+ @Test
+ public void manageNullSessionTest() {
+
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+ cdmEntitySessionManager.bind(null);
+ Assert.assertSame(pKey, pKey);
+ Assert.assertNull(getActiveSession());
+ }
+
+ @Test
+ public void manageSessionWithObjectTest() {
+ PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+ Assert.assertNotNull(getActiveSession());
+ List<CdmBase> rootEntities = getActiveSession().getRootEntities();
+
+ // FIXME:Remoting fix test of setting root entities
+ //Assert.assertEquals(rootEntities.size(),1);
+ //Assert.assertSame(rootEntities.get(0), pKey);
+
+ String upTitleCache = "Updated Title Cache";
+ String upStatement = "Updated Statement";
+ pKey.setTitleCache(upTitleCache, true);
+
+ pKey.getRoot().getChildAt(0).getStatement().getLabel(english).setText(upStatement);
+ polytomousKeyService.merge(pKey);
+
+ pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+
+
+ Assert.assertEquals(pKey.getTitleCache(), upTitleCache);
+ Assert.assertEquals(pKey.getRoot().getChildAt(0).getStatement().getLabel(english).getText(), upStatement);
+ }
+
+ @Test
+ public void manageSessionWithListTest() {
+ List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
+ Assert.assertNotNull(getActiveSession());
+ List<CdmBase> rootEntities = getActiveSession().getRootEntities();
+
+ // FIXME:Remoting fix test of setting root entities
+ //Assert.assertEquals(rootEntities.size(),2);
+ //Assert.assertSame(rootEntities.get(0),pKeys.get(0));
+ //Assert.assertEquals(rootEntities.get(0).getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
+ //Assert.assertSame(rootEntities.get(1),pKeys.get(1));
+ //Assert.assertEquals(rootEntities.get(1).getUuid(),UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));
+
+ String upTitleCache = "Updated Title Cache";
+ String upStatement = "Updated Statement";
+ pKeys.get(0).setTitleCache(upTitleCache, true);
+ polytomousKeyService.merge(pKeys.get(0));
+ pKeys.get(1).getRoot().getChildAt(0).getStatement().getLabel(english).setText(upStatement);
+ polytomousKeyService.merge(pKeys.get(1));
+
+
+ pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
+
+ Assert.assertEquals(pKeys.get(0).getTitleCache(), upTitleCache);
+ Assert.assertEquals(pKeys.get(1).getRoot().getChildAt(0).getStatement().getLabel(english).getText(), upStatement);
+
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.junit.Assert;
+
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+public class MockSessionOwner<T extends CdmBase> implements ICdmEntitySessionEnabled {
+
+ private final List<T> rootEntities;
+ private Set<T> updatedObjects;
+ private ICdmEntitySession session;
+
+ public MockSessionOwner() {
+ this.rootEntities = null;
+ this.updatedObjects = new HashSet<T>();
+ }
+
+// public MockSessionOwner(Set<T> updatedObjects) {
+// this.rootEntities = null;
+// this.updatedObjects = updatedObjects;
+// }
+//
+// public MockSessionOwner(List<T> rootEntities) {
+// this.rootEntities = rootEntities;
+// }
+
+ public void setUpdatedObjects(Set<T> updatedObjects) {
+ this.updatedObjects = updatedObjects;
+ }
+
+ public void addExpectedUpdatedObject(T updatedObject) {
+ this.updatedObjects.add(updatedObject);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+ */
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return session;
+ }
+
+ public void setCdmEntitySession(ICdmEntitySession session) {
+ this.session = session;;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<T> getRootEntities() {
+ return rootEntities;
+ }
+
+ public void dispose() {
+ if(session != null) {
+ session.dispose();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
+ */
+ @Override
+ public void onChange(CdmChangeEvent event) {
+
+ if(updatedObjects != null && !updatedObjects.isEmpty()) {
+ for(CdmBase cb : updatedObjects) {
+ Assert.assertTrue(event.getChangedObjects().contains(cb));
+ }
+ }
+
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.test;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+
+/**
+ * @author cmathew
+ * @date 15 Jun 2015
+ *
+ */
+public class MockConversationEnabled implements IConversationEnabled {
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
+ */
+ @Override
+ public void update(CdmDataChangeMap arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
+ */
+ @Override
+ public ConversationHolder getConversationHolder() {
+ return new ConversationHolderMock();
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.ui.dialogs;
+
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.UnitilsJUnit4;
+
+import eu.etaxonomy.taxeditor.remoting.server.CDMServerException;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo.CdmInstanceInfo;
+
+/**
+ * @author cmathew
+ * @date 26 Jan 2015
+ *
+ */
+
+public class CdmServerInfoTest extends UnitilsJUnit4 {
+
+ @Test
+ public void pingServersTest() {
+ List<CdmServerInfo> servers = CdmServerInfo.getCdmServers();
+ for(CdmServerInfo server : servers) {
+ server.pingServer();
+ }
+ }
+
+ // FIXME:Remoting this is an integration test and should be run against a
+ // cdmserver
+ @Ignore
+ @Test
+ public void pingInstancesTest() {
+ CdmServerInfo csii = new CdmServerInfo("localhost", "localhost", 8080);
+ try {
+ csii.refreshInstances();
+ List<CdmInstanceInfo> instances = csii.getInstances();
+ for(CdmInstanceInfo instance : instances) {
+ Assert.assertTrue(csii.pingInstance(instance));
+ }
+ } catch (CDMServerException e) {
+ Assert.fail("Execption should not be thrown here");
+ }
+ }
+
+ @Test
+ public void refreshWrongInstancesTest() {
+ CdmServerInfo wrongCsii = new CdmServerInfo("local", "local", 8080);
+ try {
+ wrongCsii.refreshInstances();
+ List<CdmInstanceInfo> instances = wrongCsii.getInstances();
+ Assert.fail("Execption should be thrown here");
+ } catch (CDMServerException e) {
+
+ }
+ }
+}
package eu.etaxonomy.taxeditor.ui.dialogs;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
\r
-\r
+@Ignore\r
public class LoginDialogTest extends AbstractEditorTest{\r
- \r
+\r
@Test\r
public void canLoginAsAdmin() throws Exception {\r
bot.menu("General").menu("Login").click();\r
bot.textWithLabel("Password").setText("00000");\r
utils.ok();\r
}\r
- \r
+\r
@Test\r
public void canCancelLogin() throws Exception {\r
bot.menu("General").menu("Login").click();\r
bot.waitUntil(Conditions.shellIsActive("Login"));\r
utils.cancel();\r
}\r
- \r
+\r
}\r
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
/**\r
- * This test will only test the selection element itself. The test may have to start other \r
- * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * This test will only test the selection element itself. The test may have to start other\r
+ * dialogs open windows before to get at the selection element. Any errors on the way\r
* should be handled by different tests.\r
- * \r
+ *\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class ClassificationSelectionElementTest extends AbstractSelectionElementTest{\r
@Override\r
public void setup() {\r
bot.menu("General").menu("New").menu("Taxon").click();\r
bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
}\r
- \r
+\r
@Test\r
public void canSelectClassification() {\r
utils.openFilteredSelection(0, "Choose a Classification");\r
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
/**\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class NameSelectionElementTest extends AbstractSelectionElementTest {\r
@Override\r
public void setup() {\r
bot.menu("General").menu("New").menu("Taxon").click();\r
bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
}\r
- \r
+\r
@Test\r
public void canSelectName() {\r
utils.openFilteredSelection(3, "Choose a name");\r
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
/**\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class TaxonNodeSelectionElementTest extends AbstractSelectionElementTest {\r
@Override\r
public void setup() {\r
bot.menu("General").menu("New").menu("Taxon").click();\r
bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
}\r
- \r
+\r
@Test\r
public void canSelectTaxon() {\r
utils.openFilteredSelection(1, "Select parent taxon");\r
utils.cancel();\r
}\r
- \r
+\r
}\r
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Ignore;\r
import org.junit.Test;\r
\r
/**\r
- * This test will only test the selection element itself. The test may have to start other \r
- * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * This test will only test the selection element itself. The test may have to start other\r
+ * dialogs open windows before to get at the selection element. Any errors on the way\r
* should be handled by different tests.\r
- * \r
+ *\r
* @author n.hoffmann\r
*\r
*/\r
+@Ignore\r
public class TaxonSelectionElementTest extends AbstractSelectionElementTest {\r
@Override\r
public void setup() {\r
bot.menu("General").menu("New").menu("Taxon").click();\r
bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
}\r
- \r
+\r
@Test\r
public void canSelectTaxon() {\r
utils.openFilteredSelection(2, "Choose a taxon");\r
--- /dev/null
+package eu.etaxonomy.taxeditor.util;
+
+/**
+ * based on from http://code.google.com/p/java-tester/source/browse/trunk/src/main/java/org/jtester/unitils/database/H2DbSupport.java
+ */
+
+
+import java.util.Set;
+
+import org.unitils.core.dbsupport.DbSupport;
+
+public class H2DbSupport extends DbSupport {
+ /**
+ * Creates support for HsqlDb databases.
+ */
+ public H2DbSupport() {
+ super("h2");
+ }
+
+ @Override
+ public Set<String> getColumnNames(String tableName) {
+ return getSQLHandler().getItemsAsStringSet(
+ "select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '" + tableName
+ + "' AND TABLE_SCHEMA = '" + getSchemaName() + "'");
+ }
+
+ @Override
+ public Set<String> getTableNames() {
+ return getSQLHandler().getItemsAsStringSet(
+ "select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE = 'TABLE' AND TABLE_SCHEMA = '"
+ + getSchemaName() + "'");
+ }
+
+ @Override
+ public Set<String> getViewNames() {
+ return getSQLHandler().getItemsAsStringSet(
+ "select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE = 'VIEW' AND TABLE_SCHEMA = '"
+ + getSchemaName() + "'");
+ }
+
+ @Override
+ public Set<String> getSequenceNames() {
+ return getSQLHandler().getItemsAsStringSet(
+ "select SEQUENCE_NAME from INFORMATION_SCHEMA.SEQUENCES where SEQUENCE_SCHEMA = '"
+ + getSchemaName() + "'");
+ }
+
+ @Override
+ public Set<String> getTriggerNames() {
+ return getSQLHandler().getItemsAsStringSet(
+ "select TRIGGER_NAME from INFORMATION_SCHEMA.TRIGGERS where TRIGGER_SCHEMA = '" + getSchemaName()
+ + "'");
+ }
+
+ @Override
+ public long getSequenceValue(String sequenceName) {
+ return getSQLHandler().getItemAsLong(
+ "select CURRENT_VALUE from INFORMATION_SCHEMA.SEQUENCES where SEQUENCE_SCHEMA = '"
+ + getSchemaName() + "' and SEQUENCE_NAME = '" + sequenceName + "'");
+ }
+
+ @Override
+ public boolean supportsSequences() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsTriggers() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsIdentityColumns() {
+ return true;
+ }
+
+ @Override
+ public void incrementSequenceToValue(String sequenceName, long newSequenceValue) {
+ getSQLHandler().executeUpdate(
+ "alter sequence " + qualified(sequenceName) + " restart with " + newSequenceValue);
+ }
+
+ @Override
+ public void incrementIdentityColumnToValue(String tableName, String identityColumnName, long identityValue) {
+ getSQLHandler().executeUpdate(
+ "alter table " + qualified(tableName) + " alter column " + quoted(identityColumnName)
+ + " RESTART WITH " + identityValue);
+ }
+
+ @Override
+ public void disableReferentialConstraints() {
+ Set<String> tableNames = getTableNames();
+ for (String tableName : tableNames) {
+ disableReferentialConstraints(tableName);
+ }
+ }
+
+ @Override
+ public void disableValueConstraints() {
+ Set<String> tableNames = getTableNames();
+ for (String tableName : tableNames) {
+ disableValueConstraints(tableName);
+ }
+ }
+
+ private void disableReferentialConstraints(String tableName) {
+ Set<String> constraintNames = this.getForeignKeyConstraintNames(tableName);
+ for (String constraintName : constraintNames) {
+ this.removeForeignKeyConstraint(tableName, constraintName);
+ }
+ }
+
+ private void disableValueConstraints(String tableName) {
+ Set<String> primaryKeyColumnNames = this.getPrimaryKeyColumnNames(tableName);
+
+ Set<String> notNullColumnNames = this.getNotNullColummnNames(tableName);
+ for (String notNullColumnName : notNullColumnNames) {
+ if (primaryKeyColumnNames.contains(notNullColumnName)) {
+ continue;
+ }
+ this.removeNotNullConstraint(tableName, notNullColumnName);
+ }
+ }
+
+ /**
+ * Gets the names of all identity columns of the given table.
+ * <p/>
+ * todo check, at this moment the PK columns are returned
+ *
+ * @param tableName The table, not null
+ * @return The names of the identity columns of the table with the given name
+ */
+ @Override
+ public Set<String> getIdentityColumnNames(String tableName) {
+ return getPrimaryKeyColumnNames(tableName);
+ }
+
+ private Set<String> getPrimaryKeyColumnNames(String tableName) {
+ return getSQLHandler().getItemsAsStringSet(
+ "select COLUMN_NAME from INFORMATION_SCHEMA.INDEXES where PRIMARY_KEY=TRUE AND TABLE_NAME = '"
+ + tableName + "' AND TABLE_SCHEMA = '" + getSchemaName() + "'");
+ }
+
+ private Set<String> getNotNullColummnNames(String tableName) {
+ return getSQLHandler().getItemsAsStringSet(
+ "select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE = 'NO' AND TABLE_NAME = '"
+ + tableName + "' AND TABLE_SCHEMA = '" + getSchemaName() + "'");
+ }
+
+ private Set<String> getForeignKeyConstraintNames(String tableName) {
+ return getSQLHandler().getItemsAsStringSet(
+ "select CONSTRAINT_NAME from INFORMATION_SCHEMA.CONSTRAINTS "
+ + "where CONSTRAINT_TYPE = 'REFERENTIAL' AND TABLE_NAME = '" + tableName
+ + "' AND CONSTRAINT_SCHEMA = '" + getSchemaName() + "'");
+ }
+
+ private void removeForeignKeyConstraint(String tableName, String constraintName) {
+ getSQLHandler().executeUpdate(
+ "alter table " + qualified(tableName) + " drop constraint " + quoted(constraintName));
+ }
+
+ private void removeNotNullConstraint(String tableName, String columnName) {
+ getSQLHandler().executeUpdate(
+ "alter table " + qualified(tableName) + " alter column " + quoted(columnName) + " set null");
+ }
+}
--- /dev/null
+<?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>
+
--- /dev/null
+<?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:./target/classes/h2/cdmTest;AUTO_SERVER=TRUE"/>
+ </bean>
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+
+ Extraction Model: PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 79
+ AgentBase 1
+ Credit 1
+ Extension 1
+ KeyStatement 10
+ KeyStatement_LanguageString 10
+ LanguageString 19
+ OriginalSourceBase 2
+ PolytomousKey 2
+ PolytomousKeyNode 10
+ PolytomousKeyNode_LanguageString 9
+ PolytomousKey_Credit 1
+ PolytomousKey_Extension 1
+ PolytomousKey_OriginalSourceBase 2
+ PolytomousKey_RightsInfo 1
+ PolytomousKey_Taxon 1
+ RightsInfo 1
+ TaxonBase 6
+
+--><dataset>
+ <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+ <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+ <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+ <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="Modifying Text 1b" language_id="124"/>
+ <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+ <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+ <LanguageString id="14572" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155f" updated="2014-10-09 15:43:03.0" text="Koi Sach Ya Sawal" createdby_id="30" updatedby_id="30" language_id="125"/>
+
+ <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. & Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+ <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+ <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+
+ <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760" statement_id="2460"/>
+ <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+ <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+ <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460" subkey_id="1550" parent_id="2750"/>
+ <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+ <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+ <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+ <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+ <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+ <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+ <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+ <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+ <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+ <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+ <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+ <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+ <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2460" label_id="14572" label_mapkey_id="125"/>
+
+ <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30" startNumber="1"/>
+ <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+
+
+</dataset>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+
+ Extraction Model: PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 79
+ AgentBase 1
+ Credit 1
+ Extension 1
+ KeyStatement 10
+ KeyStatement_LanguageString 10
+ LanguageString 19
+ OriginalSourceBase 2
+ PolytomousKey 2
+ PolytomousKeyNode 10
+ PolytomousKeyNode_LanguageString 9
+ PolytomousKey_Credit 1
+ PolytomousKey_Extension 1
+ PolytomousKey_OriginalSourceBase 2
+ PolytomousKey_RightsInfo 1
+ PolytomousKey_Taxon 1
+ RightsInfo 1
+ TaxonBase 6
+
+--><dataset>
+ <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+ <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+ <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+ <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+ <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" language_id="124"/>
+ <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" language_id="124"/>
+ <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" language_id="124"/>
+ <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" language_id="124"/>
+ <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" language_id="124"/>
+ <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." language_id="124"/>
+ <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." language_id="124"/>
+ <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" language_id="124"/>
+ <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+ <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+ <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. & Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+ <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+ <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4809" type_id="2056"/>
+
+
+ <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" key_id="1550" question_id="2760"/>
+ <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
+ <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+ <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" key_id="1550" question_id="2761" statement_id="2460" subkey_id="751" parent_id="2750"/>
+ <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
+ <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+ <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+ <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" key_id="1550" statement_id="2464" parent_id="2753"/>
+ <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+ <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+ <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+ <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+ <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+ <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+ <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+ <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+ <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+
+ <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" startNumber="1"/>
+ <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" root_id="2750" startNumber="1"/>
+
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" sourceType="PTS"/>
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" sourceType="PTS"/>
+
+
+</dataset>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Wed Mar 04 16:11:14 CET 2015 from cmathew@cmbgbm-t530
+
+ Extraction Model: all rows from Classification (extractionmodel/by-example/SbE-Classification-16-11-06-737.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 31
+ Classification 1
+ HomotypicalGroup 2
+ SynonymRelationship 1
+ TaxonBase 5
+ TaxonNameBase 3
+ TaxonNode 19
+
+--><dataset>
+
+
+ <TaxonNode id="347" created="2010-12-21 15:09:45.0" uuid="d425a971-1abe-4895-9e1f-1e5c8ff1c84c" countchildren="0" classification_id="10" taxon_id="387" treeIndex="#t10#4032#49#346#345#347#" sortIndex="1"/>
+ <TaxonNode id="351" created="2010-12-21 15:09:46.0" uuid="ce54c396-3694-47f2-abb0-1d7b7e057985" countchildren="0" classification_id="10" taxon_id="394" treeIndex="#t10#4032#49#346#345#351#" sortIndex="4"/>
+
+ <HomotypicalGroup id="368" created="2010-12-21 15:09:45.0" uuid="d7eaa174-4efd-4d09-a427-dce4ed6513f7" />
+ <HomotypicalGroup id="375" created="2010-12-21 15:09:46.0" uuid="62ed57d6-2c69-4404-bb95-248a1c9bb24c" />
+
+ <TaxonNameBase DTYPE="BotanicalName" id="387" created="2010-12-21 15:09:45.0" uuid="d25985c7-6fb4-4b31-8a94-5d7c5ba6ad16" protectedtitlecache="false" titleCache="Asplenium ceterach L." fullTitleCache="Asplenium ceterach L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium ceterach" protectedauthorshipcache="false" protectednamecache="false" specificepithet="ceterach" trinomhybrid="false" anamorphic="false" homotypicalgroup_id="368" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="388" created="2010-12-21 15:09:45.0" uuid="747021f1-cf5f-4249-a825-228da3368399" protectedtitlecache="true" titleCache="Asplenium cyprium Viane & Van den heede" fullTitleCache="Asplenium cyprium Viane & Van den heede" parsingproblem="16" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" hybridformula="false" monomhybrid="false" namecache="Asplenium cyprium Viane & Van den heede" protectedauthorshipcache="false" protectednamecache="true" trinomhybrid="false" anamorphic="false" />
+ <TaxonNameBase DTYPE="BotanicalName" id="394" created="2010-12-21 15:09:46.0" uuid="08f8f376-c9a4-4ea9-950d-3ac30b7fa689" protectedtitlecache="false" titleCache="Asplenium viride Huds." fullTitleCache="Asplenium viride Huds." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Huds." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium viride" protectedauthorshipcache="false" protectednamecache="false" specificepithet="viride" trinomhybrid="false" anamorphic="false" homotypicalgroup_id="375" rank_id="778" />
+
+ <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus" name_id="10" reference_id="10" />
+
+ <TaxonBase DTYPE="Taxon" id="387" created="2011-03-01 20:11:27.0" uuid="9763e5f0-6cd4-4d96-b8a4-4420854f7727" protectedtitlecache="false" titleCache="Asplenium ceterach L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="387" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Synonym" id="388" created="2010-12-21 15:09:45.0" uuid="1eb173bd-b174-4162-8ff5-5136d8f1e746" protectedtitlecache="false" titleCache="Asplenium cyprium Viane & Van den heede sec. Cyprus" doubtful="false" usenamecache="false" name_id="388" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="394" created="2011-03-01 20:11:27.0" uuid="aff4fa6f-9aa8-463d-ac07-ec8a1925eb57" protectedtitlecache="false" titleCache="Asplenium viride Huds. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="394" sec_id="10" publish="true"/>
+
+ <SynonymRelationship id="50" created="2010-12-21 15:09:45.0" uuid="60d1466f-5823-4a69-a071-1887d0c1e72b" doubtful="false" partial="false" proparte="false" relatedfrom_id="388" relatedto_id="387" />
+
+
+</dataset>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Mon Jun 22 14:57:08 CEST 2015 from cmathew@cmbgbm-t530
+
+ Extraction Model: all rows from Classification (extractionmodel/by-example/SbE-Classification-14-56-50-312.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 6
+ Classification 1
+ TaxonBase 2
+ TaxonNode 3
+
+--><dataset>
+ <TaxonNode id="13" created="2010-12-21 15:09:43.0" uuid="0ac32f24-6d55-44ae-8519-c86c83faa938" countchildren="122" classification_id="10" parent_id="4032" taxon_id="11" treeIndex="#t10#4032#13#" sortIndex="0"/>
+ <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10" classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="1"/>
+ <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="2" classification_id="10" treeIndex="#t10#4032#"/>
+
+ <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus" updatedby_id="10" rootnode_id="4032"/>
+
+ <TaxonBase DTYPE="Taxon" id="11" created="2010-12-21 15:09:43.0" uuid="575347a4-fac0-4af7-8514-a4246b45fd7d" protectedtitlecache="false" titleCache="Spermatophyta sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" publish="true"/>
+
+
+</dataset>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Fri Jun 19 09:13:03 CEST 2015 from cmathew@cmbgbm-t530
+
+ Extraction Model: all rows from Classification (extractionmodel/by-example/SbE-Classification-09-10-20-259.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 67
+ Classification 1
+ DescriptionBase 22
+ TaxonBase 14
+ TaxonNameBase 14
+ TaxonNode 16
+
+--><dataset>
+ <TaxonNode id="46" created="2010-12-21 15:09:43.0" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0" classification_id="10" parent_id="47" taxon_id="48" treeIndex="#t10#4032#49#48#47#46#" sortIndex="0"/>
+ <TaxonNode id="47" created="2010-12-21 15:09:43.0" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1" classification_id="10" parent_id="48" taxon_id="51" treeIndex="#t10#4032#49#48#47#" sortIndex="0"/>
+ <TaxonNode id="48" created="2010-12-21 15:09:43.0" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6" classification_id="10" parent_id="49" treeIndex="#t10#4032#49#48#" sortIndex="0"/>
+ <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10" classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0"/>
+ <TaxonNode id="236" created="2010-12-21 15:09:45.0" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0" classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0"/>
+ <TaxonNode id="237" created="2010-12-21 15:09:45.0" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1" classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1"/>
+ <TaxonNode id="714" created="2010-12-21 15:09:48.0" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0" classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0"/>
+ <TaxonNode id="715" created="2010-12-21 15:09:48.0" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2" classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2"/>
+ <TaxonNode id="716" created="2010-12-21 15:09:48.0" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0" classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1"/>
+ <TaxonNode id="828" created="2010-12-21 15:09:49.0" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0" classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0"/>
+ <TaxonNode id="829" created="2010-12-21 15:09:49.0" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1" classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3"/>
+ <TaxonNode id="1915" created="2010-12-21 15:09:57.0" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0" classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0"/>
+ <TaxonNode id="1916" created="2010-12-21 15:09:57.0" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1" classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4"/>
+ <TaxonNode id="2354" created="2010-12-21 15:10:00.0" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0" classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0"/>
+ <TaxonNode id="2355" created="2010-12-21 15:10:00.0" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1" classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5"/>
+ <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#"/>
+
+ <TaxonNameBase DTYPE="BotanicalName" id="48" created="2010-12-21 15:09:43.0" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="49" created="2010-12-21 15:09:43.0" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="810"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="51" created="2010-12-21 15:09:43.0" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="264" created="2010-12-21 15:09:45.0" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="265" created="2010-12-21 15:09:45.0" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="812" created="2010-12-21 15:09:48.0" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="814" created="2010-12-21 15:09:48.0" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="815" created="2010-12-21 15:09:48.0" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="946" created="2010-12-21 15:09:49.0" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="948" created="2010-12-21 15:09:49.0" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="2203" created="2010-12-21 15:09:57.0" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="2205" created="2010-12-21 15:09:57.0" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="2737" created="2010-12-21 15:10:00.0" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="2738" created="2010-12-21 15:10:00.0" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+
+ <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus" updatedby_id="10" name_id="10" rootnode_id="4032"/>
+
+ <TaxonBase DTYPE="Taxon" id="48" created="2011-03-01 20:11:26.0" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="48" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="49" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="51" created="2010-12-21 15:09:43.0" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="51" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="264" created="2011-03-01 20:11:27.0" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="264" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="265" created="2010-12-21 15:09:45.0" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="265" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="812" created="2011-03-01 20:11:29.0" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="812" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="814" created="2010-12-21 15:09:48.0" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="814" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="815" created="2010-12-21 15:09:48.0" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="815" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="946" created="2011-03-01 20:11:30.0" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="946" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="948" created="2010-12-21 15:09:49.0" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="948" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2203" created="2011-03-01 20:11:36.0" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2203" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2205" created="2010-12-21 15:09:57.0" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2205" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2737" created="2011-03-01 20:11:39.0" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2737" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2738" created="2010-12-21 15:10:00.0" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2738" publish="true"/>
+
+ <DescriptionBase DTYPE="TaxonDescription" id="28" created="2010-12-21 15:09:43.0" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" updated="2011-03-01 19:20:45.0" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="149" created="2010-12-21 15:09:45.0" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" updated="2011-03-01 19:20:46.0" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false" taxon_id="264"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="447" created="2010-12-21 15:09:48.0" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="448" created="2010-12-21 15:09:48.0" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false" taxon_id="815"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="521" created="2010-12-21 15:09:49.0" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false" taxon_id="946"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="1234" created="2010-12-21 15:09:57.0" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" updated="2011-03-01 19:20:53.0" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false" taxon_id="2203"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="1524" created="2010-12-21 15:10:00.0" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" updated="2011-03-01 19:20:55.0" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false" taxon_id="2737"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4567" created="2011-03-01 19:20:45.0" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" updated="2011-03-01 20:11:26.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4627" created="2011-03-01 19:20:46.0" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" updated="2011-03-01 20:11:27.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4798" created="2011-03-01 19:20:48.0" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" updated="2011-03-01 20:11:29.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4840" created="2011-03-01 19:20:48.0" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" updated="2011-03-01 20:11:30.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="5409" created="2011-03-01 19:20:55.0" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" updated="2011-03-01 20:11:39.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="5974" created="2011-03-01 19:20:53.0" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" updated="2011-03-01 20:11:36.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="11766" created="2012-07-30 15:39:44.0" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true" taxon_id="2737"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="12353" created="2012-12-03 12:21:48.0" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="12713" created="2013-02-10 21:43:33.0" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="13728" created="2014-02-28 19:20:29.0" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" updated="2014-02-28 19:20:29.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="13817" created="2014-02-28 19:20:34.0" uuid="7b108193-e689-417a-bcab-adaf6c49d532" updated="2014-02-28 19:20:34.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14043" created="2014-02-28 19:20:58.0" uuid="de29cc97-a160-4783-b996-b929157335d5" updated="2014-02-28 19:20:58.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14101" created="2014-02-28 19:21:07.0" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" updated="2014-02-28 19:21:08.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14658" created="2014-02-28 19:23:51.0" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" updated="2014-02-28 19:23:51.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14864" created="2014-02-28 19:25:21.0" uuid="2d55f445-8e72-43d3-976a-133828e89599" updated="2014-02-28 19:25:21.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737"/>
+
+ <SynonymRelationship/>
+
+ <LanguageString id="10"/>
+</dataset>
--- /dev/null
+<?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"/>
+
+</beans>
--- /dev/null
+<?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" />
+
+ <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>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+
+ Extraction Model: PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 79
+ AgentBase 1
+ Credit 1
+ Extension 1
+ KeyStatement 10
+ KeyStatement_LanguageString 10
+ LanguageString 19
+ OriginalSourceBase 2
+ PolytomousKey 2
+ PolytomousKeyNode 10
+ PolytomousKeyNode_LanguageString 9
+ PolytomousKey_Credit 1
+ PolytomousKey_Extension 1
+ PolytomousKey_OriginalSourceBase 2
+ PolytomousKey_RightsInfo 1
+ PolytomousKey_Taxon 1
+ RightsInfo 1
+ TaxonBase 6
+
+--><dataset>
+ <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+ <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+ <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+ <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+ <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+ <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+ <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+ <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. & Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+ <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+ <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+
+ <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760"/>
+ <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
+ <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+ <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460" subkey_id="751" parent_id="2750"/>
+ <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
+ <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+ <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+ <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+ <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+ <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+ <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+ <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+ <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+ <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+ <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+ <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+ <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+ <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+
+ <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30" startNumber="1"/>
+ <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+
+
+</dataset>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+
+ Extraction Model: PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 79
+ AgentBase 1
+ Credit 1
+ Extension 1
+ KeyStatement 10
+ KeyStatement_LanguageString 10
+ LanguageString 19
+ OriginalSourceBase 2
+ PolytomousKey 2
+ PolytomousKeyNode 10
+ PolytomousKeyNode_LanguageString 9
+ PolytomousKey_Credit 1
+ PolytomousKey_Extension 1
+ PolytomousKey_OriginalSourceBase 2
+ PolytomousKey_RightsInfo 1
+ PolytomousKey_Taxon 1
+ RightsInfo 1
+ TaxonBase 6
+
+--><dataset>
+ <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+ <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+ <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+ <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+ <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+ <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" language_id="124"/>
+ <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" language_id="124"/>
+ <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" language_id="124"/>
+ <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" language_id="124"/>
+ <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" language_id="124"/>
+ <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." language_id="124"/>
+ <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." language_id="124"/>
+ <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" language_id="124"/>
+ <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" language_id="124"/>
+ <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+ <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+ <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. & Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+ <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+ <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4809" type_id="2056"/>
+
+ <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" key_id="1550" question_id="2760"/>
+ <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+ <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+ <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" key_id="1550" question_id="2761" statement_id="2460" subkey_id="1550" parent_id="2750"/>
+ <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+ <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+ <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+ <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" key_id="1550" statement_id="2464" parent_id="2753"/>
+ <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+ <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+ <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+ <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" />
+ <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+ <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+ <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+ <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+ <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+ <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+ <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+ <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+
+ <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" startNumber="1"/>
+ <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" root_id="2750" startNumber="1"/>
+
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" sourceType="PTS"/>
+ <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" sourceType="PTS"/>
+
+
+</dataset>
--- /dev/null
+06-15 17:37:28 jdbc[2]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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 java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmDataSource.testConnection(CdmDataSource.java:33)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:292)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:281)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage$1.widgetSelected(CdmDataSourceCredentialsWizardPage.java:165)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
+ at org.eclipse.jface.window.Window.open(Window.java:801)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.specificExecute(CreateDataSourceHandler.java:41)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.AbstractDataSourceHandler.execute(AbstractDataSourceHandler.java:37)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.execute(CreateDataSourceHandler.java:1)
+ at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
+ at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
+ at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
+ at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
+ at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
+ at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
+ at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
+ at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
+ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+ at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
+ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:606)
+ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
+ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
+ at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
+ at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
+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)
+ ... 58 more
+06-15 17:37:28 jdbc[2]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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 java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmDataSource.testConnection(CdmDataSource.java:33)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:292)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:281)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage$1.widgetSelected(CdmDataSourceCredentialsWizardPage.java:165)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
+ at org.eclipse.jface.window.Window.open(Window.java:801)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.specificExecute(CreateDataSourceHandler.java:41)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.AbstractDataSourceHandler.execute(AbstractDataSourceHandler.java:37)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.execute(CreateDataSourceHandler.java:1)
+ at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
+ at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
+ at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
+ at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
+ at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
+ at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
+ at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
+ at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
+ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+ at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
+ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:606)
+ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
+ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
+ at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
+ at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
+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)
+ ... 58 more
+06-15 17:37:28 jdbc[2]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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 java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmDataSource.testConnection(CdmDataSource.java:33)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:292)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:281)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage$1.widgetSelected(CdmDataSourceCredentialsWizardPage.java:165)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
+ at org.eclipse.jface.window.Window.open(Window.java:801)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.specificExecute(CreateDataSourceHandler.java:41)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.AbstractDataSourceHandler.execute(AbstractDataSourceHandler.java:37)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.execute(CreateDataSourceHandler.java:1)
+ at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
+ at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
+ at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
+ at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
+ at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
+ at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
+ at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
+ at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
+ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+ at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
+ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:606)
+ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
+ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
+ at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
+ at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
+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)
+ ... 58 more
+06-15 17:37:28 jdbc[2]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.testConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.checkConnection(CdmDataSourceBase.java:110)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.checkConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:72)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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 java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmDataSource.testConnection(CdmDataSource.java:33)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:292)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:281)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage$1.widgetSelected(CdmDataSourceCredentialsWizardPage.java:165)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
+ at org.eclipse.jface.window.Window.open(Window.java:801)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.specificExecute(CreateDataSourceHandler.java:41)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.AbstractDataSourceHandler.execute(AbstractDataSourceHandler.java:37)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.execute(CreateDataSourceHandler.java:1)
+ at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
+ at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
+ at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
+ at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
+ at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
+ at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
+ at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
+ at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
+ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+ at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
+ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:606)
+ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
+ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
+ at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
+ at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
+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)
+ ... 58 more
+06-15 17:37:28 jdbc[2]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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 java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmDataSource.testConnection(CdmDataSource.java:33)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:292)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage.testDbConfiguration(CdmDataSourceCredentialsWizardPage.java:281)
+ at eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage$1.widgetSelected(CdmDataSourceCredentialsWizardPage.java:165)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
+ at org.eclipse.jface.window.Window.open(Window.java:801)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.specificExecute(CreateDataSourceHandler.java:41)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.AbstractDataSourceHandler.execute(AbstractDataSourceHandler.java:37)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler.execute(CreateDataSourceHandler.java:1)
+ at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
+ at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
+ at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
+ at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
+ at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
+ at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
+ at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
+ at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
+ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+ at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
+ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:606)
+ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
+ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
+ at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
+ at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
+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)
+ ... 58 more
+06-15 17:37:31 jdbc[3]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+SELECT value FROM CdmMetaData WHERE propertyname=0 [42102-170]
+06-15 17:37:34 jdbc[6]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+SELECT value FROM CdmMetaData WHERE propertyname=0 [42102-170]
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.testConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.checkConnection(CdmDataSourceBase.java:110)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.checkConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:72)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getDbSchemaVersion(CdmDataSourceBase.java:156)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getDbSchemaVersion(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.isDbEmpty(CdmDataSourceBase.java:165)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.isDbEmpty(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.checkIsNonEmptyCdmDatabase(CdmStoreConnector.java:231)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:73)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.testConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.checkConnection(CdmDataSourceBase.java:110)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.checkConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.handler.ChangeConnectionHandler.execute(ChangeConnectionHandler.java:49)
+ at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
+ at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
+ at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
+ at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
+ at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
+ at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
+ at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
+ at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
+ at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
+ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+ at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
+ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:606)
+ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
+ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
+ at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
+ at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:67)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getConnection(CdmDataSourceBase.java:45)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.executeQuery(CdmDataSourceBase.java:182)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.executeQuery(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getSingleValue(CdmDataSourceBase.java:136)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getSingleValue(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.getMetaDataMap(CdmDataSourceBase.java:288)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.getMetaDataMap(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:84)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.testConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.checkConnection(CdmDataSourceBase.java:110)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.checkConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.checkDatabaseReachable(CdmStoreConnector.java:253)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:69)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:06 jdbc[7]: java.lang.Exception: Open Stack Trace
+ at org.h2.util.CloseWatcher.register(CloseWatcher.java:99)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:121)
+ at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+ at org.h2.Driver.connect(Driver.java:72)
+ at java.sql.DriverManager.getConnection(DriverManager.java:571)
+ at java.sql.DriverManager.getConnection(DriverManager.java:215)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.testConnection(CdmDataSourceBase.java:93)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.testConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.cdm.database.CdmDataSourceBase.checkConnection(CdmDataSourceBase.java:110)
+ at eu.etaxonomy.cdm.database.CdmPersistentDataSource.checkConnection(CdmPersistentDataSource.java:51)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer.getMetaDataFromDataSource(CdmMetaDataAwareDataSourceContainer.java:72)
+ at eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart$DataSourceJob.run(CdmDataSourceViewPart.java:140)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+
+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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ 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
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D44FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4CDD3C17E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4132A2FE8 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS_AUD" not found; SQL statement:
+alter table Address_AUD drop constraint FK115657A534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D3564FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D356BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D356A830578 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AUD" not found; SQL statement:
+alter table AgentBase_AUD drop constraint FK29CC662734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS" not found; SQL statement:
+alter table AgentBase_Address drop constraint FK1EDFF7EB50751EC5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS" not found; SQL statement:
+alter table AgentBase_Address drop constraint FK1EDFF7EB86EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE" not found; SQL statement:
+alter table AgentBase_AgentBase drop constraint FK4D34EDADE9E535F9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE" not found; SQL statement:
+alter table AgentBase_AgentBase drop constraint FK4D34EDAD1C0E9907 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION" not found; SQL statement:
+alter table AgentBase_Annotation drop constraint FK44D5F7D81E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION" not found; SQL statement:
+alter table AgentBase_Annotation drop constraint FK44D5F7D886EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT" not found; SQL statement:
+alter table AgentBase_Credit drop constraint FK2636742232D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT" not found; SQL statement:
+alter table AgentBase_Credit drop constraint FK2636742286EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE" not found; SQL statement:
+alter table AgentBase_DefinedTermBase drop constraint FK6665C77DF116FEB0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE" not found; SQL statement:
+alter table AgentBase_DefinedTermBase drop constraint FK6665C77D8D9AB196 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION" not found; SQL statement:
+alter table AgentBase_Extension drop constraint FK8E1E5676927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION" not found; SQL statement:
+alter table AgentBase_Extension drop constraint FK8E1E567686EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_IDENTIFIER" not found; SQL statement:
+alter table AgentBase_Identifier drop constraint FK410EB952E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_IDENTIFIER" not found; SQL statement:
+alter table AgentBase_Identifier drop constraint FK410EB95286EFC5D4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table AgentBase_Identifier_AUD drop constraint FK3DB9EE2334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER" not found; SQL statement:
+alter table AgentBase_Marker drop constraint FK365D5D63777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER" not found; SQL statement:
+alter table AgentBase_Marker drop constraint FK365D5D6386EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA" not found; SQL statement:
+alter table AgentBase_Media drop constraint FKE8FC5D9BC2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA" not found; SQL statement:
+alter table AgentBase_Media drop constraint FKE8FC5D9B86EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase drop constraint FKB482C5E63A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase drop constraint FKB482C5E686EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO" not found; SQL statement:
+alter table AgentBase_RightsInfo drop constraint FK4FD6A3CEC13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO" not found; SQL statement:
+alter table AgentBase_RightsInfo drop constraint FK4FD6A3CE86EFC5D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4164FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4163DA462D5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4166D2CE418 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4163781DA30 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416403E17F4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416AFCA96F8 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4161600EAB3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT" not found; SQL statement:
+alter table AmplificationResult drop constraint FK484B7FD34FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT" not found; SQL statement:
+alter table AmplificationResult drop constraint FK484B7FD3BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT" not found; SQL statement:
+alter table AmplificationResult drop constraint FK484B7FD3614CEB1F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT" not found; SQL statement:
+alter table AmplificationResult drop constraint FK484B7FD3DEC4385F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT" not found; SQL statement:
+alter table AmplificationResult drop constraint FK484B7FD3E671A9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT" not found; SQL statement:
+alter table AmplificationResult drop constraint FK484B7FD3825BDDD3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_AUD" not found; SQL statement:
+alter table AmplificationResult_AUD drop constraint FK343D8C2434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_ANNOTATION" not found; SQL statement:
+alter table AmplificationResult_Annotation drop constraint FKFE4A8B3B1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_ANNOTATION" not found; SQL statement:
+alter table AmplificationResult_Annotation drop constraint FKFE4A8B3BD320A65F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_ANNOTATION_AUD" not found; SQL statement:
+alter table AmplificationResult_Annotation_AUD drop constraint FK7378A38C34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_MARKER" not found; SQL statement:
+alter table AmplificationResult_Marker drop constraint FK5B911A46777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_MARKER" not found; SQL statement:
+alter table AmplificationResult_Marker drop constraint FK5B911A46D320A65F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATIONRESULT_MARKER_AUD" not found; SQL statement:
+alter table AmplificationResult_Marker_AUD drop constraint FK9D7AB51734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_AUD" not found; SQL statement:
+alter table Amplification_AUD drop constraint FK448EE6E734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION" not found; SQL statement:
+alter table Amplification_Annotation drop constraint FK6B251F181E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION" not found; SQL statement:
+alter table Amplification_Annotation drop constraint FK6B251F18614CEB1F [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER" not found; SQL statement:
+alter table Amplification_Marker drop constraint FK46E224A3777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER" not found; SQL statement:
+alter table Amplification_Marker drop constraint FK46E224A3614CEB1F [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74F4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FE8D36B00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FDF299D00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FE7692740 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_AUD" not found; SQL statement:
+alter table Annotation_AUD drop constraint FK1A6BB5A034869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION" not found; SQL statement:
+alter table Annotation_Annotation drop constraint FKC99DFE3F1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION" not found; SQL statement:
+alter table Annotation_Annotation drop constraint FKC99DFE3F994CCE20 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER" not found; SQL statement:
+alter table Annotation_Marker drop constraint FKB17EAF4A777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER" not found; SQL statement:
+alter table Annotation_Marker drop constraint FKB17EAF4A994CCE20 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+alter table CdmMetaData drop constraint FK6EA78F7B4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB1100064FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB110006BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB11000677E2F09E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB1100068D0FB4DA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB110006D1E08681 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_AUD" not found; SQL statement:
+alter table Classification_AUD drop constraint FKEB11BAD734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION" not found; SQL statement:
+alter table Classification_Annotation drop constraint FKC978FD281E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION" not found; SQL statement:
+alter table Classification_Annotation drop constraint FKC978FD2884A3CE1B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT" not found; SQL statement:
+alter table Classification_Credit drop constraint FK4950A17232D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT" not found; SQL statement:
+alter table Classification_Credit drop constraint FK4950A17284A3CE1B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION" not found; SQL statement:
+alter table Classification_Description drop constraint FK382EB1232BEBA58D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION" not found; SQL statement:
+alter table Classification_Description drop constraint FK382EB12328459272 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION" not found; SQL statement:
+alter table Classification_Description drop constraint FK382EB12384A3CE1B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION_AUD" not found; SQL statement:
+alter table Classification_Description_AUD drop constraint FK3187957434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION" not found; SQL statement:
+alter table Classification_Extension drop constraint FK715D6726927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION" not found; SQL statement:
+alter table Classification_Extension drop constraint FK715D672684A3CE1B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_GEOSCOPE" not found; SQL statement:
+alter table Classification_GeoScope drop constraint FK379FE5BC86D04E74 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_GEOSCOPE" not found; SQL statement:
+alter table Classification_GeoScope drop constraint FK379FE5BC84A3CE1B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_GEOSCOPE_AUD" not found; SQL statement:
+alter table Classification_GeoScope_AUD drop constraint FKF5AAD58D34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_IDENTIFIER" not found; SQL statement:
+alter table Classification_Identifier drop constraint FKC5B1BEA2E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_IDENTIFIER" not found; SQL statement:
+alter table Classification_Identifier drop constraint FKC5B1BEA284A3CE1B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_IDENTIFIER_AUD" not found; SQL statement:
+alter table Classification_Identifier_AUD drop constraint FK3B9CB7334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER" not found; SQL statement:
+alter table Classification_Marker drop constraint FK59778AB3777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER" not found; SQL statement:
+alter table Classification_Marker drop constraint FK59778AB384A3CE1B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Classification_OriginalSourceBase drop constraint FK91B37B363A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Classification_OriginalSourceBase drop constraint FK91B37B3684A3CE1B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO" not found; SQL statement:
+alter table Classification_RightsInfo drop constraint FKD479A91EC13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO" not found; SQL statement:
+alter table Classification_RightsInfo drop constraint FKD479A91E84A3CE1B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABE4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABEBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABE16B9CA77 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABECEB38EFF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_AUD" not found; SQL statement:
+alter table Collection_AUD drop constraint FKD6D4298F34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION" not found; SQL statement:
+alter table Collection_Annotation drop constraint FKEA970F701E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION" not found; SQL statement:
+alter table Collection_Annotation drop constraint FKEA970F70EB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT" not found; SQL statement:
+alter table Collection_Credit drop constraint FKE0A317BA32D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT" not found; SQL statement:
+alter table Collection_Credit drop constraint FKE0A317BAEB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION" not found; SQL statement:
+alter table Collection_Extension drop constraint FKF68FEBDE927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION" not found; SQL statement:
+alter table Collection_Extension drop constraint FKF68FEBDEEB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_IDENTIFIER" not found; SQL statement:
+alter table Collection_Identifier drop constraint FKE6CFD0EAE12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_IDENTIFIER" not found; SQL statement:
+alter table Collection_Identifier drop constraint FKE6CFD0EAEB62BE9A [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_IDENTIFIER_AUD" not found; SQL statement:
+alter table Collection_Identifier_AUD drop constraint FK677579BB34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER" not found; SQL statement:
+alter table Collection_Marker drop constraint FKF0CA00FB777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER" not found; SQL statement:
+alter table Collection_Marker drop constraint FKF0CA00FBEB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA" not found; SQL statement:
+alter table Collection_Media drop constraint FK7320E703C2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA" not found; SQL statement:
+alter table Collection_Media drop constraint FK7320E703EB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Collection_OriginalSourceBase drop constraint FK37DEC57E3A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Collection_OriginalSourceBase drop constraint FK37DEC57EEB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO" not found; SQL statement:
+alter table Collection_RightsInfo drop constraint FKF597BB66C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO" not found; SQL statement:
+alter table Collection_RightsInfo drop constraint FKF597BB66EB62BE9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA97194FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719E8D36B00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719F7976FC5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_AUD" not found; SQL statement:
+alter table Credit_AUD drop constraint FK5533906A34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION" not found; SQL statement:
+alter table Credit_Annotation drop constraint FKE8DA4C351E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION" not found; SQL statement:
+alter table Credit_Annotation drop constraint FKE8DA4C354CF694E0 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER" not found; SQL statement:
+alter table Credit_Marker drop constraint FK10CC6840777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER" not found; SQL statement:
+alter table Credit_Marker drop constraint FK10CC68404CF694E0 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A664FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A663B0DA0EF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66D040DBF0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6647AF954C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6624AF3F70 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6636C6F6F6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66CC0240B6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6688206484 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table DefinedTermBase_AUD drop constraint FK86E8953734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION" not found; SQL statement:
+alter table DefinedTermBase_Annotation drop constraint FK589B6C81E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION" not found; SQL statement:
+alter table DefinedTermBase_Annotation drop constraint FK589B6C8C0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT" not found; SQL statement:
+alter table DefinedTermBase_Continent drop constraint FK45F60AFB9AEE7205 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT" not found; SQL statement:
+alter table DefinedTermBase_Continent drop constraint FK45F60AFB901A60CE [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY" not found; SQL statement:
+alter table DefinedTermBase_Country drop constraint FKA2ADDA9D47CE41A0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY" not found; SQL statement:
+alter table DefinedTermBase_Country drop constraint FKA2ADDA9DCE5C0F9E [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT" not found; SQL statement:
+alter table DefinedTermBase_Credit drop constraint FK78FF2B1232D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT" not found; SQL statement:
+alter table DefinedTermBase_Credit drop constraint FK78FF2B12C0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION" not found; SQL statement:
+alter table DefinedTermBase_Extension drop constraint FK397EF986927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION" not found; SQL statement:
+alter table DefinedTermBase_Extension drop constraint FK397EF986C0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_IDENTIFIER" not found; SQL statement:
+alter table DefinedTermBase_Identifier drop constraint FK1C27842E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_IDENTIFIER" not found; SQL statement:
+alter table DefinedTermBase_Identifier drop constraint FK1C27842C0DB4934 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table DefinedTermBase_Identifier_AUD drop constraint FKEF94B51334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER" not found; SQL statement:
+alter table DefinedTermBase_Marker drop constraint FK89261453777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER" not found; SQL statement:
+alter table DefinedTermBase_Marker drop constraint FK89261453C0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit drop constraint FKE9D17767F3BB39BD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit drop constraint FKE9D17767D0BDAE9B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA" not found; SQL statement:
+alter table DefinedTermBase_Media drop constraint FK6FC908ABC2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA" not found; SQL statement:
+alter table DefinedTermBase_Media drop constraint FK6FC908ABC0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase drop constraint FKDCC094D63A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase drop constraint FKDCC094D6C0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration drop constraint FKA72FB5AE5255EAFD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration drop constraint FKA72FB5AED0BDAE9B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION" not found; SQL statement:
+alter table DefinedTermBase_Representation drop constraint FKAAC8AFE6B31C4747 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION" not found; SQL statement:
+alter table DefinedTermBase_Representation drop constraint FKAAC8AFE6C0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo drop constraint FK108A62BEC13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo drop constraint FK108A62BEC0DB4934 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure drop constraint FK6FF15DFCC9CD5B57 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure drop constraint FK6FF15DFCD0BDAE9B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration drop constraint FK2170B25C5AF2C74 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration drop constraint FK2170B25CD0BDAE9B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC034FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC03BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC033DA462D5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC03403E17F4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC038524B89D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_AUD" not found; SQL statement:
+alter table DerivationEvent_AUD drop constraint FKDABF305434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DerivationEvent_Annotation drop constraint FKEFA0D10B1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DerivationEvent_Annotation drop constraint FKEFA0D10B4AAB411A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER" not found; SQL statement:
+alter table DerivationEvent_Marker drop constraint FKE412C816777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER" not found; SQL statement:
+alter table DerivationEvent_Marker drop constraint FKE412C8164AAB411A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CD4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDB56856A4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDDE9A3E39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDDA935185 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_AUD" not found; SQL statement:
+alter table DescriptionBase_AUD drop constraint FK7456581E34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionBase_Annotation drop constraint FKF3AD32011E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionBase_Annotation drop constraint FKF3AD3201F1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT" not found; SQL statement:
+alter table DescriptionBase_Credit drop constraint FK510B2ACB32D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT" not found; SQL statement:
+alter table DescriptionBase_Credit drop constraint FK510B2ACBF1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION" not found; SQL statement:
+alter table DescriptionBase_Extension drop constraint FKD5D2B32D927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION" not found; SQL statement:
+alter table DescriptionBase_Extension drop constraint FKD5D2B32DF1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE" not found; SQL statement:
+alter table DescriptionBase_GeoScope drop constraint FK3ADD7CD586D04E74 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE" not found; SQL statement:
+alter table DescriptionBase_GeoScope drop constraint FK3ADD7CD5D86445CE [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_IDENTIFIER" not found; SQL statement:
+alter table DescriptionBase_Identifier drop constraint FKEFE5F37BE12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_IDENTIFIER" not found; SQL statement:
+alter table DescriptionBase_Identifier drop constraint FKEFE5F37BF1DDBFAB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table DescriptionBase_Identifier_AUD drop constraint FKDCA5EBCC34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER" not found; SQL statement:
+alter table DescriptionBase_Marker drop constraint FK6132140C777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER" not found; SQL statement:
+alter table DescriptionBase_Marker drop constraint FK6132140CF1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase drop constraint FKDC75C70F3A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase drop constraint FKDC75C70FF1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE" not found; SQL statement:
+alter table DescriptionBase_Reference drop constraint FKC330D6395C601E49 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE" not found; SQL statement:
+alter table DescriptionBase_Reference drop constraint FKC330D639F1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table DescriptionBase_RightsInfo drop constraint FKFEADDDF7C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table DescriptionBase_RightsInfo drop constraint FKFEADDDF7F1DDBFAB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE" not found; SQL statement:
+alter table DescriptionBase_Scope drop constraint FKB9257C4294E290CA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE" not found; SQL statement:
+alter table DescriptionBase_Scope drop constraint FKB9257C42D86445CE [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76714FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76714220AFEB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE767134AF0E81 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76711C3C3FF7 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671E8D36B00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671693C1147 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76716561D9B1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE767110A80E07 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76719108D9B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76716D0D7A56 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_AUD drop constraint FKF3803C234869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionElementBase_Annotation drop constraint FK7EE5E5DD1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionElementBase_Annotation drop constraint FK7EE5E5DD3B8BB609 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137ACF5F60B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137C6D55834 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137C086B46F [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER" not found; SQL statement:
+alter table DescriptionElementBase_Marker drop constraint FK1CB715E8777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER" not found; SQL statement:
+alter table DescriptionElementBase_Marker drop constraint FK1CB715E83B8BB609 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA" not found; SQL statement:
+alter table DescriptionElementBase_Media drop constraint FK21F70076C2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA" not found; SQL statement:
+alter table DescriptionElementBase_Media drop constraint FK21F700763B8BB609 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER" not found; SQL statement:
+alter table DescriptionElementBase_Modifier drop constraint FK97E0D105F4E35BCD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER" not found; SQL statement:
+alter table DescriptionElementBase_Modifier drop constraint FK97E0D1053B8BB609 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C7F05D08D4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C79682414B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C73B8BB609 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase drop constraint FKF41ADEEBA6473CCC [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase drop constraint FKF41ADEEB3B8BB609 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24974FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24973DA462D5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24974B251DAD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497BD54CF92 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497AEC8CCAA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497DA935185 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_AUD" not found; SQL statement:
+alter table DeterminationEvent_AUD drop constraint FKA0252EE834869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DeterminationEvent_Annotation drop constraint FKB74F03F71E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DeterminationEvent_Annotation drop constraint FKB74F03F76BE0BFDA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER" not found; SQL statement:
+alter table DeterminationEvent_Marker drop constraint FK5C475102777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER" not found; SQL statement:
+alter table DeterminationEvent_Marker drop constraint FK5C4751026BE0BFDA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE" not found; SQL statement:
+alter table DeterminationEvent_Reference drop constraint FK8FB1ED8355A53F64 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE" not found; SQL statement:
+alter table DeterminationEvent_Reference drop constraint FK8FB1ED836BE0BFDA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F4518084FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F451808BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F45180823A844FA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F45180887BB6462 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F451808632EAD0D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY_AUD" not found; SQL statement:
+alter table DnaQuality_AUD drop constraint FKA79601D934869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ENTITYCONSTRAINTVIOLATION" not found; SQL statement:
+alter table EntityConstraintViolation drop constraint FK8970AEC54FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ENTITYCONSTRAINTVIOLATION" not found; SQL statement:
+alter table EntityConstraintViolation drop constraint FK8970AEC57CB10052 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ENTITYVALIDATION" not found; SQL statement:
+alter table EntityValidation drop constraint FKE5A60CDC4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1F4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1FBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1FAD392BD3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION_AUD" not found; SQL statement:
+alter table Extension_AUD drop constraint FK92D2427034869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F84FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F8BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F84220AFEB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F847C496CB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F8E0AD2C59 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_AUD" not found; SQL statement:
+alter table FeatureNode_AUD drop constraint FK25AD4BC934869AAE [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F944FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F94BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F94B7892921 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_AUD" not found; SQL statement:
+alter table FeatureTree_AUD drop constraint FK355BE36534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION" not found; SQL statement:
+alter table FeatureTree_Annotation drop constraint FK5D8B8DA1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION" not found; SQL statement:
+alter table FeatureTree_Annotation drop constraint FK5D8B8DA47C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT" not found; SQL statement:
+alter table FeatureTree_Credit drop constraint FK7536062432D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT" not found; SQL statement:
+alter table FeatureTree_Credit drop constraint FK7536062447C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION" not found; SQL statement:
+alter table FeatureTree_Extension drop constraint FKAD1E6D34927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION" not found; SQL statement:
+alter table FeatureTree_Extension drop constraint FKAD1E6D3447C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_IDENTIFIER" not found; SQL statement:
+alter table FeatureTree_Identifier drop constraint FK2117A54E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_IDENTIFIER" not found; SQL statement:
+alter table FeatureTree_Identifier drop constraint FK2117A5447C496CB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_IDENTIFIER_AUD" not found; SQL statement:
+alter table FeatureTree_Identifier_AUD drop constraint FK4D905E2534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER" not found; SQL statement:
+alter table FeatureTree_Marker drop constraint FK855CEF65777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER" not found; SQL statement:
+alter table FeatureTree_Marker drop constraint FK855CEF6547C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase drop constraint FK13BD64E83A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase drop constraint FK13BD64E847C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION" not found; SQL statement:
+alter table FeatureTree_Representation drop constraint FK8C458F8B31C4747 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION" not found; SQL statement:
+alter table FeatureTree_Representation drop constraint FK8C458F847C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO" not found; SQL statement:
+alter table FeatureTree_RightsInfo drop constraint FK10D964D0C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO" not found; SQL statement:
+alter table FeatureTree_RightsInfo drop constraint FK10D964D047C496CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F34FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F33DA462D5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3C15704E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3F55AFD89 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F38B455EC6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_AUD" not found; SQL statement:
+alter table GatheringEvent_AUD drop constraint FK3EC034434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION" not found; SQL statement:
+alter table GatheringEvent_Annotation drop constraint FK76DDD01B1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION" not found; SQL statement:
+alter table GatheringEvent_Annotation drop constraint FK76DDD01BF95F225A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase drop constraint FK69D9A11A7C34B6D6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase drop constraint FK69D9A11AF95F225A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER" not found; SQL statement:
+alter table GatheringEvent_Marker drop constraint FK7B49CF26777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER" not found; SQL statement:
+alter table GatheringEvent_Marker drop constraint FK7B49CF26F95F225A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table GrantedAuthorityImpl drop constraint FKB05CF9284FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP" not found; SQL statement:
+alter table HomotypicalGroup drop constraint FK7DECCC184FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP" not found; SQL statement:
+alter table HomotypicalGroup drop constraint FK7DECCC18BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_AUD" not found; SQL statement:
+alter table HomotypicalGroup_AUD drop constraint FKE4252DE934869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION" not found; SQL statement:
+alter table HomotypicalGroup_Annotation drop constraint FK7A0351D61E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION" not found; SQL statement:
+alter table HomotypicalGroup_Annotation drop constraint FK7A0351D6BFEAE500 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER" not found; SQL statement:
+alter table HomotypicalGroup_Marker drop constraint FK97D36661777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER" not found; SQL statement:
+alter table HomotypicalGroup_Marker drop constraint FK97D36661BFEAE500 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE744FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74AEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE749DD57A93 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74AF4F9F62 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE7455F241D4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_AUD" not found; SQL statement:
+alter table HybridRelationship_AUD drop constraint FK9C2BA24534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table HybridRelationship_Annotation drop constraint FK2C7E7DFA1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table HybridRelationship_Annotation drop constraint FK2C7E7DFA59832240 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER" not found; SQL statement:
+alter table HybridRelationship_Marker drop constraint FKCEF24485777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER" not found; SQL statement:
+alter table HybridRelationship_Marker drop constraint FKCEF2448559832240 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER" not found; SQL statement:
+alter table Identifier drop constraint FK165A88C94FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER" not found; SQL statement:
+alter table Identifier drop constraint FK165A88C9BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER" not found; SQL statement:
+alter table Identifier drop constraint FK165A88C9E67FC44F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_AUD" not found; SQL statement:
+alter table Identifier_AUD drop constraint FKE1132A1A34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_ANNOTATION" not found; SQL statement:
+alter table Identifier_Annotation drop constraint FK12BB6C851E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_ANNOTATION" not found; SQL statement:
+alter table Identifier_Annotation drop constraint FK12BB6C85E640A3E0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_ANNOTATION_AUD" not found; SQL statement:
+alter table Identifier_Annotation_AUD drop constraint FK36A3CFD634869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_MARKER" not found; SQL statement:
+alter table Identifier_Marker drop constraint FK4A6A3090777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_MARKER" not found; SQL statement:
+alter table Identifier_Marker drop constraint FK4A6A3090E640A3E0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_MARKER_AUD" not found; SQL statement:
+alter table Identifier_Marker_AUD drop constraint FKB1EB966134869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC02BEBA58D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC028459272 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC084FF3EDF [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF94FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF9BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF916B9CA77 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF9AAC1B820 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP_AUD" not found; SQL statement:
+alter table InstitutionalMembership_AUD drop constraint FK847A94A34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B794FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79F7976FC5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79994CCE20 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B7937998500 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79C2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B795CB60F3B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B798D0FB4DA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79AEC8CCAA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79DA935185 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE" not found; SQL statement:
+alter table IntextReference drop constraint FK861B8B79EE6B45A6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INTEXTREFERENCE_AUD" not found; SQL statement:
+alter table IntextReference_AUD drop constraint FKAE3354CA34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT" not found; SQL statement:
+alter table KeyStatement drop constraint FK7125B9F04FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT" not found; SQL statement:
+alter table KeyStatement drop constraint FK7125B9F0BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_AUD" not found; SQL statement:
+alter table KeyStatement_AUD drop constraint FK93036FC134869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD89C782795 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD8DA0C376A [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD8AAA67049 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LSIDAUTHORITY" not found; SQL statement:
+alter table LSIDAuthority drop constraint FK759DB8814FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LSIDAUTHORITY_NAMESPACES" not found; SQL statement:
+alter table LSIDAuthority_namespaces drop constraint FKB04948F64FFCFD94 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A94FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A9BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A9E8D36B00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_AUD" not found; SQL statement:
+alter table LanguageString_AUD drop constraint FK896AFAFA34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION" not found; SQL statement:
+alter table LanguageString_Annotation drop constraint FK8400DFA51E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION" not found; SQL statement:
+alter table LanguageString_Annotation drop constraint FK8400DFA537998500 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER" not found; SQL statement:
+alter table LanguageString_Marker drop constraint FK8DA633B0777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER" not found; SQL statement:
+alter table LanguageString_Marker drop constraint FK8DA633B037998500 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805A4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805ABC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805AD64DC020 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER_AUD" not found; SQL statement:
+alter table Marker_AUD drop constraint FKB951F12B34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264FBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F3DA462D5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F14D2C695 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F3781DA30 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F1600EAB3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F9A129634 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_AUD drop constraint FK8C8C94A034869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation drop constraint FKD9943F3F1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation drop constraint FKD9943F3F2F50355A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker drop constraint FKF0BD704A777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker drop constraint FKF0BD704A2F50355A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC44FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC4BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC4C2445443 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA" not found; SQL statement:
+alter table MediaKey_NamedArea drop constraint FK31E7D4023FF8E7B2 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA" not found; SQL statement:
+alter table MediaKey_NamedArea drop constraint FK31E7D402BE59D760 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE" not found; SQL statement:
+alter table MediaKey_Scope drop constraint FKBFFEE8F05431B96E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE" not found; SQL statement:
+alter table MediaKey_Scope drop constraint FKBFFEE8F0BE59D760 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON" not found; SQL statement:
+alter table MediaKey_Taxon drop constraint FKC00C3966DE9A3E39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON" not found; SQL statement:
+alter table MediaKey_Taxon drop constraint FKC00C3966815C7E9 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB14FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB1BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB1C2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A455444FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A45544BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A45544E3818E37 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART_AUD" not found; SQL statement:
+alter table MediaRepresentationPart_AUD drop constraint FKA75C411534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION_AUD" not found; SQL statement:
+alter table MediaRepresentation_AUD drop constraint FK67AAAB0234869AAE [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_AUD" not found; SQL statement:
+alter table Media_AUD drop constraint FKF70B2B9534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION" not found; SQL statement:
+alter table Media_Annotation drop constraint FKA020DAAA1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION" not found; SQL statement:
+alter table Media_Annotation drop constraint FKA020DAAAC2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT" not found; SQL statement:
+alter table Media_Credit drop constraint FKC1F78FF432D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT" not found; SQL statement:
+alter table Media_Credit drop constraint FKC1F78FF4C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E12BEBA58D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E128459272 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E1C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION" not found; SQL statement:
+alter table Media_Extension drop constraint FKDB62D164927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION" not found; SQL statement:
+alter table Media_Extension drop constraint FKDB62D164C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_IDENTIFIER" not found; SQL statement:
+alter table Media_Identifier drop constraint FK9C599C24E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_IDENTIFIER" not found; SQL statement:
+alter table Media_Identifier drop constraint FK9C599C24C2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_IDENTIFIER_AUD" not found; SQL statement:
+alter table Media_Identifier_AUD drop constraint FK605317F534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784A1CA19B1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784A0A6EDCE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER" not found; SQL statement:
+alter table Media_Marker drop constraint FKD21E7935777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER" not found; SQL statement:
+alter table Media_Marker drop constraint FKD21E7935C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Media_OriginalSourceBase drop constraint FK2FEEB6B83A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Media_OriginalSourceBase drop constraint FK2FEEB6B8C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION" not found; SQL statement:
+alter table Media_Representation drop constraint FK1B8712C88F6CABE6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION" not found; SQL statement:
+alter table Media_Representation drop constraint FK1B8712C8BE59D760 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO" not found; SQL statement:
+alter table Media_RightsInfo drop constraint FKAB2186A0C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO" not found; SQL statement:
+alter table Media_RightsInfo drop constraint FKAB2186A0C2C29593 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE" not found; SQL statement:
+alter table Media_Sequence drop constraint FK61D09FCF29B4761 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE" not found; SQL statement:
+alter table Media_Sequence drop constraint FK61D09FC3282B64 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE" not found; SQL statement:
+alter table Media_TaxonBase drop constraint FK1ABD49E07C3D0017 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE" not found; SQL statement:
+alter table Media_TaxonBase drop constraint FK1ABD49E0BE59D760 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA" not found; SQL statement:
+alter table MultiAccessKey_NamedArea drop constraint FK1F5A74893FF8E7B2 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA" not found; SQL statement:
+alter table MultiAccessKey_NamedArea drop constraint FK1F5A7489B4555A9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE" not found; SQL statement:
+alter table MultiAccessKey_Scope drop constraint FKCC6CE4F75431B96E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE" not found; SQL statement:
+alter table MultiAccessKey_Scope drop constraint FKCC6CE4F7B4555A9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON" not found; SQL statement:
+alter table MultiAccessKey_Taxon drop constraint FKCC7A356DDE9A3E39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON" not found; SQL statement:
+alter table MultiAccessKey_Taxon drop constraint FKCC7A356DB64A7B29 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E510834FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083AEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E5108316CDFF85 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E5108328482454 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083AF619DE3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_AUD" not found; SQL statement:
+alter table NameRelationship_AUD drop constraint FK743F44D434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table NameRelationship_Annotation drop constraint FK2E38AC8B1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table NameRelationship_Annotation drop constraint FK2E38AC8B7B4CB560 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER" not found; SQL statement:
+alter table NameRelationship_Marker drop constraint FKE3E46396777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER" not found; SQL statement:
+alter table NameRelationship_Marker drop constraint FKE3E463967B4CB560 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88B4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88BBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88BAEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88B7029BD9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_AUD drop constraint FKFB2DB8DC34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation drop constraint FKE6E91F831E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation drop constraint FKE6E91F838D2CB1D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER" not found; SQL statement:
+alter table NomenclaturalStatus_Marker drop constraint FK2F5128E777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER" not found; SQL statement:
+alter table NomenclaturalStatus_Marker drop constraint FK2F5128E8D2CB1D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5D4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5DBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5DAEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5D966B96B2 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table OriginalSourceBase_AUD drop constraint FK9662E5AE34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION" not found; SQL statement:
+alter table OriginalSourceBase_Annotation drop constraint FK208142711E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION" not found; SQL statement:
+alter table OriginalSourceBase_Annotation drop constraint FK20814271B029DDA0 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER" not found; SQL statement:
+alter table OriginalSourceBase_Marker drop constraint FKB3FFDC7C777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER" not found; SQL statement:
+alter table OriginalSourceBase_Marker drop constraint FKB3FFDC7CB029DDA0 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP" not found; SQL statement:
+alter table PermissionGroup drop constraint FK629941D04FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table PermissionGroup_GrantedAuthorityImpl drop constraint FK53114371857F6C2 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table PermissionGroup_GrantedAuthorityImpl drop constraint FK5311437CA0971A3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B1384FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B138BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B138576595C3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775ABC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4220AFEB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775AC73A7584 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4FEE4393 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A808998FB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A9D3C2E93 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4382686A [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A1C0483C4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775ADE9A3E39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_AUD" not found; SQL statement:
+alter table PolytomousKeyNode_AUD drop constraint FK6A6D682B34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12EF05D08D4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12E9682414B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12EF135C42B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_AUD" not found; SQL statement:
+alter table PolytomousKey_AUD drop constraint FK867830934869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION" not found; SQL statement:
+alter table PolytomousKey_Annotation drop constraint FK278CF8B61E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION" not found; SQL statement:
+alter table PolytomousKey_Annotation drop constraint FK278CF8B689D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT" not found; SQL statement:
+alter table PolytomousKey_Credit drop constraint FKADC940032D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT" not found; SQL statement:
+alter table PolytomousKey_Credit drop constraint FKADC940089D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION" not found; SQL statement:
+alter table PolytomousKey_Extension drop constraint FKAE34C1D8927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION" not found; SQL statement:
+alter table PolytomousKey_Extension drop constraint FKAE34C1D889D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_IDENTIFIER" not found; SQL statement:
+alter table PolytomousKey_Identifier drop constraint FK23C5BA30E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_IDENTIFIER" not found; SQL statement:
+alter table PolytomousKey_Identifier drop constraint FK23C5BA3089D97CB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_IDENTIFIER_AUD" not found; SQL statement:
+alter table PolytomousKey_Identifier_AUD drop constraint FKF929500134869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER" not found; SQL statement:
+alter table PolytomousKey_Marker drop constraint FK1B037D41777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER" not found; SQL statement:
+alter table PolytomousKey_Marker drop constraint FK1B037D4189D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA" not found; SQL statement:
+alter table PolytomousKey_NamedArea drop constraint FK1C727CFF3FF8E7B2 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA" not found; SQL statement:
+alter table PolytomousKey_NamedArea drop constraint FK1C727CFF89D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase drop constraint FK839208C43A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase drop constraint FK839208C489D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO" not found; SQL statement:
+alter table PolytomousKey_RightsInfo drop constraint FK328DA4ACC13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO" not found; SQL statement:
+alter table PolytomousKey_RightsInfo drop constraint FK328DA4AC89D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE" not found; SQL statement:
+alter table PolytomousKey_Scope drop constraint FK8D97986D5431B96E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE" not found; SQL statement:
+alter table PolytomousKey_Scope drop constraint FK8D97986D89D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON" not found; SQL statement:
+alter table PolytomousKey_Taxon drop constraint FK8DA4E8E3DE9A3E39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON" not found; SQL statement:
+alter table PolytomousKey_Taxon drop constraint FK8DA4E8E389D97CB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE" not found; SQL statement:
+alter table PolytomousKey_TaxonBase drop constraint FKED8F3A547C3D0017 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE" not found; SQL statement:
+alter table PolytomousKey_TaxonBase drop constraint FKED8F3A5489D97CB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F34FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F36D2CE418 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3D0374392 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_AUD" not found; SQL statement:
+alter table Primer_AUD drop constraint FK319B864434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION" not found; SQL statement:
+alter table Primer_Annotation drop constraint FK9044ED1B1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION" not found; SQL statement:
+alter table Primer_Annotation drop constraint FK9044ED1B48BD1F55 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER" not found; SQL statement:
+alter table Primer_Marker drop constraint FKF6C76C26777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER" not found; SQL statement:
+alter table Primer_Marker drop constraint FKF6C76C2648BD1F55 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BD741CE1F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BAD54327F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B403E17F4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BAEC3B8B8 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_AUD" not found; SQL statement:
+alter table Reference_AUD drop constraint FK8F0FFF7C34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION" not found; SQL statement:
+alter table Reference_Annotation drop constraint FKFC824E31E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION" not found; SQL statement:
+alter table Reference_Annotation drop constraint FKFC824E38D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT" not found; SQL statement:
+alter table Reference_Credit drop constraint FK5BC6DEAD32D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT" not found; SQL statement:
+alter table Reference_Credit drop constraint FK5BC6DEAD8D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION" not found; SQL statement:
+alter table Reference_Extension drop constraint FKDEFCDC0B927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION" not found; SQL statement:
+alter table Reference_Extension drop constraint FKDEFCDC0B8D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_IDENTIFIER" not found; SQL statement:
+alter table Reference_Identifier drop constraint FKC00E65DE12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_IDENTIFIER" not found; SQL statement:
+alter table Reference_Identifier drop constraint FKC00E65D8D0FB4DA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_IDENTIFIER_AUD" not found; SQL statement:
+alter table Reference_Identifier_AUD drop constraint FKBA689DAE34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER" not found; SQL statement:
+alter table Reference_Marker drop constraint FK6BEDC7EE777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER" not found; SQL statement:
+alter table Reference_Marker drop constraint FK6BEDC7EE8D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA" not found; SQL statement:
+alter table Reference_Media drop constraint FKBBEF5B0C2C29593 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA" not found; SQL statement:
+alter table Reference_Media drop constraint FKBBEF5B08D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Reference_OriginalSourceBase drop constraint FKD3E8B7F13A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Reference_OriginalSourceBase drop constraint FKD3E8B7F18D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO" not found; SQL statement:
+alter table Reference_RightsInfo drop constraint FK1AC8D0D9C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO" not found; SQL statement:
+alter table Reference_RightsInfo drop constraint FK1AC8D0D98D0FB4DA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation drop constraint FK98592F33473FB677 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation drop constraint FK98592F33ECEEF4AF [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724ED4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724EDBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724EDE8D36B00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_AUD" not found; SQL statement:
+alter table Representation_AUD drop constraint FK294D143E34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION" not found; SQL statement:
+alter table Representation_Annotation drop constraint FK371091E11E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION" not found; SQL statement:
+alter table Representation_Annotation drop constraint FK371091E147E8AE60 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER" not found; SQL statement:
+alter table Representation_Marker drop constraint FK560063EC777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER" not found; SQL statement:
+alter table Representation_Marker drop constraint FK560063EC47E8AE60 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK252273454FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345E8D36B00 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345F7976FC5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345E6D2D338 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_AUD" not found; SQL statement:
+alter table RightsInfo_AUD drop constraint FK1CA9769634869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION" not found; SQL statement:
+alter table RightsInfo_Annotation drop constraint FKECC95C891E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION" not found; SQL statement:
+alter table RightsInfo_Annotation drop constraint FKECC95C89EFE62333 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER" not found; SQL statement:
+alter table RightsInfo_Marker drop constraint FK81D8C294777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER" not found; SQL statement:
+alter table RightsInfo_Marker drop constraint FK81D8C294EFE62333 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE14FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE1BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE19F65E72B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE16D2CE418 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE1E671A9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_AUD" not found; SQL statement:
+alter table Sequence_AUD drop constraint FK39F4313234869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION" not found; SQL statement:
+alter table Sequence_Annotation drop constraint FK1010BA6D1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION" not found; SQL statement:
+alter table Sequence_Annotation drop constraint FK1010BA6DD57FFDD5 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER" not found; SQL statement:
+alter table Sequence_Marker drop constraint FK3D22B278777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER" not found; SQL statement:
+alter table Sequence_Marker drop constraint FK3D22B278D57FFDD5 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE" not found; SQL statement:
+alter table Sequence_Reference drop constraint FK6944904D1DDDC219 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE" not found; SQL statement:
+alter table Sequence_Reference drop constraint FK6944904DD57FFDD5 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1EBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E3DA462D5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1ED320A65F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1EE0EBCFFE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E55DDFE96 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E48BD1F55 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREADALIGNMENT" not found; SQL statement:
+alter table SingleReadAlignment drop constraint FKE50A79654FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREADALIGNMENT" not found; SQL statement:
+alter table SingleReadAlignment drop constraint FKE50A7965BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREADALIGNMENT" not found; SQL statement:
+alter table SingleReadAlignment drop constraint FKE50A7965ECE53A6A [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREADALIGNMENT" not found; SQL statement:
+alter table SingleReadAlignment drop constraint FKE50A79653A5A5E15 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREADALIGNMENT_AUD" not found; SQL statement:
+alter table SingleReadAlignment_AUD drop constraint FKFEE16CB634869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_AUD" not found; SQL statement:
+alter table SingleRead_AUD drop constraint FKA323B8EF34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION" not found; SQL statement:
+alter table SingleRead_Annotation drop constraint FK33E974101E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION" not found; SQL statement:
+alter table SingleRead_Annotation drop constraint FK33E974103A5A5E15 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER" not found; SQL statement:
+alter table SingleRead_Marker drop constraint FKCF47B59B777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER" not found; SQL statement:
+alter table SingleRead_Marker drop constraint FKCF47B59B3A5A5E15 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32724FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272F53E6AFA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32728C35BD07 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272E35D77A3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272EB62BE9A [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272156CF96 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272C8505DB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32727CC340C5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA327295CC5995 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32724FF2F98B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272F95F225A [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272DADF76EA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_AUD drop constraint FKF3D3D74334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation drop constraint FK365E4F3C1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation drop constraint FK365E4F3C3B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit drop constraint FK7E3A1D8632D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit drop constraint FK7E3A1D863B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent drop constraint FK20132036BD59A1AD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent drop constraint FK2013203654C216AA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension drop constraint FKE03B8292927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension drop constraint FKE03B82923B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_IDENTIFIER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Identifier drop constraint FK329710B6E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_IDENTIFIER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Identifier drop constraint FK329710B63B8A5ABA [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Identifier_AUD drop constraint FKFABFF38734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA9316CD55E0D6 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA93168028C309 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA93163B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker drop constraint FK8E6106C7777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker drop constraint FK8E6106C73B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase drop constraint FKCA7F794A3A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase drop constraint FKCA7F794A3B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo drop constraint FK415EFB32C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo drop constraint FK415EFB323B8A5ABA [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BBBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB9D97028B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB682A4E4B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_AUD" not found; SQL statement:
+alter table StateData_AUD drop constraint FKDA6A700C34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE" not found; SQL statement:
+alter table StateData_DefinedTermBase drop constraint FK107321E2F4E35BCD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE" not found; SQL statement:
+alter table StateData_DefinedTermBase drop constraint FK107321E28E7BF9AB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2ADF05D08D4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2AD9682414B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2AD8E7BF9AB [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE02904FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE0290BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE029084A26F69 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE02904C428112 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_AUD" not found; SQL statement:
+alter table StatisticalMeasurementValue_AUD drop constraint FKBB16686134869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase drop constraint FK686C42B7F4E35BCD [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase drop constraint FK686C42B75C9F4F2B [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB34FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3AEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB34BAC703F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3F8991B9D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB380924EEC [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_AUD" not found; SQL statement:
+alter table SynonymRelationship_AUD drop constraint FK8AEBCA0434869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table SynonymRelationship_Annotation drop constraint FKF494F15B1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table SynonymRelationship_Annotation drop constraint FKF494F15B260A8379 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER" not found; SQL statement:
+alter table SynonymRelationship_Marker drop constraint FK7A439066777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER" not found; SQL statement:
+alter table SynonymRelationship_Marker drop constraint FK7A439066260A8379 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49BBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B8492378F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B74FED214 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B7C7B5AED [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_AUD" not found; SQL statement:
+alter table TaxonBase_AUD drop constraint FK37041CEC34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonBase_Annotation drop constraint FK41ED09731E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonBase_Annotation drop constraint FK41ED09739C9D39 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT" not found; SQL statement:
+alter table TaxonBase_Credit drop constraint FK4CB48B3D32D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT" not found; SQL statement:
+alter table TaxonBase_Credit drop constraint FK4CB48B3D9C9D39 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION" not found; SQL statement:
+alter table TaxonBase_Extension drop constraint FKF961257B927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION" not found; SQL statement:
+alter table TaxonBase_Extension drop constraint FKF961257B9C9D39 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonBase_Identifier drop constraint FK3E25CAEDE12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonBase_Identifier drop constraint FK3E25CAED9C9D39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table TaxonBase_Identifier_AUD drop constraint FKCF68BA3E34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER" not found; SQL statement:
+alter table TaxonBase_Marker drop constraint FK5CDB747E777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER" not found; SQL statement:
+alter table TaxonBase_Marker drop constraint FK5CDB747E9C9D39 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase drop constraint FKFB680C813A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase drop constraint FKFB680C819C9D39 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonBase_RightsInfo drop constraint FK4CEDB569C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonBase_RightsInfo drop constraint FK4CEDB5699C9D39 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC02BEBA58D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC028459272 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC086C86FE0 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C64FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6BFEAE500 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6617E62B3 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6D7BE55A0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6FBFA5597 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C681F5DBB0 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6503B46C4 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C63357BF63 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_AUD drop constraint FK5CA2CB9734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonNameBase_Annotation drop constraint FK9E7794681E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonNameBase_Annotation drop constraint FK9E7794688C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT" not found; SQL statement:
+alter table TaxonNameBase_Credit drop constraint FK29BCD8B232D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT" not found; SQL statement:
+alter table TaxonNameBase_Credit drop constraint FK29BCD8B28C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION" not found; SQL statement:
+alter table TaxonNameBase_Extension drop constraint FKC28EE7E6927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION" not found; SQL statement:
+alter table TaxonNameBase_Extension drop constraint FKC28EE7E68C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonNameBase_Identifier drop constraint FK9AB055E2E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonNameBase_Identifier drop constraint FK9AB055E28C85CF94 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table TaxonNameBase_Identifier_AUD drop constraint FK7D1AC2B334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER" not found; SQL statement:
+alter table TaxonNameBase_Marker drop constraint FK39E3C1F3777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER" not found; SQL statement:
+alter table TaxonNameBase_Marker drop constraint FK39E3C1F38C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus drop constraint FK560BA7926615E90D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus drop constraint FK560BA7928C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase drop constraint FKF746D2763A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase drop constraint FKF746D2768C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo drop constraint FKA978405EC13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo drop constraint FKA978405E8C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase drop constraint FKC0D6BBB5C7DF530C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase drop constraint FKC0D6BBB58C85CF94 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC84A3CE1B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC39DB2DFB [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC381381B5 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCCC05993E [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCDE9A3E39 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation drop constraint FK28D12BB54FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation drop constraint FK28D12BB5BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation drop constraint FK28D12BB58EB3A8A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation drop constraint FK28D12BB5927D8399 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation drop constraint FK28D12BB5E67FC44F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_AUD" not found; SQL statement:
+alter table TaxonNodeAgentRelation_AUD drop constraint FKC066770634869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_ANNOTATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation_Annotation drop constraint FK7CEFFE191E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_ANNOTATION" not found; SQL statement:
+alter table TaxonNodeAgentRelation_Annotation drop constraint FK7CEFFE193F9CAA9B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonNodeAgentRelation_Annotation_AUD drop constraint FK6A4D776A34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_MARKER" not found; SQL statement:
+alter table TaxonNodeAgentRelation_Marker drop constraint FKE92EAC24777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_MARKER" not found; SQL statement:
+alter table TaxonNodeAgentRelation_Marker drop constraint FKE92EAC243F9CAA9B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODEAGENTRELATION_MARKER_AUD" not found; SQL statement:
+alter table TaxonNodeAgentRelation_Marker_AUD drop constraint FK1C2027F534869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_AUD" not found; SQL statement:
+alter table TaxonNode_AUD drop constraint FKE090C39D34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION" not found; SQL statement:
+alter table TaxonNode_Annotation drop constraint FKD8A9A9A21E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION" not found; SQL statement:
+alter table TaxonNode_Annotation drop constraint FKD8A9A9A2927D8399 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER" not found; SQL statement:
+alter table TaxonNode_Marker drop constraint FK395842D777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER" not found; SQL statement:
+alter table TaxonNode_Marker drop constraint FK395842D927D8399 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA024FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02AEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02E71EF6CE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02F8991B9D [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02F11BD77B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_AUD" not found; SQL statement:
+alter table TaxonRelationship_AUD drop constraint FKA0DE16D334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table TaxonRelationship_Annotation drop constraint FK82C86DAC1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table TaxonRelationship_Annotation drop constraint FK82C86DAC2BD180D9 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER" not found; SQL statement:
+alter table TaxonRelationship_Marker drop constraint FK69FBDD37777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER" not found; SQL statement:
+alter table TaxonRelationship_Marker drop constraint FK69FBDD372BD180D9 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY" not found; SQL statement:
+alter table TermVocabulary drop constraint FK487AA6924FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY" not found; SQL statement:
+alter table TermVocabulary drop constraint FK487AA692BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_AUD" not found; SQL statement:
+alter table TermVocabulary_AUD drop constraint FKA6ED3B6334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION" not found; SQL statement:
+alter table TermVocabulary_Annotation drop constraint FK76D2071C1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION" not found; SQL statement:
+alter table TermVocabulary_Annotation drop constraint FK76D2071C258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT" not found; SQL statement:
+alter table TermVocabulary_Credit drop constraint FK7604C56632D1B9F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT" not found; SQL statement:
+alter table TermVocabulary_Credit drop constraint FK7604C566258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION" not found; SQL statement:
+alter table TermVocabulary_Extension drop constraint FKA8814EB2927DE9DF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION" not found; SQL statement:
+alter table TermVocabulary_Extension drop constraint FKA8814EB2258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_IDENTIFIER" not found; SQL statement:
+alter table TermVocabulary_Identifier drop constraint FK730AC896E12073FF [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_IDENTIFIER" not found; SQL statement:
+alter table TermVocabulary_Identifier drop constraint FK730AC896258E060 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_IDENTIFIER_AUD" not found; SQL statement:
+alter table TermVocabulary_Identifier_AUD drop constraint FKE8D4BB6734869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER" not found; SQL statement:
+alter table TermVocabulary_Marker drop constraint FK862BAEA7777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER" not found; SQL statement:
+alter table TermVocabulary_Marker drop constraint FK862BAEA7258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase drop constraint FK8F2D512A3A6735D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase drop constraint FK8F2D512A258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION" not found; SQL statement:
+alter table TermVocabulary_Representation drop constraint FKA408B63AB31C4747 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION" not found; SQL statement:
+alter table TermVocabulary_Representation drop constraint FKA408B63A258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO" not found; SQL statement:
+alter table TermVocabulary_RightsInfo drop constraint FK81D2B312C13F7B21 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO" not found; SQL statement:
+alter table TermVocabulary_RightsInfo drop constraint FK81D2B312258E060 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE4FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEBC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEAEB7F3BE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE9E3ED08 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE4CB0F315 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEFBFA41D9 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_AUD" not found; SQL statement:
+alter table TypeDesignationBase_AUD drop constraint FK243C037F34869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION" not found; SQL statement:
+alter table TypeDesignationBase_Annotation drop constraint FK4D7327801E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION" not found; SQL statement:
+alter table TypeDesignationBase_Annotation drop constraint FK4D73278044E9E6D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER" not found; SQL statement:
+alter table TypeDesignationBase_Marker drop constraint FKB914A10B777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER" not found; SQL statement:
+alter table TypeDesignationBase_Marker drop constraint FKB914A10B44E9E6D4 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT" not found; SQL statement:
+alter table UserAccount drop constraint FKB3F13C24FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT" not found; SQL statement:
+alter table UserAccount drop constraint FKB3F13C2AAC1B820 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_AUD" not found; SQL statement:
+alter table UserAccount_AUD drop constraint FK6A57909334869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table UserAccount_GrantedAuthorityImpl drop constraint FKFD724D851857F6C2 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table UserAccount_GrantedAuthorityImpl drop constraint FKFD724D855EA5DD89 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_PERMISSIONGROUP" not found; SQL statement:
+alter table UserAccount_PermissionGroup drop constraint FK812DE753DA9DCB5F [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_PERMISSIONGROUP" not found; SQL statement:
+alter table UserAccount_PermissionGroup drop constraint FK812DE753887E3D12 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B914FF2DB2C [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B91BC5DA539 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B9123DB7F04 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_AUD" not found; SQL statement:
+alter table WorkingSet_AUD drop constraint FK628F58E234869AAE [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION" not found; SQL statement:
+alter table WorkingSet_Annotation drop constraint FKCBBA8CBD1E403E0B [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION" not found; SQL statement:
+alter table WorkingSet_Annotation drop constraint FKCBBA8CBDBBD2C869 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE" not found; SQL statement:
+alter table WorkingSet_DescriptionBase drop constraint FK731CC81F33B8A841 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE" not found; SQL statement:
+alter table WorkingSet_DescriptionBase drop constraint FK731CC81FBBD2C869 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER" not found; SQL statement:
+alter table WorkingSet_Marker drop constraint FK9CB22CC8777265A1 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER" not found; SQL statement:
+alter table WorkingSet_Marker drop constraint FK9CB22CC8BBD2C869 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION" not found; SQL statement:
+alter table WorkingSet_Representation drop constraint FKA003835BB31C4747 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION" not found; SQL statement:
+alter table WorkingSet_Representation drop constraint FKA003835BBBD2C869 [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE" not found; SQL statement:
+alter table WorkingSet_TaxonBase drop constraint FK34EB896D7C3D0017 [42102-170]
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE" not found; SQL statement:
+alter table WorkingSet_TaxonBase drop constraint FK34EB896DB4555A9A [42102-170]
+06-15 17:38:36 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]
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table AmplificationResult 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DnaQuality 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table EntityConstraintViolation 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table EntityValidation 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:36 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table GrantedAuthorityImpl 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Identifier 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table IntextReference 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PermissionGroup 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SingleReadAlignment 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonNodeAgentRelation 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table UserAccount 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+06-15 17:38:37 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:108)
+ 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:108)
+ 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:71)
+ 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:264)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:204)
+ at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:148)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:151)
+ at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:99)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
--- /dev/null
+### ************ APPENDER ***********************************###
+
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+
+### ************* LOG LEVELS *********************************###
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+### levels: error, warn, debug, info
+log4j.rootLogger=WARN, stdout
+
+### set directory-specific levels below
+#log4j.logger.eu.etaxonomy.taxeditor = INFO
\ No newline at end of file
--- /dev/null
+httpPort=9090
+stopPort=9191
+stopKey=jetty-cdm-server
+user=admin
+password=00000
--- /dev/null
+#
+# NOTE: this is the unitils.properties file for the cdmlib-persistence module
+# a separate unitils.properties exists for cdmlib-io and for cdmlib-services
+#
+#
+# the list of all properties is found in
+# http://unitils.org/unitils-default.properties
+#
+
+### Unitils Modules ###
+# List of modules that is loaded. Overloading this list is normally not useful, unless you want to add a custom
+# module. Disabling a module can be performed by setting unitils.module.<modulename>.enabled to false.
+# If a module's specific dependencies are not found (e.g. hibernate is not in you classpath), this module is not loaded,
+# even if it is in this list and the enabled property is set to true. It's therefore not strictly necessary to disable
+# any of these modules.
+#DEFAULT: unitils.modules=database,dbunit,hibernate,mock,easymock,inject,spring,jpa
+unitils.module.easymock.enabled=false
+unitils.module.mock.enabled=false
+
+
+### Database ###
+#
+# Name or path of the user specific properties file. This file should contain the necessary parameters to connect to the
+# developer's own unit test schema. It is recommended to override the name of this file in the project specific properties
+# file, to include the name of the project. The system will try to find this file in the classpath, the user home folder
+# (recommended) or the local filesystem.
+#
+unitils.configuration.localFileName=unitils-cdmlib-local.properties
+
+# H2 #
+#
+database.driverClassName=org.h2.Driver
+#database.url=jdbc:h2:file:./src/main/resources/h2/cdmTest;AUTO_SERVER=TRUE
+database.url=jdbc:h2:file:./target/classes/h2/cdmTest;AUTO_SERVER=TRUE
+database.dialect=h2
+database.userName=sa
+database.password=
+database.schemaNames=PUBLIC
+org.dbunit.dataset.datatype.IDataTypeFactory.implClassName.h2=org.dbunit.ext.h2.H2DataTypeFactory
+org.unitils.core.dbsupport.DbSupport.implClassName.h2=eu.etaxonomy.taxeditor.util.H2DbSupport
+database.storedIndentifierCase.h2=auto
+database.identifierQuoteString.h2=auto
+
+
+#### Transaction mode ###
+#
+# If set to commit or rollback, each test is run in a transaction,
+# which is committed or rolled back after the test is finished.
+# Since we have many tests with incomplete data these tests would be
+# failing during commit so it is better use rollback as default
+# and set commit for individual test where necessary
+DatabaseModule.Transactional.value.default=rollback
+
+# org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager is used by default:
+#
+# Implements transactions for unit tests, by delegating to a spring PlatformTransactionManager.
+# The concrete implementation of PlatformTransactionManager that is used depends on the test class.
+# If a custom PlatformTransactionManager was configured in a spring ApplicationContext, this one is used.
+# If not, a suitable subclass of PlatformTransactionManager is created, depending on the configuration
+# of a test. E.g. if some ORM persistence unit was configured on the test, a PlatformTransactionManager
+# that can offer transactional behavior for such a persistence unit is used.
+# If no such configuration is found, a DataSourceTransactionManager is used.
+#
+# org.unitils.database.transaction.UnitilsTransactionManager.implClassName=org.unitils.database.transaction.impl.SpringTransactionManager
+
+### Hibernate ###
+#
+HibernateModule.configuration.implClassName=org.hibernate.cfg.Configuration
+
<name>EDIT Taxonomic Editor Product</name>
<description>The EDIT Taxonomic Desktop Editor</description>
<url>http://wp5.e-taxonomy.eu/taxeditor</url>
- <properties>
+ <properties>
<product.id>eu.etaxonomy.taxeditor.product</product.id>
</properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-p2-director-plugin</artifactId>
- <version>${tycho.version}</version>
- <executions>
- <execution>
- <id>materialize-products</id>
- <goals>
- <goal>materialize-products</goal>
- </goals>
- </execution>
- <execution>
- <id>archive-products</id>
- <goals>
- <goal>archive-products</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <products>
- <product>
- <id>${product.id}</id>
- <rootFolder>EDIT Taxonomic Editor</rootFolder>
- </product>
- </products>
- </configuration>
- </plugin>
- </plugins>
- </build>
+
<profiles>
+ <profile>
+ <id>buildProducts</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-p2-director-plugin</artifactId>
+ <version>${tycho.version}</version>
+ <executions>
+ <execution>
+ <id>materialize-products</id>
+ <goals>
+ <goal>materialize-products</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>archive-products</id>
+ <goals>
+ <goal>archive-products</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <products>
+ <product>
+ <id>${product.id}</id>
+ <rootFolder>EDIT Taxonomic Editor</rootFolder>
+ </product>
+ </products>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
<profile>
<id>signJars</id>
<build>
<tycho.version>0.22.0</tycho.version>
<taxeditor.version>3.6.1-SNAPSHOT</taxeditor.version>
<update.dir>snapshot</update.dir>
+ <unitils.version>3.4.2</unitils.version>
</properties>
<modules>
<module>eu.etaxonomy.taxeditor.cdmlib</module>
</url>
</repository>
</distributionManagement>
+
</project>