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:03 UTC

[07/13] camel git commit: CAMEL-10650: moving global config to Camel context

CAMEL-10650: moving global config to Camel context


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8471034c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8471034c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8471034c

Branch: refs/heads/master
Commit: 8471034ce6d027b1614ca8e98633321b5e26410f
Parents: ef916c2
Author: Nicola Ferraro <ni...@gmail.com>
Authored: Mon Apr 10 17:17:44 2017 +0200
Committer: Nicola Ferraro <ni...@gmail.com>
Committed: Tue Apr 11 16:04:22 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/CamelContext.java     |  11 ++
 .../apache/camel/SSLContextParametersAware.java |  33 ++++++
 .../apache/camel/impl/DefaultCamelContext.java  |  12 +++
 .../camel/component/ahc/AhcComponent.java       |   9 +-
 ...entConfigGlobalSslContextParametersTest.java |  13 +--
 .../apache/camel/component/ahc/BaseAhcTest.java |   6 +-
 .../camel/component/cometd/CometdComponent.java |   9 +-
 ...extParametersCometdProducerConsumerTest.java |  11 +-
 .../camel/component/consul/ConsulComponent.java |   8 +-
 .../camel/component/cxf/CxfComponent.java       |   8 +-
 .../component/cxf/jaxrs/CxfRsComponent.java     |   8 +-
 .../cxf/jaxrs/CxfRsGlobalSslProducerTest.java   |  10 ++
 .../camel/component/cxf/ssl/SslGlobalTest.java  |  20 ++--
 .../util/CxfSSLContextParameterSupplier.java    |  43 --------
 .../camel/component/cxf/CxfGlobalSslContext.xml |   3 -
 .../cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml  |   3 -
 .../camel/component/etcd/EtcdComponent.java     |   8 +-
 .../component/file/remote/FtpsComponent.java    |   9 +-
 ...ntAuthAndGlobalSSLContextParametersTest.java |  16 ++-
 .../camel/component/http4/HttpComponent.java    |   8 +-
 .../camel/component/irc/IrcComponent.java       |   9 +-
 .../component/jetty/JettyHttpComponent.java     | 107 +++++++++----------
 .../camel/component/kafka/KafkaComponent.java   |   9 +-
 .../lumberjack/LumberjackComponent.java         |   9 +-
 .../LumberjackComponentGlobalSSLTest.java       |  11 +-
 .../camel/component/mail/MailComponent.java     |   9 +-
 .../camel/component/mina2/Mina2Component.java   |   9 +-
 .../Mina2SslGlobalContextParametersTcpTest.java |  16 +--
 .../camel/component/nats/NatsComponent.java     |   9 +-
 .../netty/http/NettyHttpComponent.java          |   9 +-
 .../util/NettySSLContextParameterSupplier.java  |  43 --------
 .../netty/http/NettyHttpGlobalSSLTest.java      | 104 ++++++++++++++++++
 .../http/SpringNettyHttpGlobalSSLTest.java      |  80 --------------
 .../netty/http/SpringNettyHttpGlobalSSLTest.xml |  65 -----------
 .../camel/component/netty/NettyComponent.java   |   9 +-
 .../NettyGlobalSSLContextParametersTest.java    |  17 ++-
 .../netty4/http/NettyHttpComponent.java         |   9 +-
 .../camel/component/netty4/NettyComponent.java  |   9 +-
 .../NettyGlobalSSLContextParametersTest.java    |  17 ++-
 .../component/olingo2/Olingo2Component.java     |   9 +-
 .../component/olingo4/Olingo4Component.java     |   9 +-
 .../component/restlet/RestletComponent.java     |   9 +-
 ...HttpsWithGlobalSSLContextParametersTest.java |  15 ++-
 .../salesforce/SalesforceComponent.java         |   9 +-
 .../servicenow/ServiceNowComponent.java         |   9 +-
 .../spring/boot/CamelAutoConfiguration.java     |   6 ++
 .../security/CamelSSLAutoConfiguration.java     |   8 +-
 .../spring/ws/SpringWebserviceComponent.java    |   8 +-
 .../camel/component/stomp/StompComponent.java   |   9 +-
 .../stomp/StompGlobalSslConsumerTest.java       |  11 +-
 .../component/undertow/UndertowComponent.java   |   5 +-
 .../component/websocket/WebsocketComponent.java |   9 +-
 ...bsocketSSLContextGlobalRouteExampleTest.java |  12 +--
 .../HttpComponentSSLAutoConfiguration.java      |  24 +++--
 .../component/undertow/UndertowSSLTest.java     |   4 +-
 55 files changed, 398 insertions(+), 556 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/camel-core/src/main/java/org/apache/camel/CamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-core/src/main/java/org/apache/camel/CamelContext.java
index b0789c4..d4fd6ae 100644
--- a/camel-core/src/main/java/org/apache/camel/CamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java
@@ -85,6 +85,7 @@ import org.apache.camel.spi.UuidGenerator;
 import org.apache.camel.spi.Validator;
 import org.apache.camel.spi.ValidatorRegistry;
 import org.apache.camel.util.LoadPropertiesException;
+import org.apache.camel.util.jsse.SSLContextParameters;
 
 /**
  * Interface used to represent the CamelContext used to configure routes and the
@@ -1977,4 +1978,14 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
      */
     void addLogListener(LogListener listener);
 
+    /**
+     * Sets the global SSL context parameters.
+     */
+    void setSSLContextParameters(SSLContextParameters sslContextParameters);
+
+    /**
+     * Gets the global SSL context parameters if configured.
+     */
+    SSLContextParameters getSSLContextParameters();
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/camel-core/src/main/java/org/apache/camel/SSLContextParametersAware.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/SSLContextParametersAware.java b/camel-core/src/main/java/org/apache/camel/SSLContextParametersAware.java
new file mode 100644
index 0000000..b76c041
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/SSLContextParametersAware.java
@@ -0,0 +1,33 @@
+/**
+ * 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;
+
+import org.apache.camel.util.jsse.SSLContextParameters;
+
+/**
+ * Indicates that an object is able to use the global {@link SSLContextParameters} if configured.
+ */
+public interface SSLContextParametersAware extends CamelContextAware {
+
+    /**
+     * Returns the global {@link SSLContextParameters} if configured.
+     */
+    default SSLContextParameters getGlobalSSLContextParameters() {
+        return getCamelContext().getSSLContextParameters();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index bea497d..c85ce8c 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -186,6 +186,7 @@ import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.StringQuoteHelper;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.URISupport;
+import org.apache.camel.util.jsse.SSLContextParameters;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
@@ -301,6 +302,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     private ValidatorRegistry<ValidatorKey> validatorRegistry;
     private ReloadStrategy reloadStrategy;
     private final RuntimeCamelCatalog runtimeCamelCatalog = new DefaultRuntimeCamelCatalog(this, true);
+    private SSLContextParameters sslContextParameters;
 
     /**
      * Creates the {@link CamelContext} using {@link JndiRegistry} as registry,
@@ -4417,6 +4419,16 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return runtimeCamelCatalog;
     }
 
+    @Override
+    public void setSSLContextParameters(SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    @Override
+    public SSLContextParameters getSSLContextParameters() {
+        return this.sslContextParameters;
+    }
+
     protected Map<String, RouteService> getRouteServices() {
         return routeServices;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
index afb9308..bf2aec1 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
@@ -19,19 +19,16 @@ package org.apache.camel.component.ahc;
 import java.net.URI;
 import java.util.LinkedHashMap;
 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.HeaderFilterStrategyComponent;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
 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.asynchttpclient.AsyncHttpClient;
 import org.asynchttpclient.AsyncHttpClientConfig;
 import org.asynchttpclient.DefaultAsyncHttpClientConfig;
@@ -43,7 +40,7 @@ import org.slf4j.LoggerFactory;
 /**
  *  To call external HTTP services using <a href="http://github.com/sonatype/async-http-client">Async Http Client</a>
  */
-public class AhcComponent extends HeaderFilterStrategyComponent {
+public class AhcComponent extends HeaderFilterStrategyComponent implements SSLContextParametersAware {
     
     private static final Logger LOG = LoggerFactory.getLogger(AhcComponent.class);
     
@@ -71,7 +68,7 @@ public class AhcComponent extends HeaderFilterStrategyComponent {
 
         SSLContextParameters ssl = getSslContextParameters();
         if (ssl == null) {
-            ssl = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+            ssl = getGlobalSSLContextParameters();
         }
 
         // Do not set the HTTP URI because we still have all of the Camel internal

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigGlobalSslContextParametersTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigGlobalSslContextParametersTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigGlobalSslContextParametersTest.java
index 4dd2b23..3314fbf 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigGlobalSslContextParametersTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcComponentClientConfigGlobalSslContextParametersTest.java
@@ -16,9 +16,7 @@
  */
 package org.apache.camel.component.ahc;
 
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
+import org.apache.camel.CamelContext;
 
 /**
  * Lookup from the registry should work when only one set of context parameters is present.
@@ -26,11 +24,10 @@ import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 public class AhcComponentClientConfigGlobalSslContextParametersTest extends AhcComponentClientConfigTest {
 
     @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry registry = super.createRegistry();
-        SSLContextParameters params = registry.lookup("sslContextParameters", SSLContextParameters.class);
-        registry.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> params);
-        return registry;
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        context.setSSLContextParameters(createSSLContextParameters());
+        return context;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
index 6481b05..aa233c0 100644
--- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
+++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
@@ -65,6 +65,10 @@ public abstract class BaseAhcTest extends CamelTestSupport {
     }
     
     protected void addSslContextParametersToRegistry(JndiRegistry registry) {
+        registry.bind("sslContextParameters", createSSLContextParameters());
+    }
+
+    protected SSLContextParameters createSSLContextParameters() {
         KeyStoreParameters ksp = new KeyStoreParameters();
         ksp.setResource(this.getClass().getClassLoader().getResource("jsse/localhost.ks").toString());
         ksp.setPassword(KEY_STORE_PASSWORD);
@@ -89,7 +93,7 @@ public abstract class BaseAhcTest extends CamelTestSupport {
         // Caused by: javax.net.ssl.SSLException: bad record MAC
         sslContextParameters.setSecureSocketProtocol("SSLv3");
 
-        registry.bind("sslContextParameters", sslContextParameters);
+        return sslContextParameters;
     }
     
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
index 134611c..f4b9f4c 100644
--- a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
+++ b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
@@ -22,17 +22,14 @@ import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
 import javax.net.ssl.SSLContext;
 import javax.servlet.DispatcherType;
 
 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.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 import org.cometd.bayeux.server.BayeuxServer;
 import org.cometd.bayeux.server.SecurityPolicy;
 import org.cometd.server.BayeuxServerImpl;
@@ -54,7 +51,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Component for Jetty Cometd
  */
-public class CometdComponent extends UriEndpointComponent {
+public class CometdComponent extends UriEndpointComponent implements SSLContextParametersAware {
     private static final Logger LOG = LoggerFactory.getLogger(CometdComponent.class);
 
     private final Map<String, ConnectorRef> connectors = new LinkedHashMap<String, ConnectorRef>();
@@ -230,7 +227,7 @@ public class CometdComponent extends UriEndpointComponent {
         ServerConnector sslSocketConnector = null;
         SSLContextParameters sslParams = this.sslContextParameters;
         if (sslParams == null) {
-            sslParams = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+            sslParams = getGlobalSSLContextParameters();
         }
         if (sslParams != null) {
             SslContextFactory sslContextFactory = new CometdComponentSslContextFactory();

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cometd/src/test/java/org/apache/camel/component/cometd/SslGlobalContextParametersCometdProducerConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cometd/src/test/java/org/apache/camel/component/cometd/SslGlobalContextParametersCometdProducerConsumerTest.java b/components/camel-cometd/src/test/java/org/apache/camel/component/cometd/SslGlobalContextParametersCometdProducerConsumerTest.java
index 0c2a010..0291f23 100644
--- a/components/camel-cometd/src/test/java/org/apache/camel/component/cometd/SslGlobalContextParametersCometdProducerConsumerTest.java
+++ b/components/camel-cometd/src/test/java/org/apache/camel/component/cometd/SslGlobalContextParametersCometdProducerConsumerTest.java
@@ -18,16 +18,15 @@ package org.apache.camel.component.cometd;
 
 import java.util.List;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-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.TrustManagersParameters;
 import org.junit.Before;
 import org.junit.Test;
@@ -77,8 +76,8 @@ public class SslGlobalContextParametersCometdProducerConsumerTest extends CamelT
     }
 
     @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry registry = super.createRegistry();
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
         KeyStoreParameters ksp = new KeyStoreParameters();
         ksp.setResource("jsse/localhost.ks");
         ksp.setPassword("changeit");
@@ -93,8 +92,8 @@ public class SslGlobalContextParametersCometdProducerConsumerTest extends CamelT
         SSLContextParameters sslContextParameters = new SSLContextParameters();
         sslContextParameters.setKeyManagers(kmp);
         sslContextParameters.setTrustManagers(tmp);
-        registry.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> sslContextParameters);
-        return registry;
+        context.setSSLContextParameters(sslContextParameters);
+        return context;
     }
 
     public static class Person {

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java b/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
index c254f9d..77eb564 100644
--- a/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
+++ b/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
@@ -18,10 +18,10 @@ package org.apache.camel.component.consul;
 
 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.consul.enpoint.ConsulAgentProducer;
 import org.apache.camel.component.consul.enpoint.ConsulCatalogProducer;
 import org.apache.camel.component.consul.enpoint.ConsulCoordinatesProducer;
@@ -35,14 +35,12 @@ import org.apache.camel.component.consul.enpoint.ConsulSessionProducer;
 import org.apache.camel.component.consul.enpoint.ConsulStatusProducer;
 import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 
 /**
  * Represents the component that manages {@link ConsulEndpoint}.
  */
-public class ConsulComponent extends DefaultComponent {
+public class ConsulComponent extends DefaultComponent implements SSLContextParametersAware {
 
     @Metadata(label = "advanced")
     private ConsulConfiguration configuration = new ConsulConfiguration();
@@ -151,7 +149,7 @@ public class ConsulComponent extends DefaultComponent {
 
         // using global ssl context parameters if set
         if (configuration.isUseGlobalSslContextParameters() && configuration.getSslContextParameters() == null) {
-            configuration.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            configuration.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         setProperties(configuration, parameters);

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
index fee389a..1e64503 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
@@ -17,17 +17,15 @@
 package org.apache.camel.component.cxf;
 
 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.cxf.common.message.CxfConstants;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.IntrospectionSupport;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 import org.apache.cxf.message.Message;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,7 +33,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Defines the <a href="http://camel.apache.org/cxf.html">CXF Component</a>
  */
-public class CxfComponent extends HeaderFilterStrategyComponent {
+public class CxfComponent extends HeaderFilterStrategyComponent implements SSLContextParametersAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(CxfComponent.class);
 
@@ -121,7 +119,7 @@ public class CxfComponent extends HeaderFilterStrategyComponent {
 
         // use global ssl config if set
         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-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java
index 8a43055..f18c2ef 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java
@@ -19,18 +19,16 @@ package org.apache.camel.component.cxf.jaxrs;
 import java.util.HashMap;
 import java.util.Iterator;
 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.cxf.blueprint.BlueprintSupport;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.CastUtils;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 import org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,7 +36,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Defines the <a href="http://camel.apache.org/cxfrs.html">CXF RS Component</a> 
  */
-public class CxfRsComponent extends HeaderFilterStrategyComponent {
+public class CxfRsComponent extends HeaderFilterStrategyComponent implements SSLContextParametersAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(CxfRsComponent.class);
 
@@ -117,7 +115,7 @@ public class CxfRsComponent extends HeaderFilterStrategyComponent {
 
         // use global ssl config if set
         if (answer.getSslContextParameters() == null) {
-            answer.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            answer.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         return answer;

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsGlobalSslProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsGlobalSslProducerTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsGlobalSslProducerTest.java
index 556dc07..c9d279e 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsGlobalSslProducerTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsGlobalSslProducerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.cxf.jaxrs;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Message;
@@ -24,6 +25,7 @@ import org.apache.camel.component.cxf.CXFTestSupport;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.component.cxf.jaxrs.testbean.Customer;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.camel.util.jsse.SSLContextParameters;
 import org.junit.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -47,6 +49,14 @@ public class CxfRsGlobalSslProducerTest extends CamelSpringTestSupport {
         return new ClassPathXmlApplicationContext("org/apache/camel/component/cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml");
     }
 
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        SSLContextParameters parameters = context.getRegistry().lookupByNameAndType("mySslContext", SSLContextParameters.class);
+        context.setSSLContextParameters(parameters);
+        return context;
+    }
+
     protected void setupDestinationURL(Message inMessage) {
         // do nothing here
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/ssl/SslGlobalTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/ssl/SslGlobalTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/ssl/SslGlobalTest.java
index a7ead6d..7fe5e4f 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/ssl/SslGlobalTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/ssl/SslGlobalTest.java
@@ -19,13 +19,13 @@ package org.apache.camel.component.cxf.ssl;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.component.cxf.CXFTestSupport;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.apache.camel.util.jsse.SSLContextParameters;
 import org.junit.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -44,16 +44,12 @@ public class SslGlobalTest extends CamelSpringTestSupport {
         return true;
     }
 
-    @AfterClass
-    public static void cleanUp() {
-        //System.clearProperty("cxf.config.file");
-    }
-
-    @BeforeClass
-    public static void startService() {
-        //System.getProperties().put("cxf.config.file", "/org/apache/camel/component/cxf/CxfSslContext.xml");
-        //Greeter implementor = new GreeterImpl();
-        //Endpoint.publish(JAXWS_SERVER_ADDRESS, implementor);
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        SSLContextParameters parameters = context.getRegistry().lookupByNameAndType("mySslContext", SSLContextParameters.class);
+        context.setSSLContextParameters(parameters);
+        return context;
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfSSLContextParameterSupplier.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfSSLContextParameterSupplier.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfSSLContextParameterSupplier.java
deleted file mode 100644
index a75f956..0000000
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfSSLContextParameterSupplier.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2016 Red Hat, Inc.
- *
- * Red Hat 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.cxf.util;
-
-import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
-
-/**
- * Class for binding a SSSLContextParametersSupplier to the registry.
- */
-public class CxfSSLContextParameterSupplier implements GlobalSSLContextParametersSupplier {
-
-    private SSLContextParameters sslContextParameters;
-
-    public CxfSSLContextParameterSupplier() {
-    }
-
-    public SSLContextParameters getSslContextParameters() {
-        return sslContextParameters;
-    }
-
-    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
-        this.sslContextParameters = sslContextParameters;
-    }
-
-    @Override
-    public SSLContextParameters get() {
-        return sslContextParameters;
-    }
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfGlobalSslContext.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfGlobalSslContext.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfGlobalSslContext.xml
index f1ac637..f859396 100644
--- a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfGlobalSslContext.xml
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfGlobalSslContext.xml
@@ -59,9 +59,6 @@
                       password="changeit"/>
         </trustManagers>
     </sslContextParameters>
-    <bean id="sslContextParametersSupplier" class="org.apache.camel.component.cxf.util.CxfSSLContextParameterSupplier">
-        <property name="sslContextParameters" ref="mySslContext" />
-    </bean>
 
     <bean id="defaultHostnameVerifier"
           class="org.apache.cxf.transport.https.httpclient.DefaultHostnameVerifier"/>

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml
index 8d3c11f..eb55653 100644
--- a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringGlobalSslProducer.xml
@@ -68,9 +68,6 @@
                       password="changeit"/>
         </trustManagers>
     </sslContextParameters>
-    <bean id="sslContextParametersSupplier" class="org.apache.camel.component.cxf.util.CxfSSLContextParameterSupplier">
-        <property name="sslContextParameters" ref="mySslContext" />
-    </bean>
 
     <bean id="defaultHostnameVerifier"
           class="org.apache.cxf.transport.https.httpclient.DefaultHostnameVerifier"/>

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
index 2a91147..c6f54d0 100644
--- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
+++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
@@ -18,21 +18,19 @@ package org.apache.camel.component.etcd;
 
 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.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 
 /**
  * Represents the component that manages {@link AbstractEtcdEndpoint}.
  */
-public class EtcdComponent extends DefaultComponent {
+public class EtcdComponent extends DefaultComponent implements SSLContextParametersAware {
 
     @Metadata(label = "advanced")
     private EtcdConfiguration configuration = new EtcdConfiguration();
@@ -151,7 +149,7 @@ public class EtcdComponent extends DefaultComponent {
         setProperties(configuration, parameters);
 
         if (configuration.isUseGlobalSslContextParameters() && configuration.getSslContextParameters() == null) {
-            configuration.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            configuration.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         return configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsComponent.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsComponent.java
index 18db183..a981c9b 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsComponent.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsComponent.java
@@ -18,14 +18,11 @@ package org.apache.camel.component.file.remote;
 
 import java.net.URI;
 import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.component.file.GenericFileEndpoint;
-import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.IntrospectionSupport;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 import org.apache.commons.net.ftp.FTPFile;
 
 /**
@@ -35,7 +32,7 @@ import org.apache.commons.net.ftp.FTPFile;
  * 
  * @version 
  */
-public class FtpsComponent extends FtpComponent {
+public class FtpsComponent extends FtpComponent implements SSLContextParametersAware {
 
     public FtpsComponent() {
         setEndpointClass(FtpsEndpoint.class);
@@ -63,7 +60,7 @@ public class FtpsComponent extends FtpComponent {
         extractAndSetFtpClientParameters(parameters, endpoint);
 
         if (endpoint.getSslContextParameters() == null) {
-            endpoint.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            endpoint.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         return endpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndGlobalSSLContextParametersTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndGlobalSSLContextParametersTest.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndGlobalSSLContextParametersTest.java
index 0fddab2..b9195d3 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndGlobalSSLContextParametersTest.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndGlobalSSLContextParametersTest.java
@@ -16,30 +16,28 @@
  */
 package org.apache.camel.component.file.remote;
 
-import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.CamelContext;
 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.TrustManagersParameters;
 
 public class FileToFtpsExplicitSSLWithoutClientAuthAndGlobalSSLContextParametersTest extends FileToFtpsExplicitSSLWithoutClientAuthTest {
 
     @Override
-    protected JndiRegistry createRegistry() throws Exception {
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
         KeyStoreParameters ksp = new KeyStoreParameters();
         ksp.setResource("server.jks");
         ksp.setPassword("password");
-        
+
         TrustManagersParameters tmp = new TrustManagersParameters();
         tmp.setKeyStore(ksp);
-        
+
         SSLContextParameters sslContextParameters = new SSLContextParameters();
         sslContextParameters.setSecureSocketProtocol("SSL");
         sslContextParameters.setTrustManagers(tmp);
-        
-        JndiRegistry registry = super.createRegistry();
-        registry.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> sslContextParameters);
-        return registry;
+        context.setSSLContextParameters(sslContextParameters);
+        return context;
     }
     
     protected String getFtpUrl() {

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
index 523031d..b9996d9 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
@@ -23,7 +23,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
-import java.util.function.Supplier;
 import javax.net.ssl.HostnameVerifier;
 
 import org.apache.camel.CamelContext;
@@ -31,6 +30,7 @@ import org.apache.camel.ComponentVerifier;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Producer;
 import org.apache.camel.ResolveEndpointFailedException;
+import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.VerifiableComponent;
 import org.apache.camel.http.common.HttpBinding;
 import org.apache.camel.http.common.HttpCommonComponent;
@@ -40,7 +40,6 @@ import org.apache.camel.http.common.UrlRewrite;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
@@ -48,7 +47,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.apache.http.client.CookieStore;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.config.Registry;
@@ -72,7 +70,7 @@ import org.slf4j.LoggerFactory;
  * @version 
  */
 @Metadata(label = "verifiers", enums = "parameters,connectivity")
-public class HttpComponent extends HttpCommonComponent implements RestProducerFactory, VerifiableComponent {
+public class HttpComponent extends HttpCommonComponent implements RestProducerFactory, VerifiableComponent, SSLContextParametersAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpComponent.class);
 
@@ -188,7 +186,7 @@ public class HttpComponent extends HttpCommonComponent implements RestProducerFa
             sslContextParameters = getSslContextParameters();
         }
         if (sslContextParameters == null) {
-            sslContextParameters = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+            sslContextParameters = getGlobalSSLContextParameters();
         }
         
         String httpMethodRestrict = getAndRemoveParameter(parameters, "httpMethodRestrict", String.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcComponent.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcComponent.java
index cee3886..d7926aa 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcComponent.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcComponent.java
@@ -18,14 +18,11 @@ package org.apache.camel.component.irc;
 
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
 
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.impl.UriEndpointComponent;
-import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 import org.schwering.irc.lib.IRCConnection;
 import org.schwering.irc.lib.IRCEventListener;
 import org.schwering.irc.lib.ssl.SSLIRCConnection;
@@ -37,7 +34,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version
  */
-public class IrcComponent extends UriEndpointComponent {
+public class IrcComponent extends UriEndpointComponent implements SSLContextParametersAware {
     private static final Logger LOG = LoggerFactory.getLogger(IrcComponent.class);
     private final transient Map<String, IRCConnection> connectionCache = new HashMap<String, IRCConnection>();
 
@@ -82,7 +79,7 @@ public class IrcComponent extends UriEndpointComponent {
 
             SSLContextParameters sslParams = configuration.getSslContextParameters();
             if (sslParams == null) {
-                sslParams = Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+                sslParams = getGlobalSSLContextParameters();
             }
 
             if (sslParams != null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index 3e16d04..ac4059f 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -29,8 +29,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.management.MBeanServer;
 import javax.servlet.Filter;
 import javax.servlet.RequestDispatcher;
@@ -43,6 +41,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.http.common.CamelServlet;
 import org.apache.camel.http.common.HttpBinding;
 import org.apache.camel.http.common.HttpCommonComponent;
@@ -60,7 +59,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;
@@ -69,7 +67,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.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.client.HttpClientTransport;
 import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
@@ -102,13 +99,13 @@ import org.slf4j.LoggerFactory;
  * An HttpComponent which starts an embedded Jetty for to handle consuming from
  * the http endpoints.
  *
- * @version 
+ * @version
  */
-public abstract class JettyHttpComponent extends HttpCommonComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory {
+public abstract class JettyHttpComponent extends HttpCommonComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory, SSLContextParametersAware {
     public static final String TMP_DIR = "CamelJettyTempDir";
-    
+
     protected static final HashMap<String, ConnectorRef> CONNECTORS = new HashMap<String, ConnectorRef>();
-   
+
     private static final Logger LOG = LoggerFactory.getLogger(JettyHttpComponent.class);
     private static final String JETTY_SSL_KEYSTORE = "org.eclipse.jetty.ssl.keystore";
     private static final String JETTY_SSL_KEYPASSWORD = "org.eclipse.jetty.ssl.keypassword";
@@ -166,7 +163,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         public int decrement() {
             return --refCount;
         }
-        
+
         public int getRefCount() {
             return refCount;
         }
@@ -189,7 +186,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         UrlRewrite urlRewrite = resolveAndRemoveReferenceParameter(parameters, "urlRewrite", UrlRewrite.class);
         SSLContextParameters sslContextParameters = resolveAndRemoveReferenceParameter(parameters, "sslContextParameters", SSLContextParameters.class);
         SSLContextParameters ssl = sslContextParameters != null ? sslContextParameters : this.sslContextParameters;
-        ssl = ssl != null ? ssl : Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null);
+        ssl = ssl != null ? ssl : getGlobalSSLContextParameters();
         String proxyHost = getAndRemoveParameter(parameters, "proxyHost", String.class, getProxyHost());
         Integer proxyPort = getAndRemoveParameter(parameters, "proxyPort", Integer.class, getProxyPort());
         Integer httpClientMinThreads = getAndRemoveParameter(parameters, "httpClientMinThreads", Integer.class, this.httpClientMinThreads);
@@ -238,7 +235,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             endpoint.setUrlRewrite(urlRewrite);
         }
         // setup the proxy host and proxy port
-        
+
         if (httpClientParameters != null && !httpClientParameters.isEmpty()) {
             endpoint.setHttpClientParameters(httpClientParameters);
         }
@@ -266,7 +263,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         }
         if (enableJmx != null) {
             endpoint.setEnableJmx(enableJmx);
-        } else { 
+        } else {
             // set this option based on setting of JettyHttpComponent
             endpoint.setEnableJmx(isEnableJmx());
         }
@@ -344,11 +341,11 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
                     enableSessionSupport(connectorRef.server, connectorKey);
                 }
                 connectorRef.server.start();
-                
+
                 CONNECTORS.put(connectorKey, connectorRef);
-                
+
             } else {
-                
+
                 if (endpoint.getHandlers() != null && !endpoint.getHandlers().isEmpty()) {
                     // As the server is started, we need to stop the server for a while to add the new handler
                     connectorRef.server.stop();
@@ -362,11 +359,11 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             if (endpoint.isSessionSupport()) {
                 enableSessionSupport(connectorRef.server, connectorKey);
             }
-            
+
             if (endpoint.isEnableMultipartFilter()) {
                 enableMultipartFilter(endpoint, connectorRef.server, connectorKey);
             }
-            
+
             if (endpoint.getFilters() != null && endpoint.getFilters().size() > 0) {
                 setFilters(endpoint, connectorRef.server, connectorKey);
             }
@@ -396,7 +393,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             }
         }
     }
-    
+
     private void setFilters(JettyHttpEndpoint endpoint, Server server, String connectorKey) {
         ServletContextHandler context = server.getChildHandlerByClass(ServletContextHandler.class);
         List<Filter> filters = endpoint.getFilters();
@@ -416,7 +413,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             addFilter(context, filterHolder, pathSpec);
         }
     }
-    
+
     private void addFilter(ServletContextHandler context, FilterHolder filterHolder, String pathSpec) {
         context.getServletHandler().addFilterWithMapping(filterHolder, pathSpec, 0);
     }
@@ -461,7 +458,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         // If the connector is not needed anymore then stop it
         HttpCommonEndpoint endpoint = consumer.getEndpoint();
         String connectorKey = getConnectorKey(endpoint);
-        
+
         synchronized (CONNECTORS) {
             ConnectorRef connectorRef = CONNECTORS.get(connectorKey);
             if (connectorRef != null) {
@@ -481,14 +478,14 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             }
         }
     }
-    
+
     private String getConnectorKey(HttpCommonEndpoint endpoint) {
         return endpoint.getProtocol() + ":" + endpoint.getHttpUri().getHost() + ":" + endpoint.getPort();
     }
 
     // Properties
     // -------------------------------------------------------------------------
-       
+
     public String getSslKeyPassword() {
         return sslKeyPassword;
     }
@@ -549,7 +546,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             connector = getSocketConnector(server, endpoint);
         }
         return connector;
-    }   
+    }
     protected Connector getSocketConnector(Server server, JettyHttpEndpoint endpoint) {
         Connector answer = null;
         if (socketConnectors != null) {
@@ -571,18 +568,18 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         }
         return answer;
     }
-        
+
     protected Connector createConnector(Server server, JettyHttpEndpoint endpoint) {
 
         // now we just use the SelectChannelConnector as the default connector
         SslContextFactory sslcf = null;
-        
+
         // Note that this was set on the endpoint when it was constructed.  It was
         // either explicitly set at the component or on the endpoint, but either way,
         // the value is already set.  We therefore do not need to look at the component
         // level SSLContextParameters again in this method.
-        SSLContextParameters endpointSslContextParameters = endpoint.getSslContextParameters();        
-        
+        SSLContextParameters endpointSslContextParameters = endpoint.getSslContextParameters();
+
         if (endpointSslContextParameters != null) {
             try {
                 sslcf = createSslContextFactory(endpointSslContextParameters);
@@ -590,21 +587,21 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
                 throw new RuntimeCamelException(e);
             }
         } else if ("https".equals(endpoint.getProtocol())) {
-            sslcf = new SslContextFactory();  
+            sslcf = new SslContextFactory();
             String keystoreProperty = System.getProperty(JETTY_SSL_KEYSTORE);
             if (keystoreProperty != null) {
                 sslcf.setKeyStorePath(keystoreProperty);
             } else if (sslKeystore != null) {
                 sslcf.setKeyStorePath(sslKeystore);
             }
-    
+
             String keystorePassword = System.getProperty(JETTY_SSL_KEYPASSWORD);
             if (keystorePassword != null) {
                 sslcf.setKeyManagerPassword(keystorePassword);
             } else if (sslKeyPassword != null) {
                 sslcf.setKeyManagerPassword(sslKeyPassword);
             }
-    
+
             String password = System.getProperty(JETTY_SSL_PASSWORD);
             if (password != null) {
                 sslcf.setKeyStorePassword(password);
@@ -615,9 +612,9 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
 
         return createConnectorJettyInternal(server, endpoint, sslcf);
     }
-    
+
     protected abstract AbstractConnector createConnectorJettyInternal(Server server, JettyHttpEndpoint endpoint, SslContextFactory sslcf);
-    
+
     private SslContextFactory createSslContextFactory(SSLContextParameters ssl) throws GeneralSecurityException, IOException {
         SslContextFactory answer = new SslContextFactory();
         if (ssl != null) {
@@ -625,7 +622,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         }
         return answer;
     }
-    
+
     protected boolean checkSSLContextFactoryConfig(Object instance) {
         try {
             Method method = instance.getClass().getMethod("checkConfig");
@@ -675,10 +672,10 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         SslContextFactory sslContextFactory = createSslContextFactory(ssl);
         HttpClientTransport transport = createHttpClientTransport(maxThreads);
         CamelHttpClient httpClient = createCamelHttpClient(transport, sslContextFactory);
-        
+
         CamelContext context = endpoint.getCamelContext();
 
-        if (context != null 
+        if (context != null
             && ObjectHelper.isNotEmpty(context.getProperty("http.proxyHost"))
             && ObjectHelper.isNotEmpty(context.getProperty("http.proxyPort"))) {
             String host = context.getProperty("http.proxyHost");
@@ -693,7 +690,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             LOG.debug("proxyHost and proxyPort options detected. Using http proxy host: {} port: {}", host, port);
             httpClient.setProxy(host, port);
         }
-        
+
         // must have both min and max
         if (minThreads != null || maxThreads != null) {
 
@@ -712,7 +709,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             qtp.setName("CamelJettyClient(" + ObjectHelper.getIdentityHashCode(httpClient) + ")");
             httpClient.setThreadPoolOrExecutor(qtp);
         }
-        
+
         if (LOG.isDebugEnabled()) {
             if (minThreads != null) {
                 LOG.debug("Created HttpClient with thread pool {}-{} -> {}", new Object[]{minThreads, maxThreads, httpClient});
@@ -720,7 +717,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
                 LOG.debug("Created HttpClient with default thread pool size -> {}", httpClient);
             }
         }
-        
+
         return httpClient;
     }
 
@@ -846,13 +843,13 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         // If null, provide the default implementation.
         if (mbContainer == null) {
             MBeanServer mbs = null;
-            
+
             final ManagementStrategy mStrategy = this.getCamelContext().getManagementStrategy();
             final ManagementAgent mAgent = mStrategy.getManagementAgent();
             if (mAgent != null) {
                 mbs = mAgent.getMBeanServer();
             }
-            
+
             if (mbs != null) {
                 mbContainer = new MBeanContainer(mbs);
                 startMbContainer();
@@ -860,7 +857,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
                 LOG.warn("JMX disabled in CamelContext. Jetty JMX extensions will remain disabled.");
             }
         }
-        
+
         return this.mbContainer;
     }
 
@@ -939,7 +936,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     public void setUseContinuation(boolean useContinuation) {
         this.useContinuation = useContinuation;
     }
-    
+
     public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
@@ -1157,7 +1154,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         if (!query.isEmpty()) {
             url = url + "&" + query;
         }
-        
+
         JettyHttpEndpoint endpoint = camelContext.getEndpoint(url, JettyHttpEndpoint.class);
         setProperties(camelContext, endpoint, parameters);
 
@@ -1230,7 +1227,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
 
         return camelServlet;
     }
-    
+
     protected void addJettyHandlers(Server server, List<Handler> handlers) {
         if (handlers != null && !handlers.isEmpty()) {
             for (Handler handler : handlers) {
@@ -1251,7 +1248,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     }
 
     protected boolean isHandlerInChain(Handler current, Handler handler) {
-  
+
         if (handler.equals(current)) {
             //Found a match in the chain
             return true;
@@ -1263,7 +1260,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             return false;
         }
     }
-    
+
     protected Server createServer() {
         Server s = null;
         ThreadPool tp = threadPool;
@@ -1286,7 +1283,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             try {
                 if (!Server.getVersion().startsWith("8")) {
                     s = Server.class.getConstructor(ThreadPool.class).newInstance(tp);
-                    
+
                 } else {
                     s = new Server();
                     if (isEnableJmx()) {
@@ -1319,8 +1316,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             //need an error handler that won't leak information about the exception 
             //back to the client.
             ErrorHandler eh = new ErrorHandler() {
-                public void handle(String target, Request baseRequest, 
-                                   HttpServletRequest request, HttpServletResponse response) 
+                public void handle(String target, Request baseRequest,
+                                   HttpServletRequest request, HttpServletResponse response)
                     throws IOException {
                     String msg = HttpStatus.getMessage(response.getStatus());
                     request.setAttribute(RequestDispatcher.ERROR_MESSAGE, msg);
@@ -1340,8 +1337,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         }
         return s;
     }
-    
-    
+
+
     /**
      * Starts {@link #mbContainer} and registers the container with itself as a managed bean
      * logging an error if there is a problem starting the container.
@@ -1407,12 +1404,12 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             mbContainer = null;
         }
     }
-    
+
     private void addServerMBean(Server server) {
         if (mbContainer == null) {
             return;
-        }        
-        
+        }
+
         try {
             Object o = getContainer(server);
             o.getClass().getMethod("addEventListener", Container.Listener.class).invoke(o, mbContainer);
@@ -1456,5 +1453,5 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             throw new RuntimeException(t);
         }
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
index f525b72..eeb9b71 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
@@ -17,19 +17,16 @@
 package org.apache.camel.component.kafka;
 
 import java.util.Map;
-import java.util.Optional;
 import java.util.concurrent.ExecutorService;
-import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
+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.GlobalSSLContextParametersSupplier;
 
-public class KafkaComponent extends UriEndpointComponent {
+public class KafkaComponent extends UriEndpointComponent implements SSLContextParametersAware {
 
     private KafkaConfiguration configuration;
 
@@ -67,7 +64,7 @@ public class KafkaComponent extends UriEndpointComponent {
         setProperties(endpoint, params);
 
         if (endpoint.getConfiguration().isUseGlobalSslContextParameters() && endpoint.getConfiguration().getSslContextParameters() == null) {
-            endpoint.getConfiguration().setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            endpoint.getConfiguration().setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         return endpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
index e7c3257..3e58e29 100644
--- a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
+++ b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
@@ -17,20 +17,17 @@
 package org.apache.camel.component.lumberjack;
 
 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.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 
 /**
  * The class is the Camel component for the Lumberjack server
  */
-public class LumberjackComponent extends UriEndpointComponent {
+public class LumberjackComponent extends UriEndpointComponent implements SSLContextParametersAware {
     static final int DEFAULT_PORT = 5044;
 
     @Metadata(label = "security")
@@ -66,7 +63,7 @@ public class LumberjackComponent extends UriEndpointComponent {
         setProperties(answer, parameters);
 
         if (isUseGlobalSslContextParameters() && answer.getSslContextParameters() == null) {
-            answer.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            answer.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         return answer;

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java
----------------------------------------------------------------------
diff --git a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java
index 8709e86..6343735 100644
--- a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java
+++ b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java
@@ -20,15 +20,14 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-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.TrustManagersParameters;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -42,10 +41,10 @@ public class LumberjackComponentGlobalSSLTest extends CamelTestSupport {
     }
 
     @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry registry = super.createRegistry();
-        registry.bind("sslSupplier", (GlobalSSLContextParametersSupplier) () -> createServerSSLContextParameters());
-        return registry;
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        context.setSSLContextParameters(createClientSSLContextParameters());
+        return context;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
index f08e68d..78a15f1 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
@@ -19,26 +19,23 @@ package org.apache.camel.component.mail;
 import java.net.URI;
 import java.util.HashSet;
 import java.util.Map;
-import java.util.Optional;
 import java.util.Set;
-import java.util.function.Supplier;
 import javax.mail.search.SearchTerm;
 
 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.ObjectHelper;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 
 /**
  * Component for JavaMail.
  *
  * @version
  */
-public class MailComponent extends UriEndpointComponent {
+public class MailComponent extends UriEndpointComponent implements SSLContextParametersAware {
 
     @Metadata(label = "advanced")
     private MailConfiguration configuration;
@@ -104,7 +101,7 @@ public class MailComponent extends UriEndpointComponent {
 
         // Use global ssl if present
         if (endpoint.getConfiguration().getSslContextParameters() == null) {
-            endpoint.getConfiguration().setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            endpoint.getConfiguration().setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         return endpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
index 62319ac..fdd767b 100644
--- a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
@@ -18,17 +18,14 @@ package org.apache.camel.component.mina2;
 
 import java.net.URI;
 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.ExchangePattern;
+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.GlobalSSLContextParametersSupplier;
 import org.apache.mina.core.filterchain.IoFilter;
 
 /**
@@ -36,7 +33,7 @@ import org.apache.mina.core.filterchain.IoFilter;
  *
  * @version 
  */
-public class Mina2Component extends UriEndpointComponent {
+public class Mina2Component extends UriEndpointComponent implements SSLContextParametersAware {
 
     @Metadata(label = "advanced")
     private Mina2Configuration configuration;
@@ -72,7 +69,7 @@ public class Mina2Component extends UriEndpointComponent {
         setProperties(config, 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 createEndpoint(uri, config);

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2SslGlobalContextParametersTcpTest.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2SslGlobalContextParametersTcpTest.java b/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2SslGlobalContextParametersTcpTest.java
index 8629637..7b865e1 100644
--- a/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2SslGlobalContextParametersTcpTest.java
+++ b/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2SslGlobalContextParametersTcpTest.java
@@ -16,11 +16,9 @@
  */
 package org.apache.camel.component.mina2;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 import org.junit.Test;
 
 /**
@@ -29,14 +27,10 @@ import org.junit.Test;
 public class Mina2SslGlobalContextParametersTcpTest extends BaseMina2Test {
 
     @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry reg = super.createRegistry();
-
-        if (isUseSslContext()) {
-            SSLContextParameters parameters = createSslContextParameters();
-            reg.bind("sslContextParametersSupplier", (GlobalSSLContextParametersSupplier) () -> parameters);
-        }
-        return reg;
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        context.setSSLContextParameters(createSslContextParameters());
+        return context;
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsComponent.java b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsComponent.java
index 8deb460..6c1cf32 100644
--- a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsComponent.java
+++ b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsComponent.java
@@ -17,15 +17,12 @@
 package org.apache.camel.component.nats;
 
 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.DefaultComponent;
-import org.apache.camel.util.CamelContextHelper;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
 
-public class NatsComponent extends DefaultComponent {
+public class NatsComponent extends DefaultComponent implements SSLContextParametersAware {
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
@@ -34,7 +31,7 @@ public class NatsComponent extends DefaultComponent {
         config.setServers(remaining);
 
         if (config.getSslContextParameters() == null) {
-            config.setSslContextParameters(Optional.ofNullable(CamelContextHelper.findByType(getCamelContext(), GlobalSSLContextParametersSupplier.class)).map(Supplier::get).orElse(null));
+            config.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
         NatsEndpoint endpoint = new NatsEndpoint(uri, this, config);

http://git-wip-us.apache.org/repos/asf/camel/blob/8471034c/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
index e20ae6e..583e13a 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
@@ -20,13 +20,12 @@ 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.SSLContextParametersAware;
 import org.apache.camel.component.netty.NettyComponent;
 import org.apache.camel.component.netty.NettyConfiguration;
 import org.apache.camel.component.netty.NettyServerBootstrapConfiguration;
@@ -37,7 +36,6 @@ 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.util.CamelContextHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.util.IntrospectionSupport;
@@ -45,14 +43,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 {
+public class NettyHttpComponent extends NettyComponent implements HeaderFilterStrategyAware, RestConsumerFactory, RestApiConsumerFactory, SSLContextParametersAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(NettyHttpComponent.class);
 
@@ -145,7 +142,7 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
         setProperties(config, parameters);
 
         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-http/src/main/java/org/apache/camel/component/netty/http/util/NettySSLContextParameterSupplier.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/util/NettySSLContextParameterSupplier.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/util/NettySSLContextParameterSupplier.java
deleted file mode 100644
index 249ef68..0000000
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/util/NettySSLContextParameterSupplier.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2016 Red Hat, Inc.
- *
- * Red Hat 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.util;
-
-import org.apache.camel.util.jsse.SSLContextParameters;
-import org.apache.camel.util.jsse.GlobalSSLContextParametersSupplier;
-
-/**
- * Class for binding a SSSLContextParametersSupplier to the registry.
- */
-public class NettySSLContextParameterSupplier implements GlobalSSLContextParametersSupplier {
-
-    private SSLContextParameters sslContextParameters;
-
-    public NettySSLContextParameterSupplier() {
-    }
-
-    public SSLContextParameters getSslContextParameters() {
-        return sslContextParameters;
-    }
-
-    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
-        this.sslContextParameters = sslContextParameters;
-    }
-
-    @Override
-    public SSLContextParameters get() {
-        return sslContextParameters;
-    }
-}