IGNITE-1185 Locate configuration in class path. (cherry picked from commit 518b623)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/754da7a1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/754da7a1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/754da7a1 Branch: refs/heads/ignite-1093 Commit: 754da7a19b8d645c6497b2cdfee320cb922990fc Parents: 41c76a7 Author: sevdokimov <sevdoki...@gridgain.com> Authored: Mon Aug 3 12:48:35 2015 +0300 Committer: sevdokimov <sevdoki...@gridgain.com> Committed: Mon Aug 3 14:15:19 2015 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/internal/IgnitionEx.java | 17 +---------------- .../apache/ignite/internal/util/IgniteUtils.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/754da7a1/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java index 73de99a..3790703 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java @@ -583,22 +583,7 @@ public class IgnitionEx { public static IgniteBiTuple<Collection<IgniteConfiguration>, ? extends GridSpringResourceContext> loadConfigurations(String springCfgPath) throws IgniteCheckedException { A.notNull(springCfgPath, "springCfgPath"); - - URL url; - - try { - url = new URL(springCfgPath); - } - catch (MalformedURLException e) { - url = U.resolveIgniteUrl(springCfgPath); - - if (url == null) - throw new IgniteCheckedException("Spring XML configuration path is invalid: " + springCfgPath + - ". Note that this path should be either absolute or a relative local file system path, " + - "relative to META-INF in classpath or valid URL to IGNITE_HOME.", e); - } - - return loadConfigurations(url); + return loadConfigurations(IgniteUtils.resolveSpringUrl(springCfgPath)); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/754da7a1/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java index 6bd361f..ee07743 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java @@ -3308,6 +3308,9 @@ public abstract class IgniteUtils { url = U.resolveIgniteUrl(springCfgPath); if (url == null) + url = resolveInClasspath(springCfgPath); + + if (url == null) throw new IgniteCheckedException("Spring XML configuration path is invalid: " + springCfgPath + ". Note that this path should be either absolute or a relative local file system path, " + "relative to META-INF in classpath or valid URL to IGNITE_HOME.", e); @@ -3317,6 +3320,19 @@ public abstract class IgniteUtils { } /** + * @param path Resource path. + * @return Resource URL inside jar. Or {@code null}. + */ + @Nullable private static URL resolveInClasspath(String path) { + ClassLoader clsLdr = Thread.currentThread().getContextClassLoader(); + + if (clsLdr == null) + return null; + + return clsLdr.getResource(path.replaceAll("\\\\", "/")); + } + + /** * Gets URL representing the path passed in. First the check is made if path is absolute. * If not, then the check is made if path is relative to {@code META-INF} folder in classpath. * If not, then the check is made if path is relative to ${IGNITE_HOME}.