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());
+ }
}
}