Repository: ignite
Updated Branches:
  refs/heads/ignite-843-rc1 e254cdfbf -> 1c6264d63


IGNITE-1676 Fixed driver files path.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5e3392e1
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5e3392e1
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5e3392e1

Branch: refs/heads/ignite-843-rc1
Commit: 5e3392e102f93b764ad8613606ec8eea49000f0a
Parents: ed0399e
Author: Andrey <[email protected]>
Authored: Thu Oct 15 14:51:38 2015 +0700
Committer: Andrey <[email protected]>
Committed: Thu Oct 15 14:51:38 2015 +0700

----------------------------------------------------------------------
 modules/control-center-agent/.gitignore         |  1 +
 .../org/apache/ignite/agent/AgentUtils.java     | 10 ++-
 .../handlers/DatabaseMetadataExtractor.java     | 68 ++++++++------------
 .../src/main/js/views/templates/layout.jade     |  2 +-
 4 files changed, 37 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5e3392e1/modules/control-center-agent/.gitignore
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/.gitignore 
b/modules/control-center-agent/.gitignore
index 9fbc684..57dd45e 100644
--- a/modules/control-center-agent/.gitignore
+++ b/modules/control-center-agent/.gitignore
@@ -1 +1,2 @@
 logs/*.log.*
+jdbc-drivers/*.jar

http://git-wip-us.apache.org/repos/asf/ignite/blob/5e3392e1/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentUtils.java
 
b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentUtils.java
index 4efb9c4..655fd1b 100644
--- 
a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentUtils.java
+++ 
b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentUtils.java
@@ -39,6 +39,14 @@ public class AgentUtils {
     }
 
     /**
+     * @param path Path to normalize.
+     * @return Normalized file path.
+     */
+    public static String normalizePath(String path) {
+        return path != null ? path.replace('\\', '/') : null;
+    }
+
+    /**
      * @return App folder.
      */
     public static File getAgentHome() {
@@ -87,7 +95,7 @@ public class AgentUtils {
         File home = getAgentHome();
 
         if (home != null) {
-            File file = new File(home, path);
+            File file = new File(home, normalizePath(path));
 
             if (file.exists())
                 return file;

http://git-wip-us.apache.org/repos/asf/ignite/blob/5e3392e1/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 3b6b59c..2c9037f 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
@@ -19,6 +19,7 @@ package org.apache.ignite.agent.handlers;
 
 import java.io.BufferedReader;
 import java.io.File;
+import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.URL;
@@ -32,11 +33,12 @@ import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import org.apache.ignite.agent.AgentConfiguration;
-import org.apache.ignite.agent.AgentUtils;
 import org.apache.ignite.agent.remote.Remote;
 import org.apache.ignite.schema.parser.DbMetadataReader;
 import org.apache.ignite.schema.parser.DbTable;
 
+import static org.apache.ignite.agent.AgentUtils.resolvePath;
+
 /**
  * Remote API to extract database metadata.
  */
@@ -45,22 +47,13 @@ public class DatabaseMetadataExtractor {
     private static final Logger log = 
Logger.getLogger(DatabaseMetadataExtractor.class.getName());
 
     /** */
-    private final String driversFolder;
+    private final File driversFolder;
 
     /**
      * @param cfg Config.
      */
     public DatabaseMetadataExtractor(AgentConfiguration cfg) {
-        String driversFolder = cfg.driversFolder();
-
-        if (driversFolder == null) {
-            File agentHome = AgentUtils.getAgentHome();
-
-            if (agentHome != null)
-                driversFolder = new File(agentHome, "jdbc-drivers").getPath();
-        }
-
-        this.driversFolder = driversFolder;
+        driversFolder = resolvePath(cfg.driversFolder() == null ? 
"jdbc-drivers" : cfg.driversFolder());
     }
 
     /**
@@ -126,30 +119,24 @@ public class DatabaseMetadataExtractor {
     }
 
     /**
-     * @param path Path to normalize.
-     * @return Normalized file path.
-     */
-    private String normalizePath(String path) {
-        return path != null ? path.replace('\\', '/') : null;
-    }
-
-    /**
      * @return Drivers in drivers folder
      * @see AgentConfiguration#driversFolder
      */
     @Remote
     public List<JdbcDriver> availableDrivers() {
-        String drvFolder = normalizePath(driversFolder);
-
-        log.log(Level.FINE, "Collecting JDBC drivers in folder: " + drvFolder);
-
-        if (drvFolder == null) {
+        if (driversFolder == null) {
             log.log(Level.INFO, "JDBC drivers folder not specified, returning 
empty list");
 
             return Collections.emptyList();
         }
 
-        String[] list = new File(drvFolder).list();
+        log.log(Level.FINE, "Collecting JDBC drivers in folder: " + 
driversFolder.getPath());
+
+        File[] list = driversFolder.listFiles(new FilenameFilter() {
+            @Override public boolean accept(File dir, String name) {
+                return name.endsWith(".jar");
+            }
+        });
 
         if (list == null) {
             log.log(Level.INFO, "JDBC drivers folder has no files, returning 
empty list");
@@ -159,28 +146,25 @@ public class DatabaseMetadataExtractor {
 
         List<JdbcDriver> res = new ArrayList<>();
 
-        for (String fileName : list) {
-            if (fileName.endsWith(".jar")) {
-                try {
-                    String spec = normalizePath("jar:file:" + 
(drvFolder.startsWith("/") ? "" : "/") + drvFolder + '/' + fileName +
-                        "!/META-INF/services/java.sql.Driver");
+        for (File file : list) {
+            try {
+                boolean win = System.getProperty("os.name").contains("win");
 
-                    URL url = new URL(spec);
+                URL url = new URL("jar", null, "file:" + (win ? "/" : "") + 
file.getPath() + "!/META-INF/services/java.sql.Driver");
 
-                    try (BufferedReader reader = new BufferedReader(new 
InputStreamReader(url.openStream()))) {
-                        String jdbcDriverCls = reader.readLine();
+                try (BufferedReader reader = new BufferedReader(new 
InputStreamReader(url.openStream()))) {
+                    String jdbcDriverCls = reader.readLine();
 
-                        res.add(new JdbcDriver(fileName, jdbcDriverCls));
+                    res.add(new JdbcDriver(file.getName(), jdbcDriverCls));
 
-                        log.log(Level.FINE, "Found: [driver=" + fileName + ", 
class=" + jdbcDriverCls + "]");
-                    }
+                    log.log(Level.FINE, "Found: [driver=" + file + ", class=" 
+ jdbcDriverCls + "]");
                 }
-                catch (IOException e) {
-                    res.add(new JdbcDriver(fileName, null));
+            }
+            catch (IOException e) {
+                res.add(new JdbcDriver(file.getName(), null));
 
-                    log.log(Level.INFO, "Found: [driver=" + fileName + "]");
-                    log.log(Level.INFO, "Failed to detect driver class: " + 
e.getMessage());
-                }
+                log.log(Level.INFO, "Found: [driver=" + file + "]");
+                log.log(Level.INFO, "Failed to detect driver class: " + 
e.getMessage());
             }
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5e3392e1/modules/control-center-web/src/main/js/views/templates/layout.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/templates/layout.jade 
b/modules/control-center-web/src/main/js/views/templates/layout.jade
index 845afb2..d7260fb 100644
--- a/modules/control-center-web/src/main/js/views/templates/layout.jade
+++ b/modules/control-center-web/src/main/js/views/templates/layout.jade
@@ -64,7 +64,7 @@ html(ng-app='ignite-web-console' ng-init='user = 
#{JSON.stringify(user)}; become
 
             
script(src='//cdnjs.cloudflare.com/ajax/libs/angular-drag-and-drop-lists/1.3.0/angular-drag-and-drop-lists.min.js')
 
-            
script(src='//cdn.rawgit.com/krispo/angular-nvd3/master/dist/angular-nvd3.min.js')
+            
script(src='//cdn.rawgit.com/krispo/angular-nvd3/v1.0.2/dist/angular-nvd3.js')
 
             script(src='/common-module.js')
             script(src='/data-structures.js')

Reply via email to