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;
     }
 

Reply via email to