You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/08/24 08:36:30 UTC
ignite git commit: IGNITE-843 Minor refactoring.
Repository: ignite
Updated Branches:
refs/heads/ignite-843 b9cd18447 -> e47c26b7b
IGNITE-843 Minor refactoring.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e47c26b7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e47c26b7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e47c26b7
Branch: refs/heads/ignite-843
Commit: e47c26b7bece4d33014e88fa6c4f1c5ec83fb8dc
Parents: b9cd184
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Mon Aug 24 10:15:14 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Mon Aug 24 10:15:14 2015 +0700
----------------------------------------------------------------------
.../handlers/DatabaseMetadataExtractor.java | 74 +++++++++++++++-----
.../ignite/schema/parser/DbMetadataReader.java | 4 +-
.../parser/dialect/DatabaseMetadataDialect.java | 2 +-
.../parser/dialect/JdbcMetadataDialect.java | 4 +-
.../parser/dialect/MySQLMetadataDialect.java | 2 +-
.../parser/dialect/OracleMetadataDialect.java | 4 +-
.../schema/parser/DatabaseMetadataParser.java | 4 +-
7 files changed, 65 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/control-center-agent/src/main/java/org/apache/ignite/agent/handlers/DatabaseMetadataExtractor.java
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/handlers/DatabaseMetadataExtractor.java b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/handlers/DatabaseMetadataExtractor.java
index 2bf823c..55e3307 100644
--- a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/handlers/DatabaseMetadataExtractor.java
+++ b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/handlers/DatabaseMetadataExtractor.java
@@ -58,23 +58,59 @@ public class DatabaseMetadataExtractor {
* @param jdbcDriverCls JDBC driver class.
* @param jdbcUrl JDBC URL.
* @param jdbcInfo Properties to connect to database.
- * @return Collection of tables.
+ * @return Connection to database.
+ * @throws SQLException
*/
- @Remote
- public Collection<DbTable> extractMetadata(String jdbcDriverJarPath, String jdbcDriverCls, String jdbcUrl,
- Properties jdbcInfo, boolean tblsOnly) throws SQLException {
- log.log(Level.INFO, "Collecting database metadata...");
-
+ private Connection connect(String jdbcDriverJarPath, String jdbcDriverCls, String jdbcUrl, Properties jdbcInfo) throws SQLException {
if (!new File(jdbcDriverJarPath).isAbsolute() && driversFolder != null)
jdbcDriverJarPath = new File(driversFolder, jdbcDriverJarPath).getPath();
- Connection conn = DbMetadataReader.getInstance().connect(jdbcDriverJarPath, jdbcDriverCls, jdbcUrl, jdbcInfo);
+ return DbMetadataReader.getInstance().connect(jdbcDriverJarPath, jdbcDriverCls, jdbcUrl, jdbcInfo);
+ }
- Collection<DbTable> metadata = DbMetadataReader.getInstance().extractMetadata(conn, tblsOnly);
+ /**
+ * @param jdbcDriverJarPath JDBC driver JAR path.
+ * @param jdbcDriverCls JDBC driver class.
+ * @param jdbcUrl JDBC URL.
+ * @param jdbcInfo Properties to connect to database.
+ * @return Collection of schema names.
+ * @throws SQLException
+ */
+ @Remote
+ public Collection<String> schemas(String jdbcDriverJarPath, String jdbcDriverCls, String jdbcUrl,
+ Properties jdbcInfo) throws SQLException {
+ log.log(Level.INFO, "Collecting database schemas...");
+
+ try (Connection conn = connect(jdbcDriverJarPath, jdbcDriverCls, jdbcUrl, jdbcInfo)) {
+ Collection<String> schemas = DbMetadataReader.getInstance().schemas(conn);
- log.log(Level.INFO, "Collected: " + metadata.size());
+ log.log(Level.INFO, "Collected schemas: " + schemas.size());
- return metadata;
+ return schemas;
+ }
+ }
+
+ /**
+ * @param jdbcDriverJarPath JDBC driver JAR path.
+ * @param jdbcDriverCls JDBC driver class.
+ * @param jdbcUrl JDBC URL.
+ * @param jdbcInfo Properties to connect to database.
+ * @param schemas List of schema names to process.
+ * @param tblsOnly If {@code true} then only tables will be processed otherwise views also will be processed.
+ * @return Collection of tables.
+ */
+ @Remote
+ public Collection<DbTable> metadata(String jdbcDriverJarPath, String jdbcDriverCls, String jdbcUrl,
+ Properties jdbcInfo, List<String> schemas, boolean tblsOnly) throws SQLException {
+ log.log(Level.INFO, "Collecting database metadata...");
+
+ try (Connection conn = connect(jdbcDriverJarPath, jdbcDriverCls, jdbcUrl, jdbcInfo)) {
+ Collection<DbTable> metadata = DbMetadataReader.getInstance().metadata(conn, schemas, tblsOnly);
+
+ log.log(Level.INFO, "Collected metadata: " + metadata.size());
+
+ return metadata;
+ }
}
/**
@@ -82,17 +118,17 @@ public class DatabaseMetadataExtractor {
*/
private static class JdbcDriver {
/** */
- private final String jdbcDriverClass;
- /** */
private final String jdbcDriverJar;
+ /** */
+ private final String jdbcDriverClass;
/**
- * @param jdbcDriverClass Optional JDBC driver class.
* @param jdbcDriverJar File name of driver jar file.
+ * @param jdbcDriverClass Optional JDBC driver class.
*/
- public JdbcDriver(String jdbcDriverClass, String jdbcDriverJar) {
- this.jdbcDriverClass = jdbcDriverClass;
+ public JdbcDriver(String jdbcDriverJar, String jdbcDriverClass) {
this.jdbcDriverJar = jdbcDriverJar;
+ this.jdbcDriverClass = jdbcDriverClass;
}
}
@@ -139,15 +175,15 @@ public class DatabaseMetadataExtractor {
URL url = new URL(spec);
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()))) {
- String jdbcDriverClass = reader.readLine();
+ String jdbcDriverCls = reader.readLine();
- res.add(new JdbcDriver(jdbcDriverClass, fileName));
+ res.add(new JdbcDriver(fileName, jdbcDriverCls));
- log.log(Level.INFO, "Found: [driver=" + fileName + ", class=" + jdbcDriverClass + "]");
+ log.log(Level.INFO, "Found: [driver=" + fileName + ", class=" + jdbcDriverCls + "]");
}
}
catch (IOException e) {
- res.add(new JdbcDriver(null, fileName));
+ res.add(new JdbcDriver(fileName, null));
log.log(Level.INFO, "Found: [driver=" + fileName + "]");
log.log(Level.INFO, "Failed to detect driver class: " + e.getMessage());
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbMetadataReader.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbMetadataReader.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbMetadataReader.java
index eb447b9..61801d0 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbMetadataReader.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbMetadataReader.java
@@ -77,7 +77,7 @@ public class DbMetadataReader {
* @return List of schema names.
* @throws SQLException If schemas loading failed.
*/
- public List<String> schemas(Connection conn) throws SQLException {
+ public Collection<String> schemas(Connection conn) throws SQLException {
return dialect(conn).schemas(conn);
}
@@ -88,7 +88,7 @@ public class DbMetadataReader {
* @param schemas List of database schemas to process. In case of empty list all schemas will be processed.
* @param tblsOnly Tables only flag.
*/
- public Collection<DbTable> extractMetadata(Connection conn, List<String> schemas, boolean tblsOnly) throws SQLException {
+ public Collection<DbTable> metadata(Connection conn, List<String> schemas, boolean tblsOnly) throws SQLException {
DatabaseMetadataDialect dialect;
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
index 9c059b8..b801029 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
@@ -33,7 +33,7 @@ public abstract class DatabaseMetadataDialect {
* @return Collection of schema descriptors.
* @throws SQLException If failed to get schemas.
*/
- public abstract List<String> schemas(Connection conn) throws SQLException;
+ public abstract Collection<String> schemas(Connection conn) throws SQLException;
/**
* Gets tables from database.
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
index 1bb6840..73785e8 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
@@ -63,8 +63,8 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
private static final int IDX_ASC_OR_DESC_IDX = 10;
/** {@inheritDoc} */
- @Override public List<String> schemas(Connection conn) throws SQLException {
- List<String> schemas = new ArrayList<>();
+ @Override public Collection<String> schemas(Connection conn) throws SQLException {
+ Collection<String> schemas = new ArrayList<>();
ResultSet rs = conn.getMetaData().getSchemas();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
index b592321..e0f6fe9 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
@@ -25,7 +25,7 @@ import java.util.*;
*/
public class MySQLMetadataDialect extends JdbcMetadataDialect {
/** {@inheritDoc} */
- @Override public List<String> schemas(Connection conn) throws SQLException {
+ @Override public Collection<String> schemas(Connection conn) throws SQLException {
List<String> schemas = new ArrayList<>();
ResultSet rs = conn.getMetaData().getCatalogs();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
index c569a29..a3cc203 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
@@ -94,8 +94,8 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
}
/** {@inheritDoc} */
- @Override public List<String> schemas(Connection conn) throws SQLException {
- List<String> schemas = new ArrayList<>();
+ @Override public Collection<String> schemas(Connection conn) throws SQLException {
+ Collection<String> schemas = new ArrayList<>();
ResultSet rs = conn.getMetaData().getSchemas();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e47c26b7/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
index 0a35854..126d2ab 100644
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
+++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
@@ -35,7 +35,7 @@ public class DatabaseMetadataParser {
* @throws SQLException If schemas loading failed.
*/
public static ObservableList<SchemaDescriptor> schemas(Connection conn) throws SQLException {
- List<String> dbSchemas = DbMetadataReader.getInstance().schemas(conn);
+ Collection<String> dbSchemas = DbMetadataReader.getInstance().schemas(conn);
List<SchemaDescriptor> uiSchemas = new ArrayList<>(dbSchemas.size());
@@ -60,7 +60,7 @@ public class DatabaseMetadataParser {
Map<String, Collection<PojoDescriptor>> childrens = new HashMap<>();
- for (DbTable tbl : DbMetadataReader.getInstance().extractMetadata(conn, schemas, tblsOnly)) {
+ for (DbTable tbl : DbMetadataReader.getInstance().metadata(conn, schemas, tblsOnly)) {
String schema = tbl.schema();
PojoDescriptor parent = parents.get(schema);