You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2020/06/15 14:52:50 UTC

[airavata] branch AIRAVATA-3326-improved-database-migration-script-creation updated: AIRAVATA-3326 Remove unused code

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch AIRAVATA-3326-improved-database-migration-script-creation
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/AIRAVATA-3326-improved-database-migration-script-creation by this push:
     new bff2ee2  AIRAVATA-3326 Remove unused code
bff2ee2 is described below

commit bff2ee2bba90cbfe97f9d3b4eda3f8924a04f5fa
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Mon Jun 15 10:49:56 2020 -0400

    AIRAVATA-3326 Remove unused code
---
 .../org/apache/airavata/common/utils/JPAUtils.java | 134 +--------------------
 .../core/utils/JPAUtil/AppCatalogJPAUtils.java     |   2 +-
 .../core/utils/JPAUtil/ExpCatalogJPAUtils.java     |   2 +-
 .../core/utils/JPAUtil/RepCatalogJPAUtils.java     |   2 +-
 .../core/utils/migration/MappingToolRunner.java    |  15 +--
 .../utils/migration/MigrationSchemaGenerator.java  |  16 +--
 6 files changed, 15 insertions(+), 156 deletions(-)

diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/JPAUtils.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/JPAUtils.java
index c85ce94..6ec2b67 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/JPAUtils.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/JPAUtils.java
@@ -3,24 +3,10 @@ package org.apache.airavata.common.utils;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.function.Supplier;
 
-import javax.persistence.Cache;
-// import javax.persistence.EntityGraph;
-import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
-import javax.persistence.PersistenceUnitUtil;
-// import javax.persistence.Query;
-// import javax.persistence.SynchronizationType;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.metamodel.Metamodel;
 
-import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
-import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
-import org.apache.openjpa.jdbc.meta.MappingTool;
-import org.apache.openjpa.lib.util.Options;
-import org.apache.openjpa.persistence.ArgumentException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -29,122 +15,6 @@ import org.slf4j.LoggerFactory;
  */
 public class JPAUtils {
 
-    private static class EntityManagerFactoryWrapper implements EntityManagerFactory {
-
-        private final EntityManagerFactory factory;
-        private final JDBCConfig jdbcConfig;
-
-        EntityManagerFactoryWrapper(EntityManagerFactory factory, JDBCConfig jdbcConfig) {
-            this.factory = factory;
-            this.jdbcConfig = jdbcConfig;
-        }
-
-        @Override
-        public EntityManager createEntityManager() {
-            return wrapCreateEntityManager(() -> this.factory.createEntityManager());
-        }
-
-        @Override
-        public EntityManager createEntityManager(Map map) {
-            return wrapCreateEntityManager(() -> this.factory.createEntityManager(map));
-        }
-
-        // @Override
-        // public EntityManager createEntityManager(SynchronizationType synchronizationType) {
-        //     return wrapCreateEntityManager(() -> this.factory.createEntityManager(synchronizationType));
-        // }
-
-        // @Override
-        // public EntityManager createEntityManager(SynchronizationType synchronizationType, Map map) {
-        //     return wrapCreateEntityManager(() -> this.factory.createEntityManager(synchronizationType, map));
-        // }
-
-        private EntityManager wrapCreateEntityManager(Supplier<EntityManager> entityManagerSupplier) {
-
-            try {
-                return entityManagerSupplier.get();
-            } catch (ArgumentException e) {
-
-                Map<String, String> finalProperties = new HashMap<>(JPAUtils.DEFAULT_ENTITY_MANAGER_FACTORY_PROPERTIES);
-                finalProperties.putAll(JPAUtils.createConnectionProperties(this.jdbcConfig));
-                JDBCConfiguration jdbcConfiguration = new JDBCConfigurationImpl();
-                jdbcConfiguration.fromProperties(finalProperties);
-
-                Options options = new Options();
-                options.put("sqlFile", "migration.sql");
-                // If you want to generate the entire schema instead of just what is
-                // needed to bring the database up to date, use schemaAction=build
-                // options.put("schemaAction", "build");
-                options.put("foreignKeys", "true");
-                options.put("indexes", "true");
-                options.put("primaryKeys", "true");
-                try {
-                    MappingTool.run(jdbcConfiguration, new String[] {}, options, null);
-                } catch (Exception mappingToolEx) {
-                    logger.error("Failed to run MappingTool", mappingToolEx);
-                    throw new RuntimeException(
-                            "Failed to get EntityManager, then failed to run MappingTool to generate migration script",
-                            e);
-                }
-                throw new RuntimeException("Failed to get EntityManager, but successfully executed "
-                        + "MappingTool to generate migration script (to file named "
-                        + "migration.sql) in case the error was caused by the database "
-                        + "schema being out of date with the mappings", e);
-            }
-        }
-
-        @Override
-        public CriteriaBuilder getCriteriaBuilder() {
-            return this.factory.getCriteriaBuilder();
-        }
-
-        @Override
-        public Metamodel getMetamodel() {
-            return this.factory.getMetamodel();
-        }
-
-        @Override
-        public boolean isOpen() {
-            return this.factory.isOpen();
-        }
-
-        @Override
-        public void close() {
-            this.factory.close();
-        }
-
-        @Override
-        public Map<String, Object> getProperties() {
-            return this.factory.getProperties();
-        }
-
-        @Override
-        public Cache getCache() {
-            return this.factory.getCache();
-        }
-
-        @Override
-        public PersistenceUnitUtil getPersistenceUnitUtil() {
-            return this.factory.getPersistenceUnitUtil();
-        }
-
-        // @Override
-        // public void addNamedQuery(String name, Query query) {
-        //     this.factory.addNamedQuery(name, query);
-        // }
-
-        // @Override
-        // public <T> T unwrap(Class<T> cls) {
-        //     return this.factory.unwrap(cls);
-        // }
-
-        // @Override
-        // public <T> void addNamedEntityGraph(String graphName, EntityGraph<T> entityGraph) {
-        //     this.factory.addNamedEntityGraph(graphName, entityGraph);
-        // }
-
-    }
-
     private final static Logger logger = LoggerFactory.getLogger(JPAUtils.class);
     private final static Map<String, String> DEFAULT_ENTITY_MANAGER_FACTORY_PROPERTIES;
     static {
@@ -193,11 +63,9 @@ public class JPAUtils {
         finalProperties.putAll(createConnectionProperties(jdbcConfig));
         finalProperties.putAll(properties);
         return Persistence.createEntityManagerFactory(persistenceUnitName, finalProperties);
-        // return new EntityManagerFactoryWrapper(
-        //         Persistence.createEntityManagerFactory(persistenceUnitName, finalProperties), jdbcConfig);
     }
 
-    private static Map<String, String> createConnectionProperties(JDBCConfig jdbcConfig) {
+    public static Map<String, String> createConnectionProperties(JDBCConfig jdbcConfig) {
         String connectionProperties = "DriverClassName=" + jdbcConfig.getDriver() + "," + "Url=" + jdbcConfig.getURL()
                 + "?autoReconnect=true," + "Username=" + jdbcConfig.getUser() + "," + "Password="
                 + jdbcConfig.getPassword() + ",validationQuery=" + jdbcConfig.getValidationQuery();
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/AppCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/AppCatalogJPAUtils.java
index 236b095..58dd139 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/AppCatalogJPAUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/AppCatalogJPAUtils.java
@@ -30,7 +30,7 @@ public class AppCatalogJPAUtils {
 
     // TODO: we can rename this back to appcatalog_data once we completely replace
     // the other appcatalog_data persistence context in airavata-registry-core
-    private static final String PERSISTENCE_UNIT_NAME = "appcatalog_data_new";
+    public static final String PERSISTENCE_UNIT_NAME = "appcatalog_data_new";
     private static final JDBCConfig JDBC_CONFIG = new AppCatalogJDBCConfig();
     private static final EntityManagerFactory factory = JPAUtils.getEntityManagerFactory(PERSISTENCE_UNIT_NAME,
             JDBC_CONFIG);
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/ExpCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/ExpCatalogJPAUtils.java
index 6803bfb..bafc872 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/ExpCatalogJPAUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/ExpCatalogJPAUtils.java
@@ -27,7 +27,7 @@ import org.apache.airavata.common.utils.JPAUtils;
 import org.apache.airavata.registry.core.utils.ExpCatalogJDBCConfig;
 
 public class ExpCatalogJPAUtils {
-    private static final String PERSISTENCE_UNIT_NAME = "experiment_data_new";
+    public static final String PERSISTENCE_UNIT_NAME = "experiment_data_new";
     private static final JDBCConfig JDBC_CONFIG = new ExpCatalogJDBCConfig();
     private static final EntityManagerFactory factory = JPAUtils.getEntityManagerFactory(PERSISTENCE_UNIT_NAME, JDBC_CONFIG);
 
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/RepCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/RepCatalogJPAUtils.java
index 4e3b4f0..7b1f9cb 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/RepCatalogJPAUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/JPAUtil/RepCatalogJPAUtils.java
@@ -29,7 +29,7 @@ import org.apache.airavata.registry.core.utils.ReplicaCatalogJDBCConfig;
 public class RepCatalogJPAUtils {
 
     // TODO: we can rename this back to replicacatalog_data once we completely replace the other replicacatalog_data persistence context in airavata-registry-core
-    private static final String PERSISTENCE_UNIT_NAME = "replicacatalog_data_new";
+    public static final String PERSISTENCE_UNIT_NAME = "replicacatalog_data_new";
     private static final JDBCConfig JDBC_CONFIG = new ReplicaCatalogJDBCConfig();
     private static final EntityManagerFactory factory = JPAUtils.getEntityManagerFactory(PERSISTENCE_UNIT_NAME, JDBC_CONFIG);
 
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java
index 3fe32dc..7d509a2 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java
@@ -1,9 +1,7 @@
 package org.apache.airavata.registry.core.utils.migration;
 
-import java.util.Collections;
-import java.util.Map;
-
 import org.apache.airavata.common.utils.JDBCConfig;
+import org.apache.airavata.common.utils.JPAUtils;
 import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
 import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
 import org.apache.openjpa.jdbc.meta.MappingTool;
@@ -22,7 +20,7 @@ public class MappingToolRunner {
     public static void run(JDBCConfig jdbcConfig, String outputFile, String persistenceUnitName, String schemaAction) {
 
         JDBCConfiguration jdbcConfiguration = new JDBCConfigurationImpl();
-        jdbcConfiguration.fromProperties(createConnectionProperties(jdbcConfig));
+        jdbcConfiguration.fromProperties(JPAUtils.createConnectionProperties(jdbcConfig));
         jdbcConfiguration.setConnectionDriverName("org.apache.commons.dbcp.BasicDataSource");
 
         Options options = new Options();
@@ -44,13 +42,4 @@ public class MappingToolRunner {
                     "Failed to run MappingTool to generate migration script", mappingToolEx);
         }
     }
-
-    // TODO: copied from JPAUtils
-    private static Map<String, String> createConnectionProperties(JDBCConfig jdbcConfig) {
-        String connectionProperties = "DriverClassName=" + jdbcConfig.getDriver() + "," + "Url=" + jdbcConfig.getURL()
-                + "?autoReconnect=true," + "Username=" + jdbcConfig.getUser() + "," + "Password="
-                + jdbcConfig.getPassword() + ",validationQuery=" + jdbcConfig.getValidationQuery();
-        logger.debug("Connection properties={}", connectionProperties);
-        return Collections.singletonMap("openjpa.ConnectionProperties", connectionProperties);
-    }
 }
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MigrationSchemaGenerator.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MigrationSchemaGenerator.java
index 93afd29..78d83d4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MigrationSchemaGenerator.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/migration/MigrationSchemaGenerator.java
@@ -1,17 +1,18 @@
 package org.apache.airavata.registry.core.utils.migration;
 
-import org.apache.airavata.common.utils.DBInitializer;
-
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 
 import org.apache.airavata.common.utils.DBInitConfig;
-import org.apache.airavata.common.utils.DerbyUtil;
+import org.apache.airavata.common.utils.DBInitializer;
 import org.apache.airavata.common.utils.JDBCConfig;
 import org.apache.airavata.registry.core.utils.AppCatalogDBInitConfig;
 import org.apache.airavata.registry.core.utils.ExpCatalogDBInitConfig;
 import org.apache.airavata.registry.core.utils.ReplicaCatalogDBInitConfig;
+import org.apache.airavata.registry.core.utils.JPAUtil.AppCatalogJPAUtils;
+import org.apache.airavata.registry.core.utils.JPAUtil.ExpCatalogJPAUtils;
+import org.apache.airavata.registry.core.utils.JPAUtil.RepCatalogJPAUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -19,12 +20,13 @@ public class MigrationSchemaGenerator {
 
     private static final Logger logger = LoggerFactory.getLogger(MigrationSchemaGenerator.class);
 
-    // sharing catalog?
     private enum Database {
-        app_catalog(new AppCatalogDBInitConfig().setDbInitScriptPrefix("appcatalog"), "appcatalog_data_new"),
-        experiment_catalog(new ExpCatalogDBInitConfig().setDbInitScriptPrefix("expcatalog"), "experiment_data_new"),
+        app_catalog(new AppCatalogDBInitConfig().setDbInitScriptPrefix("appcatalog"),
+                AppCatalogJPAUtils.PERSISTENCE_UNIT_NAME),
+        experiment_catalog(new ExpCatalogDBInitConfig().setDbInitScriptPrefix("expcatalog"),
+                ExpCatalogJPAUtils.PERSISTENCE_UNIT_NAME),
         replica_catalog(new ReplicaCatalogDBInitConfig().setDbInitScriptPrefix("replicacatalog"),
-                "replicacatalog_data_new");
+                RepCatalogJPAUtils.PERSISTENCE_UNIT_NAME);
 
         private final DBInitConfig dbInitConfig;
         private final String persistenceUnitName;