ref #100009 re-attach mchange-commons-java to enable datasource dialogue finish butto...
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 25 Jul 2022 16:25:58 +0000 (18:25 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 25 Jul 2022 16:25:58 +0000 (18:25 +0200)
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/pom.xml
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceWizard.java

index e95fd2591a11d06f70616e1576f7ab686d556a4e..45f5b8c9c3bff1cb2ed6122263dd38fa3d98649d 100644 (file)
@@ -64,6 +64,7 @@ bin.includes = META-INF/,\
                lib/json-lib-2.4-jdk15.jar,\
                lib/slf4j-api-1.7.36.jar,\
                lib/postgresql-42.3.6.jar,\
+               lib/mchange-commons-java-0.2.11.jar,\
                lib/cdmlib-cache-5.32.0-SNAPSHOT.jar,\
                lib/org.swtchart_0.10.0.v20160212.jar,\
                lib/commons-math3-3.6.1.jar,\
index c4aab14a8b568e2be14ecb71beca542b282b7a82..6fc71e954b9a8545d5f35608e9fd923b3d588ccd 100644 (file)
       <version>4.4</version>\r
     </dependency>\r
     \r
+    <!-- used by taxeditor.local -->\r
+    <dependency>\r
+      <!-- used by datasource dialogue finish button  -->\r
+      <groupId>com.mchange</groupId>\r
+      <artifactId>mchange-commons-java</artifactId>\r
+      <version>0.2.11</version>\r
+    </dependency>\r
+    \r
     <!-- needed by taxeditor.test during test run, maybe move to test package only -->\r
     <dependency>\r
       <!-- when using bytebuddy for hibernate -->\r
index dfbd6fc61f0389a17ec78ae99766a930528ccf57..5aa6a621856d3d3f1abcf3d8e0639219f2083cf7 100644 (file)
@@ -13,6 +13,8 @@ import org.eclipse.jface.wizard.Wizard;
 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
  * <p>CdmDataSourceWizard class.</p>
@@ -88,32 +90,41 @@ public class CdmDataSourceWizard extends Wizard {
 
        @Override
        public boolean performFinish() {
-               ICdmDataSource dataSource;
-               switch(mode) {
-               case EDIT:
-                       dataSource = dataSourcePage.getUpdatedDataSource();
-                       if(dataSourceName.equals(dataSource.getName())) {
-                               CdmDataSourceRepository.update(dataSourceName, dataSource);
-                       } else {
-                               CdmDataSourceRepository.replace(dataSourceName, dataSource);
-                       }
-                       return true;
-               case CLONE:
-                       dataSource = dataSourcePage.getUpdatedDataSource();
-                       CdmDataSourceRepository.save(dataSourcePage.getDataSourceName(), dataSource);
-                       return true;
-               case CREATE:
-                       if(dataSourceSelectionPage.getCredentialsWizardPage() != null){
-                               CdmDataSourceCredentialsWizardPage credentialsWizardPage = dataSourceSelectionPage.getCredentialsWizardPage();
-                               CdmDataSourceRepository.save(dataSourceSelectionPage.getDataSourceName(), credentialsWizardPage.getUpdatedDataSource());
-                               return true;
-                       } else {
-                               throw new IllegalStateException("Expected a datasource credentials page to exist");
-                       }
-               default:
-                       return false;
-               }
-
+               try {
+            ICdmDataSource dataSource;
+            switch(mode) {
+            case EDIT:
+               dataSource = dataSourcePage.getUpdatedDataSource();
+               if(dataSourceName.equals(dataSource.getName())) {
+                       CdmDataSourceRepository.update(dataSourceName, dataSource);
+               } else {
+                       CdmDataSourceRepository.replace(dataSourceName, dataSource);
+               }
+               return true;
+            case CLONE:
+               dataSource = dataSourcePage.getUpdatedDataSource();
+               CdmDataSourceRepository.save(dataSourcePage.getDataSourceName(), dataSource);
+               return true;
+            case CREATE:
+               if(dataSourceSelectionPage.getCredentialsWizardPage() != null){
+                       CdmDataSourceCredentialsWizardPage credentialsWizardPage = dataSourceSelectionPage.getCredentialsWizardPage();
+                       CdmDataSourceRepository.save(dataSourceSelectionPage.getDataSourceName(), credentialsWizardPage.getUpdatedDataSource());
+                       return true;
+               } else {
+                       throw new IllegalStateException("Expected a datasource credentials page to exist");
+               }
+            default:
+               return false;
+            }
+        } catch (Throwable e) {
+            MessagingUtils.errorDialog("Error when persisting change",
+                    this,
+                    e.getMessage(),
+                    TaxeditorStorePlugin.PLUGIN_ID,
+                    e,
+                    true);
+            return false;
+        }
        }
 
        @Override