ref #6535 fix calls to version number from other places
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 8 Jun 2017 11:15:29 +0000 (13:15 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 8 Jun 2017 11:15:58 +0000 (13:15 +0200)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/CdmMetaDataPropertyName.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/CdmDataSourceBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/WrappedCdmDataSource.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/opt/config/DataSourceConfigurer.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DatabaseServiceHibernateImpl.java

index d214bd87022ac81806a30f719c3406c4b03003cc..29eb487f694c51456f3797343a094e959f51f0a2 100644 (file)
@@ -15,24 +15,26 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.TermType;
 
 public enum CdmMetaDataPropertyName implements IKeyTerm{
-       DB_SCHEMA_VERSION("Schema Version","SCHEMA_VERSION"),
-       TERMS_VERSION("Term Version","TERM_VERSION"),
-       DB_CREATE_DATE("Created","CREATED"),
-       DB_CREATE_NOTE("Create Note","CREATE_NOTE"),
-       INSTANCE_NAME("CDM Instance Name","INST_NAME"),
-       INSTANCE_ID("CDM Instance ID","INST_ID");
+       DB_SCHEMA_VERSION("Schema Version","SCHEMA_VERSION", 0),
+       TERMS_VERSION("Term Version","TERM_VERSION", 1),
+       DB_CREATE_DATE("Created","CREATED", 2),
+       DB_CREATE_NOTE("Create Note","CREATE_NOTE", 3),
+       INSTANCE_NAME("CDM Instance Name","INST_NAME", 4),
+       INSTANCE_ID("CDM Instance ID","INST_ID", 5);
 
        // **************** END ENUM **********************/
 
     private String label;
     private String key;
+    private int oldPropertyId;
 
     @SuppressWarnings("unused")
     private static final Logger logger = Logger.getLogger(TermType.class);
 
-    private CdmMetaDataPropertyName(String label, String key){
+    private CdmMetaDataPropertyName(String label, String key, int oldPropertyId){
         this.label = label;
         this.key = key;
+        this.oldPropertyId = oldPropertyId;
     }
 
 //**************** METHODS ****************************/
@@ -43,6 +45,18 @@ public enum CdmMetaDataPropertyName implements IKeyTerm{
                 this.key);
     }
 
+    /**
+     * SQL query with propertyName still being an int attribute
+     * @return
+     */
+    public String getSqlQueryOld(){
+        return String.format(
+                "SELECT value FROM CdmMetaData WHERE propertyname=%d",
+                this.oldPropertyId);
+    }
+
+
+
     /**
      * {@inheritDoc}
      */
@@ -77,10 +91,5 @@ public enum CdmMetaDataPropertyName implements IKeyTerm{
         return null;
     }
 
-// *************************** DELEGATE **************************************/
-
- public static void main(String[] var){
-     System.out.println(DB_SCHEMA_VERSION.getSqlQuery());
- }
 
 }
\ No newline at end of file
index d1665551f1c2af04b6c7b5227432e5827301992d..6d455e85157ffee603958698c335ccdf8d5eaa8a 100644 (file)
@@ -155,7 +155,11 @@ abstract class CdmDataSourceBase extends CdmSource implements ICdmDataSource  {
                try {\r
                        return (String)getSingleValue(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQuery());\r
                } catch (SQLException e) {\r
-                       throw new CdmSourceException(e.getMessage());\r
+                   try {\r
+                   return (String)getSingleValue(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQueryOld());\r
+               } catch (SQLException e1) {\r
+                   throw new CdmSourceException(e1.getMessage());\r
+               }\r
                }\r
        }\r
 \r
@@ -280,14 +284,18 @@ abstract class CdmDataSourceBase extends CdmSource implements ICdmDataSource  {
 \r
     @Override\r
     public Map<CdmMetaDataPropertyName, String> getMetaDataMap() throws CdmSourceException {\r
-               Map<CdmMetaDataPropertyName, String> cdmMetaDataMap = new HashMap<CdmMetaDataPropertyName, String>();\r
+               Map<CdmMetaDataPropertyName, String> cdmMetaDataMap = new HashMap<>();\r
 \r
                for(CdmMetaDataPropertyName mdpn : CdmMetaDataPropertyName.values()) {\r
                        String value = null;\r
                        try {\r
                                value = (String)getSingleValue(mdpn.getSqlQuery());\r
-                       } catch (SQLException e) {\r
-                               throw new CdmSourceException(this.toString(), e.getMessage());\r
+                       } catch (SQLException e1) {\r
+                           try {\r
+                       value = (String)getSingleValue(mdpn.getSqlQueryOld());\r
+                   } catch (SQLException e) {\r
+                       throw new CdmSourceException(this.toString(), e.getMessage());\r
+                   }\r
                        }\r
                        if(value != null) {\r
                                cdmMetaDataMap.put(mdpn, value);\r
index 940f38734956740ee85673cece5ac4c524011904..fa518651c6fe93835761177e83e7d2963d2a99eb 100644 (file)
@@ -152,8 +152,12 @@ public class WrappedCdmDataSource implements ICdmDataSource {
        public String getDbSchemaVersion() throws CdmSourceException {
                try {
                        return (String)getSingleValue(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQuery());
-               } catch (SQLException e) {
-                       throw new CdmSourceException(e.getMessage());
+               } catch (SQLException e1) {
+                   try {
+                   return (String)getSingleValue(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQueryOld());
+               } catch (SQLException e) {
+                   throw new CdmSourceException(e.getMessage());
+               }
                }
        }
 
index 716662a03c1b52742a3022091cba83c68e0e6a9d..ca8c6f3f38730fe75708b0e2061a59a3438b2e6e 100644 (file)
@@ -167,7 +167,16 @@ public class DataSourceConfigurer extends AbstractWebApplicationConfigurer {
             }
             ResultSet tables = connection.getMetaData().getTables(connection.getCatalog(), null, metadataTableName, null);
             if(tables.first()){
-                ResultSet resultSet = connection.createStatement().executeQuery(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQuery());
+                ResultSet resultSet;
+                try {
+                    resultSet = connection.createStatement().executeQuery(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQuery());
+                } catch (Exception e) {
+                    try {
+                        resultSet = connection.createStatement().executeQuery(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQueryOld());
+                    } catch (Exception e1) {
+                        throw e1;
+                    }
+                }
                 String version = null;
                 if(resultSet.next()){
                     version = resultSet.getString(1);
index 24542aedf730b9d1118433c2bafe57b10f04a8e4..14a6907dfb333be592fc0782c833755b164a89f4 100644 (file)
@@ -134,8 +134,12 @@ public class DatabaseServiceHibernateImpl  implements IDatabaseService, Applicat
        public  String getDbSchemaVersion() throws CdmSourceException  {
                try {
                        return (String)getSingleValue(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQuery());
-               } catch (SQLException e) {
-                       throw new CdmSourceException(e.getMessage());
+               } catch (SQLException e1) {
+                   try {
+                   return (String)getSingleValue(CdmMetaDataPropertyName.DB_SCHEMA_VERSION.getSqlQueryOld());
+               } catch (SQLException e) {
+                   throw new CdmSourceException(e.getMessage());
+               }
                }
        }
 
@@ -193,14 +197,18 @@ public class DatabaseServiceHibernateImpl  implements IDatabaseService, Applicat
 
        @Override
        public Map<CdmMetaDataPropertyName, String> getCdmMetadataMap() throws CdmSourceException {
-               Map<CdmMetaDataPropertyName, String> cdmMetaDataMap = new HashMap<CdmMetaDataPropertyName, String>();
+               Map<CdmMetaDataPropertyName, String> cdmMetaDataMap = new HashMap<>();
 
                for(CdmMetaDataPropertyName mdpn : CdmMetaDataPropertyName.values()){
                        String value = null;
                        try {
                                value = (String)getSingleValue(mdpn.getSqlQuery());
-                       } catch (SQLException e) {
-                               throw new CdmSourceException(e.getMessage());
+                       } catch (SQLException e1) {
+                           try {
+                       value = (String)getSingleValue(mdpn.getSqlQueryOld());
+                   } catch (SQLException e) {
+                       throw new CdmSourceException(e.getMessage());
+                   }
                        }
                        if(value != null) {
                                cdmMetaDataMap.put(mdpn, value);