You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/11/05 10:33:48 UTC

[2/2] cayenne git commit: refactoring ModelerDbImportAction

refactoring ModelerDbImportAction


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/72dc1a3b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/72dc1a3b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/72dc1a3b

Branch: refs/heads/master
Commit: 72dc1a3b419540bf424f5b4d6ea8707dc2a919d5
Parents: 5461647
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Sat Nov 5 12:46:11 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Sat Nov 5 13:32:07 2016 +0300

----------------------------------------------------------------------
 .../cayenne/dbsync/reverse/db/DbLoader.java     | 59 +++++++-------------
 .../cayenne/modeler/action/MigrateAction.java   |  3 +-
 .../modeler/dialog/db/DbLoaderHelper.java       | 11 ++--
 3 files changed, 27 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/72dc1a3b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
index 65dd871..b171b5f 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
@@ -63,7 +63,7 @@ public class DbLoader {
     private final Connection connection;
     private final DbAdapter adapter;
     private final DbLoaderDelegate delegate;
-    private ObjectNameGenerator nameGenerator;
+    private final ObjectNameGenerator nameGenerator;
     private DatabaseMetaData metaData;
 
     public DbLoader(Connection connection, DbAdapter adapter, DbLoaderDelegate delegate, ObjectNameGenerator nameGenerator) {
@@ -97,56 +97,38 @@ public class DbLoader {
     }
 
     /**
-     * Returns DatabaseMetaData object associated with this DbLoader.
-     */
-    private DatabaseMetaData getMetaData() throws SQLException {
-        if (metaData == null) {
-            metaData = connection.getMetaData();
-        }
-        return metaData;
-    }
-
-    /**
-     * Check if database support schemas.
-     */
-    protected boolean supportSchemas() throws SQLException {
-        if (metaData == null) {
-            metaData = connection.getMetaData();
-        }
-        return metaData.supportsSchemasInTableDefinitions();
-    }
-
-    /**
-     * Check if database support catalogs.
+     * Retrieves catalogs for a given connection.
+     *
+     * @return List with the catalog names; empty list if none found.
      */
-    protected boolean supportCatalogs() throws SQLException {
-        if (metaData == null) {
-            metaData = connection.getMetaData();
+    // using a static method for catalog loading as we don't need a full DbLoader for this operation
+    public static List<String> loadCatalogs(Connection connection) throws SQLException {
+        try (ResultSet rs = connection.getMetaData().getCatalogs()) {
+            return getStrings(rs);
         }
-        return metaData.supportsCatalogsInTableDefinitions();
     }
 
     /**
-     * Retrieves catalogs for the database associated with this DbLoader.
+     * Retrieves the schemas for the given connection.
      *
-     * @return List with the catalog names, empty Array if none found.
+     * @return List with the schema names; empty list if none found.
      */
-    public List<String> loadCatalogs() throws SQLException {
-        try (ResultSet rs = getMetaData().getCatalogs()) {
+    // using a static method for catalog loading as we don't need a full DbLoader for this operation
+    public static List<String> loadSchemas(Connection connection) throws SQLException {
+
+        try (ResultSet rs = connection.getMetaData().getSchemas()) {
             return getStrings(rs);
         }
     }
 
     /**
-     * Retrieves the schemas for the database.
-     *
-     * @return List with the schema names, empty Array if none found.
+     * Returns DatabaseMetaData object associated with this DbLoader.
      */
-    public List<String> loadSchemas() throws SQLException {
-
-        try (ResultSet rs = getMetaData().getSchemas()) {
-            return getStrings(rs);
+    private DatabaseMetaData getMetaData() throws SQLException {
+        if (metaData == null) {
+            metaData = connection.getMetaData();
         }
+        return metaData;
     }
 
     protected void loadDbRelationships(DbLoaderConfiguration config, String catalog, String schema,
@@ -297,7 +279,7 @@ public class DbLoader {
             } catch (SQLException cay182Ex) {
                 // Sybase-specific - the line above blows on VIEWS, see CAY-182.
                 LOGGER.info("Error getting relationships for '" + catalog + "." + schema + "', ignoring. "
-                                + cay182Ex.getMessage(), cay182Ex);
+                        + cay182Ex.getMessage(), cay182Ex);
                 return new HashMap<>();
             }
 
@@ -336,7 +318,6 @@ public class DbLoader {
         LOGGER.info("Skip relation: '" + key + "' because table '" + tableName + "' not found");
     }
 
-
     protected String[] getTableTypes(DbLoaderConfiguration config) {
 
         String[] configTypes = config.getTableTypes();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/72dc1a3b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/MigrateAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/MigrateAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/MigrateAction.java
index 9c5436a..f565cda 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/MigrateAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/MigrateAction.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.modeler.action;
 
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider;
-import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
 import org.apache.cayenne.dbsync.reverse.db.DbLoader;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.modeler.Application;
@@ -107,6 +106,6 @@ public class MigrateAction extends DBWizardAction {
         DataSource dataSource = connectWizard.getConnectionInfo()
                 .makeDataSource(getApplication().getClassLoadingService());
 
-        return new DbLoader(dataSource.getConnection(), dbAdapter, null, new DefaultObjectNameGenerator()).loadSchemas();
+        return DbLoader.loadSchemas(dataSource.getConnection());
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/72dc1a3b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
index 3ef1275..3d2f317 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
@@ -206,9 +206,6 @@ public class DbLoaderHelper {
         });
     }
 
-    protected DbLoader createDbLoader(DbImportConfiguration configuration) {
-        return new DbLoader(connection, adapter, new LoaderDelegate(), configuration.createNameGenerator());
-    }
 
     private final class LoaderDelegate extends DefaultDbLoaderDelegate {
 
@@ -310,7 +307,7 @@ public class DbLoaderHelper {
             loadStatusNote = "Loading available catalogs...";
 
             try {
-                result = createDbLoader(config).loadCatalogs();
+                result = DbLoader.loadCatalogs(connection);
             } catch (Throwable th) {
                 processException(th, "Error Loading Catalogs");
             }
@@ -328,7 +325,7 @@ public class DbLoaderHelper {
             loadStatusNote = "Loading available schemas...";
 
             try {
-                result = createDbLoader(config).loadSchemas();
+                result = DbLoader.loadSchemas(connection);
             } catch (Throwable th) {
                 processException(th, "Error Loading Schemas");
             }
@@ -394,6 +391,10 @@ public class DbLoaderHelper {
                     targetDataMap,
                     createDbLoader(config));
         }
+
+        protected DbLoader createDbLoader(DbImportConfiguration configuration) {
+            return new DbLoader(connection, adapter, new LoaderDelegate(), configuration.createNameGenerator());
+        }
     }
 
 }