Repository: camel Updated Branches: refs/heads/master 9e574afcf -> 0b46b0820
CAMEL-10133 Allow to configure the SSL configuration of the lumberjack component at the component level Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e60279cd Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e60279cd Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e60279cd Branch: refs/heads/master Commit: e60279cd723e9e63909c566a33fbf5c42031a1ef Parents: 9e574af Author: Antoine DESSAIGNE <antoine.dessai...@gmail.com> Authored: Fri Jul 15 16:13:56 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Jul 15 17:04:27 2016 +0200 ---------------------------------------------------------------------- .../src/main/docs/lumberjack.adoc | 14 +++++++++++- .../lumberjack/LumberjackComponent.java | 15 ++++++++++++ .../lumberjack/LumberjackEndpoint.java | 24 ++++++++++++++++++-- 3 files changed, 50 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/e60279cd/components/camel-lumberjack/src/main/docs/lumberjack.adoc ---------------------------------------------------------------------- diff --git a/components/camel-lumberjack/src/main/docs/lumberjack.adoc b/components/camel-lumberjack/src/main/docs/lumberjack.adoc index 7d560cb..3b0083a 100644 --- a/components/camel-lumberjack/src/main/docs/lumberjack.adoc +++ b/components/camel-lumberjack/src/main/docs/lumberjack.adoc @@ -40,14 +40,26 @@ Options ^^^^^^^ + // component options: START -The Lumberjack component has no options. +The Lumberjack component supports 1 options which are listed below. + + + +{% raw %} +[width="100%",cols="2s,1m,8",options="header"] +|======================================================================= +| Name | Java Type | Description +| sslContextParameters | SSLContextParameters | Sets the default SSL configuration to use for all the endpoints. You can also configure it directly at the endpoint level. +|======================================================================= +{% endraw %} // component options: END + // endpoint options: START The Lumberjack component supports 7 endpoint options which are listed below: http://git-wip-us.apache.org/repos/asf/camel/blob/e60279cd/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 096d10f..96fbb3d 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 @@ -20,6 +20,7 @@ import java.util.Map; import org.apache.camel.Endpoint; import org.apache.camel.impl.UriEndpointComponent; +import org.apache.camel.util.jsse.SSLContextParameters; /** * The class is the Camel component for the Lumberjack server @@ -27,6 +28,8 @@ import org.apache.camel.impl.UriEndpointComponent; public class LumberjackComponent extends UriEndpointComponent { static final int DEFAULT_PORT = 5044; + private SSLContextParameters sslContextParameters; + public LumberjackComponent() { this(LumberjackEndpoint.class); } @@ -54,4 +57,16 @@ public class LumberjackComponent extends UriEndpointComponent { setProperties(answer, parameters); return answer; } + + public SSLContextParameters getSslContextParameters() { + return sslContextParameters; + } + + /** + * Sets the default SSL configuration to use for all the endpoints. You can also configure it directly at + * the endpoint level. + */ + public void setSslContextParameters(SSLContextParameters sslContextParameters) { + this.sslContextParameters = sslContextParameters; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/e60279cd/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java index a86fe14..8c9d23d 100644 --- a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java +++ b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.lumberjack; +import java.io.IOException; +import java.security.GeneralSecurityException; import javax.net.ssl.SSLContext; import org.apache.camel.Processor; @@ -45,14 +47,18 @@ public class LumberjackEndpoint extends DefaultEndpoint { } @Override + public LumberjackComponent getComponent() { + return (LumberjackComponent) super.getComponent(); + } + + @Override public Producer createProducer() throws Exception { throw new UnsupportedOperationException("The Lumberjack component cannot be used as a producer"); } @Override public LumberjackConsumer createConsumer(Processor processor) throws Exception { - SSLContext sslContext = sslContextParameters != null ? sslContextParameters.createSSLContext(getCamelContext()) : null; - return new LumberjackConsumer(this, processor, host, port, sslContext); + return new LumberjackConsumer(this, processor, host, port, provideSSLContext()); } @Override @@ -60,7 +66,21 @@ public class LumberjackEndpoint extends DefaultEndpoint { return true; } + public SSLContextParameters getSslContextParameters() { + return sslContextParameters; + } + public void setSslContextParameters(SSLContextParameters sslContextParameters) { this.sslContextParameters = sslContextParameters; } + + private SSLContext provideSSLContext() throws GeneralSecurityException, IOException { + if (sslContextParameters != null) { + return sslContextParameters.createSSLContext(getCamelContext()); + } else if (getComponent().getSslContextParameters() != null) { + return getComponent().getSslContextParameters().createSSLContext(getCamelContext()); + } else { + return null; + } + } }