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 <[email protected]>
Authored: Mon Aug 24 10:15:14 2015 +0700
Committer: Alexey Kuznetsov <[email protected]>
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);

Reply via email to