You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/10/31 21:13:41 UTC

[camel] branch CAMEL-18665 created (now 8ee424af24f)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a change to branch CAMEL-18665
in repository https://gitbox.apache.org/repos/asf/camel.git


      at 8ee424af24f CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own

This branch includes the following new commits:

     new cbb613f3a55 CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own
     new 8ee424af24f CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel] 02/02: CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch CAMEL-18665
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8ee424af24fc7f638c8de526eaa4c3714e14f1d0
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Oct 31 22:06:30 2022 +0100

    CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own
---
 .../java/org/apache/camel/support/jsse/JsseParameters.java     | 10 +++-------
 .../apache/camel/support/jsse/KeyManagersParametersTest.java   |  5 ++++-
 .../org/apache/camel/support/jsse/KeyStoreParametersTest.java  |  8 +++++++-
 .../apache/camel/support/jsse/TrustManagersParametersTest.java |  4 +++-
 4 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java b/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
index 4e3bce57ec4..ff3bb669ff7 100644
--- a/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
+++ b/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
@@ -16,11 +16,8 @@
  */
 package org.apache.camel.support.jsse;
 
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -31,16 +28,13 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.ClassResolver;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.ResourceLoader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * Base class that provides optional integration with core Camel capabilities.
  */
 public class JsseParameters implements CamelContextAware {
 
-    private static final Logger LOG = LoggerFactory.getLogger(JsseParameters.class);
-
     private CamelContext context;
 
     /**
@@ -119,6 +113,8 @@ public class JsseParameters implements CamelContextAware {
      * @throws IOException if the resource cannot be resolved using any of the above methods
      */
     protected InputStream resolveResource(String resource) throws IOException {
+        ObjectHelper.notNull(getCamelContext(), "CamelContext", this);
+
         Resource res = getCamelContext().adapt(ExtendedCamelContext.class).getResourceLoader().resolveResource(resource);
         if (res == null) {
             throw new IOException("Could not open " + resource + " as a file, class path resource, or URL.");
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyManagersParametersTest.java b/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyManagersParametersTest.java
index 22f124a53c1..6187b4b6396 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyManagersParametersTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyManagersParametersTest.java
@@ -25,6 +25,7 @@ import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.X509KeyManager;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.impl.DefaultCamelContext;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -33,6 +34,7 @@ public class KeyManagersParametersTest extends AbstractJsseParametersTest {
 
     protected KeyStoreParameters createMinimalKeyStoreParameters() {
         KeyStoreParameters ksp = new KeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
 
         ksp.setResource("org/apache/camel/support/jsse/localhost.p12");
         ksp.setPassword("changeit");
@@ -43,6 +45,8 @@ public class KeyManagersParametersTest extends AbstractJsseParametersTest {
 
     protected KeyManagersParameters createMinimalKeyManagersParameters() {
         KeyManagersParameters kmp = new KeyManagersParameters();
+        kmp.setCamelContext(new DefaultCamelContext());
+
         kmp.setKeyStore(this.createMinimalKeyStoreParameters());
         kmp.setKeyPassword("changeit");
 
@@ -51,7 +55,6 @@ public class KeyManagersParametersTest extends AbstractJsseParametersTest {
 
     @Test
     public void testPropertyPlaceholders() throws Exception {
-
         CamelContext context = this.createPropertiesPlaceholderAwareContext();
 
         KeyStoreParameters ksp = new KeyStoreParameters();
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyStoreParametersTest.java b/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyStoreParametersTest.java
index 03ea54850cb..33f79aaabca 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyStoreParametersTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/jsse/KeyStoreParametersTest.java
@@ -26,6 +26,7 @@ import java.security.KeyStoreException;
 import java.security.NoSuchProviderException;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.impl.DefaultCamelContext;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -62,6 +63,7 @@ public class KeyStoreParametersTest extends AbstractJsseParametersTest {
     @Test
     public void testValidParameters() throws GeneralSecurityException, IOException, URISyntaxException {
         KeyStoreParameters ksp = this.createMinimalKeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
 
         KeyStore ks = ksp.createKeyStore();
         assertNotNull(ks.getCertificate("localhost"));
@@ -73,7 +75,7 @@ public class KeyStoreParametersTest extends AbstractJsseParametersTest {
 
         resourceUrl = this.getClass().getResource("/org/apache/camel/support/jsse/localhost.p12");
         File file = new File(resourceUrl.toURI());
-        ksp.setResource(file.getAbsolutePath());
+        ksp.setResource("file:" + file.getAbsolutePath());
         ks = ksp.createKeyStore();
         assertNotNull(ks.getCertificate("localhost"));
     }
@@ -81,6 +83,7 @@ public class KeyStoreParametersTest extends AbstractJsseParametersTest {
     @Test
     public void testExplicitType() throws Exception {
         KeyStoreParameters ksp = this.createMinimalKeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
         ksp.setType("jks");
 
         KeyStore ks = ksp.createKeyStore();
@@ -90,6 +93,7 @@ public class KeyStoreParametersTest extends AbstractJsseParametersTest {
     @Test
     public void testExplicitProvider() throws Exception {
         KeyStoreParameters ksp = this.createMinimalKeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
         ksp.setProvider(ksp.createKeyStore().getProvider().getName());
 
         KeyStore ks = ksp.createKeyStore();
@@ -140,6 +144,7 @@ public class KeyStoreParametersTest extends AbstractJsseParametersTest {
     @Test
     public void testIncorrectPassword() throws Exception {
         KeyStoreParameters ksp = this.createMinimalKeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
         ksp.setPassword("");
 
         try {
@@ -153,6 +158,7 @@ public class KeyStoreParametersTest extends AbstractJsseParametersTest {
     @Test
     public void testIncorrectResource() throws Exception {
         KeyStoreParameters ksp = this.createMinimalKeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
         ksp.setResource("");
 
         try {
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/jsse/TrustManagersParametersTest.java b/core/camel-core/src/test/java/org/apache/camel/support/jsse/TrustManagersParametersTest.java
index d97965ac572..4e7e0e4982b 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/jsse/TrustManagersParametersTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/jsse/TrustManagersParametersTest.java
@@ -25,6 +25,7 @@ import javax.net.ssl.TrustManagerFactory;
 import javax.net.ssl.X509TrustManager;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.impl.DefaultCamelContext;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -33,6 +34,7 @@ public class TrustManagersParametersTest extends AbstractJsseParametersTest {
 
     protected KeyStoreParameters createMinimalKeyStoreParameters() {
         KeyStoreParameters ksp = new KeyStoreParameters();
+        ksp.setCamelContext(new DefaultCamelContext());
 
         ksp.setResource("org/apache/camel/support/jsse/localhost.p12");
         ksp.setPassword("changeit");
@@ -42,8 +44,8 @@ public class TrustManagersParametersTest extends AbstractJsseParametersTest {
 
     protected TrustManagersParameters createMinimalTrustManagersParameters() {
         TrustManagersParameters tmp = new TrustManagersParameters();
+        tmp.setCamelContext(new DefaultCamelContext());
         tmp.setKeyStore(this.createMinimalKeyStoreParameters());
-
         return tmp;
     }
 


[camel] 01/02: CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch CAMEL-18665
in repository https://gitbox.apache.org/repos/asf/camel.git

commit cbb613f3a55f86cb9d7658b33438502d0f200208
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Oct 31 21:56:49 2022 +0100

    CAMEL-18665: camel-core: JsseParameters should use the camel provided resource loader instead of its own
---
 .../java/org/apache/camel/spi/ResourceLoader.java  |  1 +
 .../apache/camel/support/jsse/JsseParameters.java  | 82 +++-------------------
 2 files changed, 9 insertions(+), 74 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/ResourceLoader.java b/core/camel-api/src/main/java/org/apache/camel/spi/ResourceLoader.java
index 5f96beb161e..103ec2c4462 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ResourceLoader.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ResourceLoader.java
@@ -22,6 +22,7 @@ import org.apache.camel.CamelContextAware;
  * SPI for loading resources.
  */
 public interface ResourceLoader extends CamelContextAware {
+
     /**
      * Service factory key.
      */
diff --git a/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java b/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
index 6d7ba7724f7..4e3bce57ec4 100644
--- a/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
+++ b/core/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
@@ -26,8 +26,11 @@ import java.util.List;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.ClassResolver;
+import org.apache.camel.spi.Resource;
+import org.apache.camel.spi.ResourceLoader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -106,90 +109,21 @@ public class JsseParameters implements CamelContextAware {
     }
 
     /**
-     * Attempts to loads a resource using a number of different approaches. The loading of the resource, is attempted by
+     * Attempts to load a resource using a number of different approaches. The loading of the resource, is attempted by
      * treating the resource as a file path, a class path resource, a URL, and using the Camel Context's
-     * {@link ClassResolver} if a context is available in that order. An exception is thrown if the resource cannot be
+     * {@link ResourceLoader} if a context is available in that order. An exception is thrown if the resource cannot be
      * resolved to readable input stream using any of the above methods.
      * 
      * @param  resource    the resource location
      * @return             the input stream for the resource
-     *
      * @throws IOException if the resource cannot be resolved using any of the above methods
-     * 
-     * @see                #setCamelContext(CamelContext)
      */
     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);
-            LOG.debug("Opened resource [{}] as a file.", resource);
-        } catch (FileNotFoundException e) {
-            LOG.trace("Could not open resource [{}] as a file.", resource, 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 [{}]  using the CamelContext ClassResolver.", resource, 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());
-            is = Thread.currentThread().getContextClassLoader().getResourceAsStream(resource);
-
-            if (is == null) {
-                LOG.trace("Could not open resource [{}] as a class path resource using the TCCL [{}].",
-                        resource, Thread.currentThread().getContextClassLoader());
-            } else {
-                LOG.debug("Opened resource [{}] as a class path resource with the TCCL [{}].",
-                        resource, Thread.currentThread().getContextClassLoader());
-            }
-        }
-
-        if (is == null) {
-            LOG.trace("Trying to open resource [{}] as a class path resource using the classloader [{}].",
-                    resource, this.getClass().getClassLoader());
-            is = this.getClass().getResourceAsStream(resource);
-
-            if (is == null) {
-                LOG.trace("Could not open resource [{}] as a class path resource using the classloader [{}].",
-                        resource, this.getClass().getClassLoader());
-            } else {
-                LOG.debug("Opened resource [{}] as a class path resource with the classloader [{}].",
-                        resource, this.getClass().getClassLoader());
-            }
-        }
-
-        if (is == null) {
-            try {
-                LOG.trace("Trying to open resource [{}] as a URL.", resource);
-                is = new URL(resource).openStream();
-                LOG.debug("Opened resource [{}] as a URL.", resource);
-            } catch (IOException e) {
-                LOG.trace("Could not open resource [{}] as a URL.", resource, e);
-            }
-        }
-
-        if (is == null) {
+        Resource res = getCamelContext().adapt(ExtendedCamelContext.class).getResourceLoader().resolveResource(resource);
+        if (res == null) {
             throw new IOException("Could not open " + resource + " as a file, class path resource, or URL.");
         }
-
-        return is;
+        return res.getInputStream();
     }
 
 }