Repository: camel Updated Branches: refs/heads/master 0099d077c -> cbeab0e14
CAMEL-6443: Camel JSSE should favor using Camels ClassResolver to load the resources which works better for OSGi environments. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/cbeab0e1 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cbeab0e1 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cbeab0e1 Branch: refs/heads/master Commit: cbeab0e14a80eb285d7464cb094c91d0242add29 Parents: 89dc2e8 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Apr 28 15:53:08 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Apr 28 15:53:41 2016 +0200 ---------------------------------------------------------------------- .../apache/camel/util/jsse/JsseParameters.java | 34 ++++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/cbeab0e1/camel-core/src/main/java/org/apache/camel/util/jsse/JsseParameters.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/util/jsse/JsseParameters.java b/camel-core/src/main/java/org/apache/camel/util/jsse/JsseParameters.java index 4b08b18..a96549e 100644 --- a/camel-core/src/main/java/org/apache/camel/util/jsse/JsseParameters.java +++ b/camel-core/src/main/java/org/apache/camel/util/jsse/JsseParameters.java @@ -120,6 +120,7 @@ public class JsseParameters implements CamelContextAware { protected InputStream resolveResource(String resource) throws IOException { InputStream is = null; + // attempt as plain file first try { LOG.trace("Trying to open resource [{}] as a file.", resource); is = new FileInputStream(resource); @@ -127,7 +128,24 @@ public class JsseParameters implements CamelContextAware { } catch (FileNotFoundException e) { LOG.trace("Could not open resource [" + resource + "] as a file.", e); } - + + // then prefer to use ClassResolver from CamelContext if possible + if (is == null && this.context != null) { + LOG.trace("Trying to open resource using the CamelContext ClassResolver [{}].", context.getClassResolver()); + try { + is = context.getClassResolver().loadResourceAsStream(resource); + if (is == null) { + LOG.trace("Could not to open resource [{}] using the CamelContext ClassResolver [{}].", + resource, context.getClassResolver()); + } else { + LOG.debug("Opened resource [{}] using the CamelContext ClassResolver [{}].", + resource, this.getClass().getClassLoader()); + } + } catch (Throwable e) { + LOG.trace("Could not open resource [" + resource + "] using the CamelContext ClassResolver.", e); + } + } + if (is == null && Thread.currentThread().getContextClassLoader() != null) { LOG.trace("Trying to open resource [{}] as a class path resource with the TCCL [{}].", resource, Thread.currentThread().getContextClassLoader()); @@ -165,23 +183,11 @@ public class JsseParameters implements CamelContextAware { LOG.trace("Could not open resource [" + resource + "] as a URL.", e); } } - - if (is == null && this.context != null) { - LOG.trace("Trying to open resource using the CamelContext ClassResolver [{}].", context.getClassResolver()); - is = context.getClassResolver().loadResourceAsStream(resource); - if (is == null) { - LOG.trace("Could not to open resource [{}] using the CamelContext ClassResolver [{}].", - resource, context.getClassResolver()); - } else { - LOG.debug("Opened resource [{}] using the CamelContext ClassResolver [{}].", - resource, this.getClass().getClassLoader()); - } - } if (is == null) { throw new IOException("Could not open " + resource + " as a file, class path resource, or URL."); } - + return is; }