Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 c18cee2ac -> a31c84301


# IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: 712729b41dfb7c98a88875b9112b776c62074920
Parents: 609b8c6
Author: Andrey <anovi...@gridgain.com>
Authored: Wed Aug 19 10:49:12 2015 +0700
Committer: Andrey <anovi...@gridgain.com>
Committed: Wed Aug 19 10:49:12 2015 +0700

----------------------------------------------------------------------
 .../org/apache/ignite/agent/AgentUtils.java     | 34 ++++++++++++++++++--
 .../handlers/DatabaseMetadataExtractor.java     |  2 +-
 2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/712729b4/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 9ab952a..763bb36 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
@@ -18,12 +18,17 @@
 package org.apache.ignite.agent;
 
 import java.io.*;
-import java.nio.file.*;
+import java.net.*;
+import java.security.*;
+import java.util.logging.*;
 
 /**
  * Utility methods.
  */
 public class AgentUtils {
+    /** */
+    private static final Logger log = 
Logger.getLogger(AgentUtils.class.getName());
+
     /**
      * Default constructor.
      */
@@ -35,6 +40,31 @@ public class AgentUtils {
      * @return App folder.
      */
     public static File getAgentHome() {
-        return Paths.get("").toAbsolutePath().toFile();
+        try {
+            ProtectionDomain domain = 
AgentLauncher.class.getProtectionDomain();
+
+            // Should not happen, but to make sure our code is not broken.
+            if (domain == null || domain.getCodeSource() == null || 
domain.getCodeSource().getLocation() == null) {
+                log.log(Level.WARNING, "Failed to resolve agent jar 
location!");
+
+                return null;
+            }
+
+            // Resolve path to class-file.
+            URI classesUri = domain.getCodeSource().getLocation().toURI();
+
+            boolean windows = 
System.getProperty("os.name").toLowerCase().contains("win");
+
+            // Overcome UNC path problem on Windows 
(http://www.tomergabel.com/JavaMishandlesUNCPathsOnWindows.aspx)
+            if (windows && classesUri.getAuthority() != null)
+                classesUri = new URI(classesUri.toString().replace("file://", 
"file:/"));
+
+            return new File(classesUri);
+        }
+        catch (URISyntaxException | SecurityException ignored) {
+            log.log(Level.WARNING, "Failed to resolve agent jar location!");
+
+            return null;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/712729b4/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 b01bdc5..ba2de15 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
@@ -47,7 +47,7 @@ public class DatabaseMetadataExtractor {
             File agentHome = AgentUtils.getAgentHome();
 
             if (agentHome != null)
-                driversFolder = agentHome + "/jdbc-drivers";
+                driversFolder = new File(agentHome, "jdbc-drivers").getPath();
         }
 
         this.driversFolder = driversFolder;

Reply via email to