You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2017/04/11 14:12:02 UTC
[06/13] camel git commit: CAMEL-10650: moving global config to Camel
context
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpGlobalSSLTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpGlobalSSLTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpGlobalSSLTest.java
new file mode 100644
index 0000000..180b463
--- /dev/null
+++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpGlobalSSLTest.java
@@ -0,0 +1,104 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty.http;
+
+import java.net.URL;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.AvailablePortFinder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.util.jsse.KeyManagersParameters;
+import org.apache.camel.util.jsse.KeyStoreParameters;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.apache.camel.util.jsse.TrustManagersParameters;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class NettyHttpGlobalSSLTest extends CamelTestSupport {
+
+ @Produce
+ private ProducerTemplate template;
+
+ @EndpointInject(uri = "mock:input")
+ private MockEndpoint mockEndpoint;
+
+ private Integer port;
+
+ @BeforeClass
+ public static void setUpJaas() throws Exception {
+ // ensure jsse clients can validate the self signed dummy localhost cert,
+ // use the server keystore as the trust store for these tests
+ URL trustStoreUrl = NettyHttpSSLTest.class.getClassLoader().getResource("jsse/localhost.ks");
+ System.setProperty("javax.net.ssl.trustStore", trustStoreUrl.toURI().getPath());
+ }
+
+ @AfterClass
+ public static void tearDownJaas() throws Exception {
+ System.clearProperty("java.security.auth.login.config");
+ System.clearProperty("javax.net.ssl.trustStore");
+ }
+
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ port = AvailablePortFinder.getNextAvailable(9000);
+
+ CamelContext context = super.createCamelContext();
+ SSLContextParameters sslContextParameters = new SSLContextParameters();
+ KeyManagersParameters keyManagers = new KeyManagersParameters();
+ keyManagers.setKeyPassword("changeit");
+ KeyStoreParameters keyStore = new KeyStoreParameters();
+ keyStore.setResource("jsse/localhost.ks");
+ keyStore.setPassword("changeit");
+ keyManagers.setKeyStore(keyStore);
+ sslContextParameters.setKeyManagers(keyManagers);
+ TrustManagersParameters trustManagers = new TrustManagersParameters();
+ trustManagers.setKeyStore(keyStore);
+ sslContextParameters.setTrustManagers(trustManagers);
+ context.setSSLContextParameters(sslContextParameters);
+ return context;
+ }
+
+ @Test
+ public void testSSLInOutWithNettyConsumer() throws Exception {
+ mockEndpoint.expectedBodiesReceived("Hello World");
+
+ String out = template.requestBody("https://localhost:" + port, "Hello World", String.class);
+ assertEquals("Bye World", out);
+
+ mockEndpoint.assertIsSatisfied();
+ }
+
+ @Override
+ protected RoutesBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("netty-http:https://localhost:" + port +"?ssl=true")
+ .to("mock:input")
+ .transform().simple("Bye World");
+ }
+ };
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.java
deleted file mode 100644
index 8b64126..0000000
--- a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.netty.http;
-
-import java.net.URL;
-import javax.annotation.Resource;
-
-import junit.framework.TestCase;
-
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Produce;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {"/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.xml"})
-public class SpringNettyHttpGlobalSSLTest extends TestCase {
-
- @Produce
- private ProducerTemplate template;
-
- @EndpointInject(uri = "mock:input")
- private MockEndpoint mockEndpoint;
-
- private Integer port;
-
- public Integer getPort() {
- return port;
- }
-
- @Resource(name = "dynaPort")
- public void setPort(Integer port) {
- this.port = port;
- }
-
- @BeforeClass
- public static void setUpJaas() throws Exception {
- // ensure jsse clients can validate the self signed dummy localhost cert,
- // use the server keystore as the trust store for these tests
- URL trustStoreUrl = NettyHttpSSLTest.class.getClassLoader().getResource("jsse/localhost.ks");
- System.setProperty("javax.net.ssl.trustStore", trustStoreUrl.toURI().getPath());
- }
-
- @AfterClass
- public static void tearDownJaas() throws Exception {
- System.clearProperty("java.security.auth.login.config");
- }
-
- @Test
- public void testSSLInOutWithNettyConsumer() throws Exception {
- mockEndpoint.expectedBodiesReceived("Hello World");
-
- String out = template.requestBody("https://localhost:" + getPort(), "Hello World", String.class);
- assertEquals("Bye World", out);
-
- mockEndpoint.assertIsSatisfied();
- }
-
-}
-
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty-http/src/test/resources/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/test/resources/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.xml b/components/camel-netty-http/src/test/resources/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.xml
deleted file mode 100644
index 43a8327..0000000
--- a/components/camel-netty-http/src/test/resources/org/apache/camel/component/netty/http/SpringNettyHttpGlobalSSLTest.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:camel="http://camel.apache.org/schema/spring"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
- ">
-
- <bean id="dynaPort" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
- <property name="targetClass">
- <value>org.apache.camel.test.AvailablePortFinder</value>
- </property>
- <property name="targetMethod">
- <value>getNextAvailable</value>
- </property>
- <property name="arguments">
- <list>
- <value>9000</value>
- </list>
- </property>
- </bean>
-
- <camel:sslContextParameters id="mySsl">
- <camel:keyManagers keyPassword="changeit">
- <camel:keyStore resource="jsse/localhost.ks" password="changeit"/>
- </camel:keyManagers>
- <camel:trustManagers>
- <camel:keyStore resource="jsse/localhost.ks" password="changeit"/>
- </camel:trustManagers>
- </camel:sslContextParameters>
- <bean id="sslContextParameterSupplier" class="org.apache.camel.component.netty.http.util.NettySSLContextParameterSupplier">
- <property name="sslContextParameters" ref="mySsl"/>
- </bean>
-
- <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
- <endpoint id="input1" uri="netty-http:https://0.0.0.0:#{dynaPort}?ssl=true"/>
-
- <route>
- <from ref="input1"/>
- <to uri="mock:input"/>
- <transform>
- <simple>Bye World</simple>
- </transform>
- </route>
-
- </camelContext>
-
-</beans>
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index 66ba641..7b2f04a 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -19,24 +19,21 @@ package org.apache.camel.component.netty;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
-import java.util.function.Supplier;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.concurrent.CamelThreadFactory;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor;
import org.jboss.netty.util.HashedWheelTimer;
import org.jboss.netty.util.Timer;
-public class NettyComponent extends UriEndpointComponent {
+public class NettyComponent extends UriEndpointComponent implements SSLContextParametersAware {
// use a shared timer for Netty (see javadoc for HashedWheelTimer)
private Timer timer;
private volatile OrderedMemoryAwareThreadPoolExecutor executorService;
@@ -78,7 +75,7 @@ public class NettyComponent extends UriEndpointComponent {
}
if (config.getSslContextParameters() == null) {
- config.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ config.setSslContextParameters(getGlobalSSLContextParameters());
}
// validate config
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyGlobalSSLContextParametersTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyGlobalSSLContextParametersTest.java b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyGlobalSSLContextParametersTest.java
index c4edb58..9a352bf 100644
--- a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyGlobalSSLContextParametersTest.java
+++ b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyGlobalSSLContextParametersTest.java
@@ -16,32 +16,32 @@
*/
package org.apache.camel.component.netty;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.JndiRegistry;
import org.apache.camel.util.jsse.ClientAuthentication;
import org.apache.camel.util.jsse.KeyManagersParameters;
import org.apache.camel.util.jsse.KeyStoreParameters;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.apache.camel.util.jsse.SSLContextServerParameters;
import org.apache.camel.util.jsse.TrustManagersParameters;
import org.junit.Test;
public class NettyGlobalSSLContextParametersTest extends BaseNettyTest {
+
@Override
- protected JndiRegistry createRegistry() throws Exception {
-
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource(this.getClass().getClassLoader().getResource("keystore.jks").toString());
ksp.setPassword("changeit");
-
+
KeyManagersParameters kmp = new KeyManagersParameters();
kmp.setKeyPassword("changeit");
kmp.setKeyStore(ksp);
-
+
TrustManagersParameters tmp = new TrustManagersParameters();
tmp.setKeyStore(ksp);
@@ -55,9 +55,8 @@ public class NettyGlobalSSLContextParametersTest extends BaseNettyTest {
sslContextParameters.setTrustManagers(tmp);
sslContextParameters.setServerParameters(scsp);
- JndiRegistry registry = super.createRegistry();
- registry.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> sslContextParameters);
- return registry;
+ context.setSSLContextParameters(sslContextParameters);
+ return context;
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
index bd6b53b..3068f62 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
@@ -20,14 +20,13 @@ import java.net.URI;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.component.netty4.NettyComponent;
import org.apache.camel.component.netty4.NettyConfiguration;
import org.apache.camel.component.netty4.NettyServerBootstrapConfiguration;
@@ -39,7 +38,6 @@ import org.apache.camel.spi.RestApiConsumerFactory;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.HostUtils;
import org.apache.camel.util.IntrospectionSupport;
@@ -47,14 +45,13 @@ import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.ServiceHelper;
import org.apache.camel.util.URISupport;
import org.apache.camel.util.UnsafeUriCharactersEncoder;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Netty HTTP based component.
*/
-public class NettyHttpComponent extends NettyComponent implements HeaderFilterStrategyAware, RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory {
+public class NettyHttpComponent extends NettyComponent implements HeaderFilterStrategyAware, RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory, SSLContextParametersAware {
private static final Logger LOG = LoggerFactory.getLogger(NettyHttpComponent.class);
@@ -150,7 +147,7 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
// set default ssl config
if (config.getSslContextParameters() == null) {
- config.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ config.setSslContextParameters(getGlobalSSLContextParameters());
}
// validate config
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyComponent.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyComponent.java
index 02a160e..3740b77 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyComponent.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyComponent.java
@@ -19,23 +19,20 @@ package org.apache.camel.component.netty4;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.ThreadFactory;
-import java.util.function.Supplier;
import io.netty.util.concurrent.DefaultEventExecutorGroup;
import io.netty.util.concurrent.EventExecutorGroup;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.concurrent.CamelThreadFactory;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
-public class NettyComponent extends UriEndpointComponent {
+public class NettyComponent extends UriEndpointComponent implements SSLContextParametersAware {
@Metadata(label = "advanced")
private NettyConfiguration configuration;
@@ -89,7 +86,7 @@ public class NettyComponent extends UriEndpointComponent {
}
if (config.getSslContextParameters() == null) {
- config.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ config.setSslContextParameters(getGlobalSSLContextParameters());
}
// validate config
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty4/src/test/java/org/apache/camel/component/netty4/NettyGlobalSSLContextParametersTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/test/java/org/apache/camel/component/netty4/NettyGlobalSSLContextParametersTest.java b/components/camel-netty4/src/test/java/org/apache/camel/component/netty4/NettyGlobalSSLContextParametersTest.java
index c3aff02..a9f06da 100644
--- a/components/camel-netty4/src/test/java/org/apache/camel/component/netty4/NettyGlobalSSLContextParametersTest.java
+++ b/components/camel-netty4/src/test/java/org/apache/camel/component/netty4/NettyGlobalSSLContextParametersTest.java
@@ -16,15 +16,14 @@
*/
package org.apache.camel.component.netty4;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.JndiRegistry;
import org.apache.camel.util.jsse.ClientAuthentication;
import org.apache.camel.util.jsse.KeyManagersParameters;
import org.apache.camel.util.jsse.KeyStoreParameters;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.apache.camel.util.jsse.SSLContextServerParameters;
import org.apache.camel.util.jsse.TrustManagersParameters;
import org.junit.Test;
@@ -32,16 +31,16 @@ import org.junit.Test;
public class NettyGlobalSSLContextParametersTest extends BaseNettyTest {
@Override
- protected JndiRegistry createRegistry() throws Exception {
-
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource(this.getClass().getClassLoader().getResource("keystore.jks").toString());
ksp.setPassword("changeit");
-
+
KeyManagersParameters kmp = new KeyManagersParameters();
kmp.setKeyPassword("changeit");
kmp.setKeyStore(ksp);
-
+
TrustManagersParameters tmp = new TrustManagersParameters();
tmp.setKeyStore(ksp);
@@ -54,10 +53,8 @@ public class NettyGlobalSSLContextParametersTest extends BaseNettyTest {
sslContextParameters.setKeyManagers(kmp);
sslContextParameters.setTrustManagers(tmp);
sslContextParameters.setServerParameters(scsp);
-
- JndiRegistry registry = super.createRegistry();
- registry.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> sslContextParameters);
- return registry;
+ context.setSSLContextParameters(sslContextParameters);
+ return context;
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
index 836371f..21d472c 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
@@ -19,19 +19,16 @@ package org.apache.camel.component.olingo2;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.component.olingo2.api.impl.Olingo2AppImpl;
import org.apache.camel.component.olingo2.internal.Olingo2ApiCollection;
import org.apache.camel.component.olingo2.internal.Olingo2ApiName;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.component.AbstractApiComponent;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;
@@ -40,7 +37,7 @@ import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
/**
* Represents the component that manages {@link Olingo2Endpoint}.
*/
-public class Olingo2Component extends AbstractApiComponent<Olingo2ApiName, Olingo2Configuration, Olingo2ApiCollection> {
+public class Olingo2Component extends AbstractApiComponent<Olingo2ApiName, Olingo2Configuration, Olingo2ApiCollection> implements SSLContextParametersAware {
// component level shared proxy
private Olingo2AppWrapper apiProxy;
@@ -149,7 +146,7 @@ public class Olingo2Component extends AbstractApiComponent<Olingo2ApiName, Oling
SSLContextParameters sslContextParameters = configuration.getSslContextParameters();
if (sslContextParameters == null) {
// use global ssl config
- sslContextParameters = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+ sslContextParameters = getGlobalSSLContextParameters();
}
if (sslContextParameters == null) {
// use defaults if not specified
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Component.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Component.java b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Component.java
index b0d88ba..c4829a7 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Component.java
+++ b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Component.java
@@ -19,19 +19,16 @@ package org.apache.camel.component.olingo4;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.component.olingo4.api.impl.Olingo4AppImpl;
import org.apache.camel.component.olingo4.internal.Olingo4ApiCollection;
import org.apache.camel.component.olingo4.internal.Olingo4ApiName;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.component.AbstractApiComponent;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;
@@ -40,7 +37,7 @@ import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
/**
* Represents the component that manages {@link Olingo4Endpoint}.
*/
-public class Olingo4Component extends AbstractApiComponent<Olingo4ApiName, Olingo4Configuration, Olingo4ApiCollection> {
+public class Olingo4Component extends AbstractApiComponent<Olingo4ApiName, Olingo4Configuration, Olingo4ApiCollection> implements SSLContextParametersAware {
// component level shared proxy
private Olingo4AppWrapper apiProxy;
@@ -148,7 +145,7 @@ public class Olingo4Component extends AbstractApiComponent<Olingo4ApiName, Oling
SSLContextParameters sslContextParameters = configuration.getSslContextParameters();
if (sslContextParameters == null) {
// use global ssl config
- sslContextParameters = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+ sslContextParameters = getGlobalSSLContextParameters();
}
if (sslContextParameters == null) {
// use defaults if not specified
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
index bbd7a0c..5522cac 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
@@ -26,8 +26,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
@@ -36,13 +34,13 @@ import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.impl.HeaderFilterStrategyComponent;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.RestApiConsumerFactory;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.HostUtils;
import org.apache.camel.util.ObjectHelper;
@@ -50,7 +48,6 @@ import org.apache.camel.util.ServiceHelper;
import org.apache.camel.util.URISupport;
import org.apache.camel.util.UnsafeUriCharactersEncoder;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.restlet.Component;
import org.restlet.Restlet;
import org.restlet.Server;
@@ -70,7 +67,7 @@ import org.slf4j.LoggerFactory;
*
* @version
*/
-public class RestletComponent extends HeaderFilterStrategyComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory {
+public class RestletComponent extends HeaderFilterStrategyComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory, SSLContextParametersAware {
private static final Logger LOG = LoggerFactory.getLogger(RestletComponent.class);
private static final Object LOCK = new Object();
@@ -167,7 +164,7 @@ public class RestletComponent extends HeaderFilterStrategyComponent implements R
}
if (result.getSslContextParameters() == null) {
- result.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ result.setSslContextParameters(getGlobalSSLContextParameters());
}
return result;
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletHttpsWithGlobalSSLContextParametersTest.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletHttpsWithGlobalSSLContextParametersTest.java b/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletHttpsWithGlobalSSLContextParametersTest.java
index f1bde71..1c80547 100644
--- a/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletHttpsWithGlobalSSLContextParametersTest.java
+++ b/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletHttpsWithGlobalSSLContextParametersTest.java
@@ -18,14 +18,13 @@ package org.apache.camel.component.restlet;
import java.net.URL;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.JndiRegistry;
import org.apache.camel.util.jsse.KeyManagersParameters;
import org.apache.camel.util.jsse.KeyStoreParameters;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
@@ -38,9 +37,10 @@ public class RestletHttpsWithGlobalSSLContextParametersTest extends RestletTestS
private static final String REQUEST_MESSAGE =
"<mail><body>HelloWorld!</body><subject>test</subject><to>x@y.net</to></mail>";
-
+
@Override
- protected JndiRegistry createRegistry() throws Exception {
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource(this.getClass().getClassLoader().getResource("jsse/localhost.ks").getPath().toString());
ksp.setPassword("changeit");
@@ -52,12 +52,9 @@ public class RestletHttpsWithGlobalSSLContextParametersTest extends RestletTestS
SSLContextParameters sslContextParameters = new SSLContextParameters();
sslContextParameters.setKeyManagers(kmp);
- JndiRegistry registry = super.createRegistry();
- registry.bind("mySSLContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> sslContextParameters);
-
- return registry;
+ context.setSSLContextParameters(sslContextParameters);
+ return context;
}
-
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
index 2bb9db3..0f0b72d 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
@@ -20,14 +20,13 @@ import java.net.URI;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
import java.util.Set;
-import java.util.function.Supplier;
import java.util.regex.Pattern;
import org.apache.camel.CamelContext;
import org.apache.camel.ComponentVerifier;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.VerifiableComponent;
import org.apache.camel.component.salesforce.api.SalesforceException;
import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
@@ -36,13 +35,11 @@ import org.apache.camel.component.salesforce.internal.SalesforceSession;
import org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper;
import org.apache.camel.impl.DefaultComponent;
import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.ServiceHelper;
import org.apache.camel.util.StringHelper;
import org.apache.camel.util.jsse.KeyStoreParameters;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.eclipse.jetty.client.HttpProxy;
import org.eclipse.jetty.client.Origin;
import org.eclipse.jetty.client.ProxyConfiguration;
@@ -60,7 +57,7 @@ import static org.apache.camel.component.salesforce.SalesforceLoginConfig.DEFAUL
* Represents the component that manages {@link SalesforceEndpoint}.
*/
@Metadata(label = "verifiers", enums = "parameters,connectivity")
-public class SalesforceComponent extends DefaultComponent implements VerifiableComponent {
+public class SalesforceComponent extends DefaultComponent implements VerifiableComponent, SSLContextParametersAware {
static final int CONNECTION_TIMEOUT = 60000;
static final Pattern SOBJECT_NAME_PATTERN = Pattern.compile("^.*[\\?&]sObjectName=([^&,]+).*$");
@@ -300,7 +297,7 @@ public class SalesforceComponent extends DefaultComponent implements VerifiableC
// set ssl context parameters if set
SSLContextParameters contextParameters = sslContextParameters;
if (contextParameters == null) {
- contextParameters = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+ contextParameters = getGlobalSSLContextParameters();
}
if (contextParameters == null) {
contextParameters = new SSLContextParameters();
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
index 43afc64..965eece 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
@@ -17,25 +17,22 @@
package org.apache.camel.component.servicenow;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import org.apache.camel.CamelContext;
import org.apache.camel.ComponentVerifier;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.VerifiableComponent;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.EndpointHelper;
import org.apache.camel.util.IntrospectionSupport;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
/**
* Represents the component that manages {@link ServiceNowEndpoint}.
*/
@Metadata(label = "verifiers", enums = "parameters,connectivity")
-public class ServiceNowComponent extends UriEndpointComponent implements VerifiableComponent {
+public class ServiceNowComponent extends UriEndpointComponent implements VerifiableComponent, SSLContextParametersAware {
@Metadata(label = "advanced")
private ServiceNowConfiguration configuration;
@@ -83,7 +80,7 @@ public class ServiceNowComponent extends UriEndpointComponent implements Verifia
}
if (configuration.isUseGlobalSslContextParameters() && configuration.getSslContextParameters() == null) {
- configuration.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ configuration.setSslContextParameters(getGlobalSSLContextParameters());
}
return new ServiceNowEndpoint(uri, this, configuration, instanceName);
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
index fc5074d..c46e758 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
@@ -54,6 +54,7 @@ import org.apache.camel.spi.UnitOfWorkFactory;
import org.apache.camel.spring.CamelBeanPostProcessor;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -402,6 +403,11 @@ public class CamelAutoConfiguration {
camelContext.addRoutePolicyFactory(factory);
}
}
+ // add SSL context parameters
+ GlobalSSLContextParametersSupplier sslContextParametersSupplier = getSingleBeanOfType(applicationContext, GlobalSSLContextParametersSupplier.class);
+ if (sslContextParametersSupplier != null) {
+ camelContext.setSSLContextParameters(sslContextParametersSupplier.get());
+ }
// set the default thread pool profile if defined
initThreadPoolProfiles(applicationContext, camelContext);
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/security/CamelSSLAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/security/CamelSSLAutoConfiguration.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/security/CamelSSLAutoConfiguration.java
index a0fd18f..7479e82 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/security/CamelSSLAutoConfiguration.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/security/CamelSSLAutoConfiguration.java
@@ -17,18 +17,16 @@
package org.apache.camel.spring.boot.security;
import org.apache.camel.spring.boot.CamelAutoConfiguration;
-import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
-@ConditionalOnBean(CamelAutoConfiguration.class)
-@AutoConfigureAfter(CamelAutoConfiguration.class)
+@AutoConfigureBefore(CamelAutoConfiguration.class)
@EnableConfigurationProperties(CamelSSLConfigurationProperties.class)
@ConditionalOnProperty(value = "camel.ssl.enabled")
public class CamelSSLAutoConfiguration {
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java
index dde9b3a..0076f24 100644
--- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java
+++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java
@@ -19,13 +19,12 @@ package org.apache.camel.component.spring.ws;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import javax.xml.transform.TransformerFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.component.spring.ws.bean.CamelEndpointDispatcher;
import org.apache.camel.component.spring.ws.bean.CamelSpringWSEndpointMapping;
import org.apache.camel.component.spring.ws.filter.MessageFilter;
@@ -37,7 +36,6 @@ import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.EndpointHelper;
import org.apache.camel.util.UnsafeUriCharactersEncoder;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ws.client.core.WebServiceTemplate;
@@ -47,7 +45,7 @@ import org.springframework.xml.xpath.XPathExpressionFactory;
/**
* Apache Camel component for working with Spring Web Services (a.k.a Spring-WS).
*/
-public class SpringWebserviceComponent extends UriEndpointComponent {
+public class SpringWebserviceComponent extends UriEndpointComponent implements SSLContextParametersAware {
private static final Logger LOG = LoggerFactory.getLogger(SpringWebserviceComponent.class);
public SpringWebserviceComponent() {
@@ -74,7 +72,7 @@ public class SpringWebserviceComponent extends UriEndpointComponent {
configureMessageFilter(configuration);
if (configuration.getSslContextParameters() == null) {
- configuration.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ configuration.setSslContextParameters(getGlobalSSLContextParameters());
}
return new SpringWebserviceEndpoint(this, uri, configuration);
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
index 77b323f..bed8ba4 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
@@ -17,16 +17,13 @@
package org.apache.camel.component.stomp;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import org.apache.camel.Endpoint;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
-public class StompComponent extends UriEndpointComponent {
+public class StompComponent extends UriEndpointComponent implements SSLContextParametersAware {
@Metadata(label = "advanced")
private StompConfiguration configuration = new StompConfiguration();
@@ -54,7 +51,7 @@ public class StompComponent extends UriEndpointComponent {
setProperties(endpoint, parameters);
if (config.isUseGlobalSslContextParameters() && config.getSslContextParameters() == null) {
- config.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+ config.setSslContextParameters(getGlobalSSLContextParameters());
}
return endpoint;
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
index 0c0d1a7..99ce061 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
@@ -16,17 +16,16 @@
*/
package org.apache.camel.component.stomp;
+import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
public class StompGlobalSslConsumerTest extends StompConsumerTest {
@Override
- protected JndiRegistry createRegistry() throws Exception {
- JndiRegistry registry = super.createRegistry();
- registry.bind("sslSupplier", (GlobalSSLContextParametersSupplier) this::getClientSSLContextParameters);
- return registry;
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
+ context.setSSLContextParameters(getClientSSLContextParameters());
+ return context;
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
index b38940f..1bc598c 100644
--- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
@@ -31,6 +31,7 @@ import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.VerifiableComponent;
import org.apache.camel.impl.DefaultComponent;
import org.apache.camel.spi.Metadata;
@@ -55,7 +56,7 @@ import org.slf4j.LoggerFactory;
* Represents the component that manages {@link UndertowEndpoint}.
*/
@Metadata(label = "verifiers", enums = "parameters,connectivity")
-public class UndertowComponent extends DefaultComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory, VerifiableComponent {
+public class UndertowComponent extends DefaultComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory, VerifiableComponent, SSLContextParametersAware {
private static final Logger LOG = LoggerFactory.getLogger(UndertowEndpoint.class);
private Map<UndertowHostKey, UndertowHost> undertowRegistry = new ConcurrentHashMap<UndertowHostKey, UndertowHost>();
@@ -85,7 +86,7 @@ public class UndertowComponent extends DefaultComponent implements RestConsumerF
// determine sslContextParameters
SSLContextParameters sslParams = this.sslContextParameters;
if (sslParams == null) {
- sslParams = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+ sslParams = getGlobalSSLContextParameters();
}
// create the endpoint first
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
index 323a522..c575960 100644
--- a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
@@ -23,18 +23,15 @@ import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
import javax.servlet.DispatcherType;
import org.apache.camel.Endpoint;
import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
@@ -58,7 +55,7 @@ import org.eclipse.jetty.util.thread.ThreadPool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class WebsocketComponent extends UriEndpointComponent {
+public class WebsocketComponent extends UriEndpointComponent implements SSLContextParametersAware {
protected static final Logger LOG = LoggerFactory.getLogger(WebsocketComponent.class);
protected static final HashMap<String, ConnectorRef> CONNECTORS = new HashMap<String, ConnectorRef>();
@@ -306,7 +303,7 @@ public class WebsocketComponent extends UriEndpointComponent {
sslContextParameters = getSslContextParameters();
}
if (useGlobalSslContextParameters && sslContextParameters == null) {
- sslContextParameters = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+ sslContextParameters = getGlobalSSLContextParameters();
}
// prefer to use endpoint configured over component configured
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
index d38e0fe..2ba350a 100644
--- a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
+++ b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
@@ -29,14 +29,13 @@ import javax.net.ssl.SSLContext;
import io.netty.handler.ssl.ClientAuth;
import io.netty.handler.ssl.JdkSslContext;
+import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.JndiRegistry;
import org.apache.camel.test.AvailablePortFinder;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.apache.camel.util.jsse.KeyManagersParameters;
import org.apache.camel.util.jsse.KeyStoreParameters;
import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
import org.apache.camel.util.jsse.SSLContextServerParameters;
import org.apache.camel.util.jsse.TrustManagersParameters;
import org.asynchttpclient.AsyncHttpClient;
@@ -73,7 +72,8 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
}
@Override
- protected JndiRegistry createRegistry() throws Exception {
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource("jsse/localhost.ks");
ksp.setPassword(pwd);
@@ -93,10 +93,8 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
sslContextParameters.setKeyManagers(kmp);
sslContextParameters.setTrustManagers(tmp);
sslContextParameters.setServerParameters(scsp);
-
- JndiRegistry registry = super.createRegistry();
- registry.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> sslContextParameters);
- return registry;
+ context.setSSLContextParameters(sslContextParameters);
+ return context;
}
protected void setSystemProp(String key, String value) {
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
index d21f10e..d8d6988 100644
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.http.springboot;
import org.apache.camel.CamelContext;
import org.apache.camel.component.http.SSLContextParametersSecureProtocolSocketFactory;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.slf4j.Logger;
@@ -38,8 +38,8 @@ import org.springframework.context.annotation.Configuration;
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Configuration
-@ConditionalOnBean(type = {"org.apache.camel.spring.boot.CamelAutoConfiguration", "org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier"})
-@AutoConfigureAfter(name = {"org.apache.camel.spring.boot.CamelAutoConfiguration", "org.apache.camel.spring.boot.security.CamelSSLAutoConfiguration"})
+@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
+@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@ConditionalOnProperty(value = "camel.component.http.ssl.auto-configure", matchIfMissing = true)
public class HttpComponentSSLAutoConfiguration {
@@ -61,16 +61,18 @@ public class HttpComponentSSLAutoConfiguration {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
try {
- GlobalSSLContextParametersSupplier sslContextParameters = beanFactory.getBean(GlobalSSLContextParametersSupplier.class);
+ SSLContextParameters globalSSLParams = context.getSSLContextParameters();
- ProtocolSocketFactory factory =
- new SSLContextParametersSecureProtocolSocketFactory(sslContextParameters.get(), context);
+ if (globalSSLParams != null) {
+ ProtocolSocketFactory factory =
+ new SSLContextParametersSecureProtocolSocketFactory(globalSSLParams, context);
- Protocol.registerProtocol("https",
- new Protocol(
- "https",
- factory,
- 443));
+ Protocol.registerProtocol("https",
+ new Protocol(
+ "https",
+ factory,
+ 443));
+ }
} catch (NoUniqueBeanDefinitionException e) {
LOG.warn("Multiple instance of SSLContextParameters found, skipping configuration");
http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/platforms/spring-boot/components-starter/camel-undertow-starter/src/test/java/org/apache/camel/component/undertow/UndertowSSLTest.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-undertow-starter/src/test/java/org/apache/camel/component/undertow/UndertowSSLTest.java b/platforms/spring-boot/components-starter/camel-undertow-starter/src/test/java/org/apache/camel/component/undertow/UndertowSSLTest.java
index b0d456b..6712120 100644
--- a/platforms/spring-boot/components-starter/camel-undertow-starter/src/test/java/org/apache/camel/component/undertow/UndertowSSLTest.java
+++ b/platforms/spring-boot/components-starter/camel-undertow-starter/src/test/java/org/apache/camel/component/undertow/UndertowSSLTest.java
@@ -54,11 +54,11 @@ import static org.junit.Assert.assertEquals;
})
public class UndertowSSLTest {
+ private static int port;
+
@Autowired
private ProducerTemplate producerTemplate;
- private static int port;
-
@BeforeClass
public static void init() {
port = AvailablePortFinder.getNextAvailable();