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')
