camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From davscl...@apache.org
Subject [11/11] camel git commit: CAMEL-10197: Added plain get/set to components for spring-boot configuration
Date Tue, 02 Aug 2016 06:43:39 GMT
CAMEL-10197: Added plain get/set to components for spring-boot configuration


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

Branch: refs/heads/master
Commit: bdab2fc632afa9270a7ca79ea55952887e56f644
Parents: 089f93e
Author: Nicola Ferraro <ni.ferraro@gmail.com>
Authored: Mon Aug 1 18:27:09 2016 +0200
Committer: Claus Ibsen <davsclaus@apache.org>
Committed: Tue Aug 2 08:13:50 2016 +0200

----------------------------------------------------------------------
 components/camel-avro/src/main/docs/avro.adoc   |  18 +-
 .../camel/component/avro/AvroComponent.java     | 140 ++-
 .../springboot/AvroComponentConfiguration.java  | 127 ++-
 components/camel-box/src/main/docs/box.adoc     |  24 +-
 .../camel/component/box/BoxComponent.java       | 214 ++++-
 .../springboot/BoxComponentConfiguration.java   | 216 ++++-
 .../src/main/docs/braintree.adoc                |  17 +-
 .../component/braintree/BraintreeComponent.java | 150 +++-
 .../BraintreeComponentConfiguration.java        | 136 ++-
 components/camel-cache/src/main/docs/cache.adoc |  16 +-
 .../camel/component/cache/CacheComponent.java   | 155 +++-
 .../springboot/CacheComponentConfiguration.java | 156 ++++
 .../crypto/DigitalSignatureComponent.java       | 344 ++++++-
 .../DigitalSignatureComponentConfiguration.java | 273 +++++-
 .../camel/component/docker/DockerComponent.java | 181 +++-
 .../DockerComponentConfiguration.java           | 185 +++-
 .../camel-facebook/src/main/docs/facebook.adoc  |  33 +-
 .../component/facebook/FacebookComponent.java   | 326 ++++++-
 .../FacebookComponentConfiguration.java         | 329 ++++++-
 .../camel-ganglia/src/main/docs/ganglia.adoc    |  20 +-
 .../component/ganglia/GangliaComponent.java     | 182 +++-
 .../GangliaComponentConfiguration.java          | 180 +++-
 .../src/main/docs/google-calendar.adoc          |  17 +-
 .../calendar/GoogleCalendarComponent.java       | 144 ++-
 .../GoogleCalendarComponentConfiguration.java   | 145 ++-
 .../src/main/docs/google-drive.adoc             |  14 +-
 .../google/drive/GoogleDriveComponent.java      | 108 ++-
 .../GoogleDriveComponentConfiguration.java      | 106 ++-
 .../src/main/docs/google-mail.adoc              |  14 +-
 .../google/mail/GoogleMailComponent.java        | 108 ++-
 .../GoogleMailComponentConfiguration.java       | 106 ++-
 .../camel-kestrel/src/main/docs/kestrel.adoc    |   7 +-
 .../component/kestrel/KestrelComponent.java     |  38 +
 .../component/kestrel/KestrelConfiguration.java |   9 +
 .../KestrelComponentConfiguration.java          |  36 +
 .../src/main/docs/linkedin.adoc                 |  15 +-
 .../component/linkedin/LinkedInComponent.java   | 155 +++-
 .../LinkedInComponentConfiguration.java         | 144 +++
 .../camel-lucene/src/main/docs/lucene.adoc      |  12 +-
 .../camel/component/lucene/LuceneComponent.java |  85 +-
 .../LuceneComponentConfiguration.java           |  84 +-
 components/camel-mail/src/main/docs/imap.adoc   |  44 +-
 components/camel-mail/src/main/docs/imaps.adoc  |  44 +-
 components/camel-mail/src/main/docs/pop3.adoc   |  44 +-
 components/camel-mail/src/main/docs/pop3s.adoc  |  44 +-
 components/camel-mail/src/main/docs/smtp.adoc   |  44 +-
 components/camel-mail/src/main/docs/smtps.adoc  |  44 +-
 .../camel/component/mail/MailComponent.java     | 486 +++++++++-
 .../springboot/MailComponentConfiguration.java  | 494 +++++++++-
 components/camel-mina/src/main/docs/mina.adoc   |  26 +-
 .../camel/component/mina/MinaComponent.java     | 271 +++++-
 .../springboot/MinaComponentConfiguration.java  | 273 +++++-
 components/camel-mina2/src/main/docs/mina2.adoc |  31 +-
 .../camel/component/mina2/Mina2Component.java   | 336 ++++++-
 .../springboot/Mina2ComponentConfiguration.java | 337 ++++++-
 .../camel-nagios/src/main/docs/nagios.adoc      |  12 +-
 .../camel/component/nagios/NagiosComponent.java |  77 +-
 .../NagiosComponentConfiguration.java           |  76 +-
 components/camel-netty/src/main/docs/netty.adoc |  69 +-
 .../camel/component/netty/NettyComponent.java   | 815 ++++++++++++++++-
 .../springboot/NettyComponentConfiguration.java | 856 ++++++++++++++++++
 .../camel-netty4/src/main/docs/netty4.adoc      |  72 +-
 .../camel/component/netty4/NettyComponent.java  | 851 +++++++++++++++++-
 .../springboot/NettyComponentConfiguration.java | 897 +++++++++++++++++++
 .../src/main/docs/olingo2.adoc                  |  16 +-
 .../component/olingo2/Olingo2Component.java     | 130 ++-
 .../Olingo2ComponentConfiguration.java          | 137 ++-
 .../src/main/docs/salesforce.adoc               |  49 +-
 .../salesforce/SalesforceComponent.java         | 493 +++++++++-
 .../SalesforceComponentConfiguration.java       | 489 +++++++++-
 components/camel-smpp/src/main/docs/smpp.adoc   |  41 +-
 .../camel/component/smpp/SmppComponent.java     | 557 +++++++++++-
 .../springboot/SmppComponentConfiguration.java  | 499 ++++++++++-
 .../src/main/docs/xmlsecurity.adoc              |  49 +-
 .../xmlsecurity/XmlSignatureComponent.java      | 747 ++++++++++++++-
 .../XmlSignatureComponentConfiguration.java     | 662 +++++++++++++-
 .../component/zookeeper/ZooKeeperComponent.java | 121 ++-
 .../zookeeper/ZooKeeperConfiguration.java       |   3 +
 .../ZooKeeperComponentConfiguration.java        | 113 ++-
 79 files changed, 14992 insertions(+), 126 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-avro/src/main/docs/avro.adoc
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/docs/avro.adoc b/components/camel-avro/src/main/docs/avro.adoc
index c3b8ba4..96b96ff 100644
--- a/components/camel-avro/src/main/docs/avro.adoc
+++ b/components/camel-avro/src/main/docs/avro.adoc
@@ -177,8 +177,10 @@ Avro RPC URI Options
 ^^^^^^^^^^^^^^^^^^^^
 
 
+
+
 // component options: START
-The Avro component supports 1 options which are listed below.
+The Avro component supports 11 options which are listed below.
 
 
 
@@ -186,13 +188,25 @@ The Avro component supports 1 options which are listed below.
 [width="100%",cols="2s,1m,8",options="header"]
 |=======================================================================
 | Name | Java Type | Description
-| configuration | AvroConfiguration | To use a shared AvroConfiguration to configure options once
+| configuration | AvroConfiguration | To use a shared AvroConfiguration to configure options once. Properties of the shared configuration can also be set individually.
+| host | String | Hostname to use
+| port | int | Port number to use
+| protocol | Protocol | Avro protocol to use
+| transport | String | Transport to use
+| protocolLocation | String | Avro protocol location
+| protocolClassName | String | Avro protocol to use defined by the FQN class name
+| messageName | String | The name of the message to send.
+| uriAuthority | String | Authority to use (username and password)
+| reflectionProtocol | boolean | If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassName protocol type will be auto detected
+| singleParameter | boolean | If true consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message
 |=======================================================================
 {% endraw %}
 // component options: END
 
 
 
+
+
 // endpoint options: START
 The Avro component supports 14 endpoint options which are listed below:
 

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
index 108348b..cea618f 100644
--- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
+++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
@@ -89,7 +89,7 @@ public class AvroComponent extends UriEndpointComponent {
                 try {
                     Field f = protocolClass.getField("PROTOCOL");
                     if (f != null) {
-                        Protocol protocol = (Protocol)f.get(null);
+                        Protocol protocol = (Protocol) f.get(null);
                         config.setProtocol(protocol);
                     }
                 } catch (NoSuchFieldException e) {
@@ -110,9 +110,9 @@ public class AvroComponent extends UriEndpointComponent {
 
         if (config.isSingleParameter()) {
             Map<String, Protocol.Message> messageMap = config.getProtocol().getMessages();
-            Iterable<Protocol.Message> messagesToCheck = config.getMessageName() == null 
-                ? messageMap.values() 
-                : Collections.singleton(messageMap.get(config.getMessageName()));
+            Iterable<Protocol.Message> messagesToCheck = config.getMessageName() == null
+                    ? messageMap.values()
+                    : Collections.singleton(messageMap.get(config.getMessageName()));
             for (Protocol.Message message : messagesToCheck) {
                 if (message.getRequest().getFields().size() != 1) {
                     throw new IllegalArgumentException("Single parameter option can't be used with message "
@@ -123,12 +123,12 @@ public class AvroComponent extends UriEndpointComponent {
             }
         }
     }
-    
+
     /**
      * Registers new responder with uri as key. Registers consumer in responder.
      * In case if responder is already registered by this uri then just
      * registers consumer.
-     * 
+     *
      * @param uri URI of the endpoint without message name
      * @param messageName message name
      * @param consumer consumer that will be registered in providers` registry
@@ -142,7 +142,7 @@ public class AvroComponent extends UriEndpointComponent {
         }
         listener.register(messageName, consumer);
     }
-    
+
     /**
      * Calls unregister of consumer by appropriate message name.
      * In case if all consumers are unregistered then it removes responder from the registry.
@@ -161,9 +161,133 @@ public class AvroComponent extends UriEndpointComponent {
     }
 
     /**
-     * To use a shared {@link AvroConfiguration} to configure options once
+     * To use a shared {@link AvroConfiguration} to configure options once. Properties of the shared configuration can also be set individually.
      */
     public void setConfiguration(AvroConfiguration configuration) {
         this.configuration = configuration;
     }
+
+    public String getHost() {
+        return configuration.getHost();
+    }
+
+    /**
+     * Hostname to use
+     * @param host
+     */
+    public void setHost(String host) {
+        configuration.setHost(host);
+    }
+
+    public int getPort() {
+        return configuration.getPort();
+    }
+
+    /**
+     * Port number to use
+     * @param port
+     */
+    public void setPort(int port) {
+        configuration.setPort(port);
+    }
+
+    public Protocol getProtocol() {
+        return configuration.getProtocol();
+    }
+
+    /**
+     * Avro protocol to use
+     * @param protocol
+     */
+    public void setProtocol(Protocol protocol) {
+        configuration.setProtocol(protocol);
+    }
+
+    public AvroTransport getTransport() {
+        return configuration.getTransport();
+    }
+
+    /**
+     * Transport to use
+     * @param transport
+     */
+    public void setTransport(String transport) {
+        configuration.setTransport(transport);
+    }
+
+    public void setTransport(AvroTransport transport) {
+        configuration.setTransport(transport);
+    }
+
+    public String getProtocolLocation() {
+        return configuration.getProtocolLocation();
+    }
+
+    /**
+     * Avro protocol location
+     * @param protocolLocation
+     */
+    public void setProtocolLocation(String protocolLocation) {
+        configuration.setProtocolLocation(protocolLocation);
+    }
+
+    public String getProtocolClassName() {
+        return configuration.getProtocolClassName();
+    }
+
+    /**
+     * Avro protocol to use defined by the FQN class name
+     * @param protocolClassName
+     */
+    public void setProtocolClassName(String protocolClassName) {
+        configuration.setProtocolClassName(protocolClassName);
+    }
+
+    public String getMessageName() {
+        return configuration.getMessageName();
+    }
+
+    /**
+     * The name of the message to send.
+     * @param messageName
+     */
+    public void setMessageName(String messageName) {
+        configuration.setMessageName(messageName);
+    }
+
+    public String getUriAuthority() {
+        return configuration.getUriAuthority();
+    }
+
+    /**
+     * Authority to use (username and password)
+     * @param uriAuthority
+     */
+    public void setUriAuthority(String uriAuthority) {
+        configuration.setUriAuthority(uriAuthority);
+    }
+
+    public boolean isReflectionProtocol() {
+        return configuration.isReflectionProtocol();
+    }
+
+    /**
+     * If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassName protocol type will be auto detected
+     * @param isReflectionProtocol
+     */
+    public void setReflectionProtocol(boolean isReflectionProtocol) {
+        configuration.setReflectionProtocol(isReflectionProtocol);
+    }
+
+    public boolean isSingleParameter() {
+        return configuration.isSingleParameter();
+    }
+
+    /**
+     * If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message
+     * @param singleParameter
+     */
+    public void setSingleParameter(boolean singleParameter) {
+        configuration.setSingleParameter(singleParameter);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
index 7d13a39..edb360e 100644
--- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
+++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.avro.springboot;
 
+import org.apache.avro.Protocol;
 import org.apache.camel.component.avro.AvroConfiguration;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -28,9 +29,53 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public class AvroComponentConfiguration {
 
     /**
-     * To use a shared AvroConfiguration to configure options once
+     * To use a shared AvroConfiguration to configure options once. Properties
+     * of the shared configuration can also be set individually.
      */
     private AvroConfiguration configuration;
+    /**
+     * Hostname to use
+     */
+    private String host;
+    /**
+     * Port number to use
+     */
+    private Integer port;
+    /**
+     * Avro protocol to use
+     */
+    private Protocol protocol;
+    /**
+     * Transport to use
+     */
+    private String transport;
+    /**
+     * Avro protocol location
+     */
+    private String protocolLocation;
+    /**
+     * Avro protocol to use defined by the FQN class name
+     */
+    private String protocolClassName;
+    /**
+     * The name of the message to send.
+     */
+    private String messageName;
+    /**
+     * Authority to use (username and password)
+     */
+    private String uriAuthority;
+    /**
+     * If protocol object provided is reflection protocol. Should be used only
+     * with protocol parameter because for protocolClassName protocol type will
+     * be auto detected
+     */
+    private Boolean reflectionProtocol = false;
+    /**
+     * If true consumer parameter won't be wrapped into array. Will fail if
+     * protocol specifies more then 1 parameter for the message
+     */
+    private Boolean singleParameter = false;
 
     public AvroConfiguration getConfiguration() {
         return configuration;
@@ -39,4 +84,84 @@ public class AvroComponentConfiguration {
     public void setConfiguration(AvroConfiguration configuration) {
         this.configuration = configuration;
     }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public Integer getPort() {
+        return port;
+    }
+
+    public void setPort(Integer port) {
+        this.port = port;
+    }
+
+    public Protocol getProtocol() {
+        return protocol;
+    }
+
+    public void setProtocol(Protocol protocol) {
+        this.protocol = protocol;
+    }
+
+    public String getTransport() {
+        return transport;
+    }
+
+    public void setTransport(String transport) {
+        this.transport = transport;
+    }
+
+    public String getProtocolLocation() {
+        return protocolLocation;
+    }
+
+    public void setProtocolLocation(String protocolLocation) {
+        this.protocolLocation = protocolLocation;
+    }
+
+    public String getProtocolClassName() {
+        return protocolClassName;
+    }
+
+    public void setProtocolClassName(String protocolClassName) {
+        this.protocolClassName = protocolClassName;
+    }
+
+    public String getMessageName() {
+        return messageName;
+    }
+
+    public void setMessageName(String messageName) {
+        this.messageName = messageName;
+    }
+
+    public String getUriAuthority() {
+        return uriAuthority;
+    }
+
+    public void setUriAuthority(String uriAuthority) {
+        this.uriAuthority = uriAuthority;
+    }
+
+    public Boolean getReflectionProtocol() {
+        return reflectionProtocol;
+    }
+
+    public void setReflectionProtocol(Boolean reflectionProtocol) {
+        this.reflectionProtocol = reflectionProtocol;
+    }
+
+    public Boolean getSingleParameter() {
+        return singleParameter;
+    }
+
+    public void setSingleParameter(Boolean singleParameter) {
+        this.singleParameter = singleParameter;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-box/src/main/docs/box.adoc
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/docs/box.adoc b/components/camel-box/src/main/docs/box.adoc
index 9d03522..9348bd2 100644
--- a/components/camel-box/src/main/docs/box.adoc
+++ b/components/camel-box/src/main/docs/box.adoc
@@ -38,8 +38,10 @@ Box Options
 ^^^^^^^^^^^
 
 
+
+
 // component options: START
-The Box component supports 1 options which are listed below.
+The Box component supports 17 options which are listed below.
 
 
 
@@ -47,7 +49,23 @@ The Box component supports 1 options which are listed below.
 [width="100%",cols="2s,1m,8",options="header"]
 |=======================================================================
 | Name | Java Type | Description
-| configuration | BoxConfiguration | To use the shared configuration
+| configuration | BoxConfiguration | To use the shared configuration. Properties of the shared configuration can also be set individually.
+| apiName | BoxApiName | What kind of operation to perform
+| methodName | String | What sub operation to use for the selected operation
+| clientId | String | Box application client ID
+| clientSecret | String | Box application client secret
+| authSecureStorage | IAuthSecureStorage | OAuth Secure Storage callback can be used to provide and or save OAuth tokens. The callback may return null on first call to allow the component to login and authorize application and obtain an OAuth token which can then be saved in the secure storage. For the component to be able to create a token automatically a user password must be provided.
+| userName | String | Box user name MUST be provided
+| userPassword | String | Box user password MUST be provided if authSecureStorage is not set or returns null on first call
+| refreshListener | OAuthRefreshListener | OAuth listener for token updates if the Camel application needs to use the access token outside the route
+| revokeOnShutdown | boolean | Flag to revoke OAuth refresh token on route shutdown default false. Will require a fresh refresh token on restart using either a custom IAuthSecureStorage or automatic component login by providing a user password
+| sharedLink | String | Box shared link for shared endpoints can be a link for a shared comment file or folder
+| sharedPassword | String | Password associated with the shared link MUST be provided with sharedLink
+| boxConfig | IBoxConfig | Custom Box SDK configuration not required normally
+| connectionManagerBuilder | BoxConnectionManagerBuilder | Custom Box connection manager builder used to override default settings like max connections for underlying HttpClient.
+| httpParams | Map | Custom HTTP params for settings like proxy host
+| sslContextParameters | SSLContextParameters | To configure security using SSLContextParameters.
+| loginTimeout | int | Amount of time the component will wait for a response from Box.com default is 30 seconds
 |=======================================================================
 {% endraw %}
 // component options: END
@@ -55,6 +73,8 @@ The Box component supports 1 options which are listed below.
 
 
 
+
+
 // endpoint options: START
 The Box component supports 21 endpoint options which are listed below:
 

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
index c770d8f..65b8b5a 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
@@ -16,6 +16,13 @@
  */
 package org.apache.camel.component.box;
 
+import java.util.Map;
+
+import com.box.boxjavalibv2.BoxConnectionManagerBuilder;
+import com.box.boxjavalibv2.IBoxConfig;
+import com.box.boxjavalibv2.authorization.IAuthSecureStorage;
+import com.box.boxjavalibv2.authorization.OAuthRefreshListener;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.box.internal.BoxApiCollection;
@@ -23,6 +30,7 @@ import org.apache.camel.component.box.internal.BoxApiName;
 import org.apache.camel.component.box.internal.BoxClientHelper;
 import org.apache.camel.component.box.internal.CachedBoxClient;
 import org.apache.camel.util.component.AbstractApiComponent;
+import org.apache.camel.util.jsse.SSLContextParameters;
 
 /**
  * Represents the component that manages {@link BoxEndpoint}.
@@ -57,7 +65,7 @@ public class BoxComponent extends AbstractApiComponent<BoxApiName, BoxConfigurat
     }
 
     /**
-     * To use the shared configuration
+     * To use the shared configuration. Properties of the shared configuration can also be set individually.
      */
     @Override
     public void setConfiguration(BoxConfiguration configuration) {
@@ -105,4 +113,208 @@ public class BoxComponent extends AbstractApiComponent<BoxApiName, BoxConfigurat
             super.doShutdown();
         }
     }
+
+    private BoxConfiguration getConfigurationOrCreate() {
+        if (this.getConfiguration() == null) {
+            this.setConfiguration(new BoxConfiguration());
+        }
+        return this.getConfiguration();
+    }
+
+    public BoxApiName getApiName() {
+        return getConfigurationOrCreate().getApiName();
+    }
+
+    /**
+     * What kind of operation to perform
+     * @param apiName
+     */
+    public void setApiName(BoxApiName apiName) {
+        getConfigurationOrCreate().setApiName(apiName);
+    }
+
+    public String getMethodName() {
+        return getConfigurationOrCreate().getMethodName();
+    }
+
+    /**
+     * What sub operation to use for the selected operation
+     * @param methodName
+     */
+    public void setMethodName(String methodName) {
+        getConfigurationOrCreate().setMethodName(methodName);
+    }
+
+    public String getClientId() {
+        return getConfigurationOrCreate().getClientId();
+    }
+
+    /**
+     * Box application client ID
+     * @param clientId
+     */
+    public void setClientId(String clientId) {
+        getConfigurationOrCreate().setClientId(clientId);
+    }
+
+    public String getClientSecret() {
+        return getConfigurationOrCreate().getClientSecret();
+    }
+
+    /**
+     * Box application client secret
+     * @param clientSecret
+     */
+    public void setClientSecret(String clientSecret) {
+        getConfigurationOrCreate().setClientSecret(clientSecret);
+    }
+
+    public IAuthSecureStorage getAuthSecureStorage() {
+        return getConfigurationOrCreate().getAuthSecureStorage();
+    }
+
+    /**
+     * OAuth Secure Storage callback, can be used to provide and or save OAuth tokens.
+     * The callback may return null on first call to allow the component to login and authorize application
+     * and obtain an OAuth token, which can then be saved in the secure storage.
+     * For the component to be able to create a token automatically a user password must be provided.
+     * @param authSecureStorage
+     */
+    public void setAuthSecureStorage(IAuthSecureStorage authSecureStorage) {
+        getConfigurationOrCreate().setAuthSecureStorage(authSecureStorage);
+    }
+
+    public String getUserName() {
+        return getConfigurationOrCreate().getUserName();
+    }
+
+    /**
+     * Box user name, MUST be provided
+     * @param userName
+     */
+    public void setUserName(String userName) {
+        getConfigurationOrCreate().setUserName(userName);
+    }
+
+    public String getUserPassword() {
+        return getConfigurationOrCreate().getUserPassword();
+    }
+
+    /**
+     * Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call
+     * @param userPassword
+     */
+    public void setUserPassword(String userPassword) {
+        getConfigurationOrCreate().setUserPassword(userPassword);
+    }
+
+    public OAuthRefreshListener getRefreshListener() {
+        return getConfigurationOrCreate().getRefreshListener();
+    }
+
+    /**
+     * OAuth listener for token updates, if the Camel application needs to use the access token outside the route
+     * @param refreshListener
+     */
+    public void setRefreshListener(OAuthRefreshListener refreshListener) {
+        getConfigurationOrCreate().setRefreshListener(refreshListener);
+    }
+
+    public boolean isRevokeOnShutdown() {
+        return getConfigurationOrCreate().isRevokeOnShutdown();
+    }
+
+    /**
+     * Flag to revoke OAuth refresh token on route shutdown, default false.
+     * Will require a fresh refresh token on restart using either a custom IAuthSecureStorage
+     * or automatic component login by providing a user password
+     * @param revokeOnShutdown
+     */
+    public void setRevokeOnShutdown(boolean revokeOnShutdown) {
+        getConfigurationOrCreate().setRevokeOnShutdown(revokeOnShutdown);
+    }
+
+    public String getSharedLink() {
+        return getConfigurationOrCreate().getSharedLink();
+    }
+
+    /**
+     * Box shared link for shared endpoints, can be a link for a shared comment, file or folder
+     * @param sharedLink
+     */
+    public void setSharedLink(String sharedLink) {
+        getConfigurationOrCreate().setSharedLink(sharedLink);
+    }
+
+    public String getSharedPassword() {
+        return getConfigurationOrCreate().getSharedPassword();
+    }
+
+    /**
+     * Password associated with the shared link, MUST be provided with sharedLink
+     * @param sharedPassword
+     */
+    public void setSharedPassword(String sharedPassword) {
+        getConfigurationOrCreate().setSharedPassword(sharedPassword);
+    }
+
+    public IBoxConfig getBoxConfig() {
+        return getConfigurationOrCreate().getBoxConfig();
+    }
+
+    /**
+     * Custom Box SDK configuration, not required normally
+     * @param boxConfig
+     */
+    public void setBoxConfig(IBoxConfig boxConfig) {
+        getConfigurationOrCreate().setBoxConfig(boxConfig);
+    }
+
+    public BoxConnectionManagerBuilder getConnectionManagerBuilder() {
+        return getConfigurationOrCreate().getConnectionManagerBuilder();
+    }
+
+    /**
+     * Custom Box connection manager builder, used to override default settings like max connections for underlying HttpClient.
+     * @param connectionManagerBuilder
+     */
+    public void setConnectionManagerBuilder(BoxConnectionManagerBuilder connectionManagerBuilder) {
+        getConfigurationOrCreate().setConnectionManagerBuilder(connectionManagerBuilder);
+    }
+
+    public Map<String, Object> getHttpParams() {
+        return getConfigurationOrCreate().getHttpParams();
+    }
+
+    /**
+     * Custom HTTP params for settings like proxy host
+     * @param httpParams
+     */
+    public void setHttpParams(Map<String, Object> httpParams) {
+        getConfigurationOrCreate().setHttpParams(httpParams);
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return getConfigurationOrCreate().getSslContextParameters();
+    }
+
+    /**
+     * To configure security using SSLContextParameters.
+     * @param sslContextParameters
+     */
+    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
+        getConfigurationOrCreate().setSslContextParameters(sslContextParameters);
+    }
+
+    public int getLoginTimeout() {
+        return getConfigurationOrCreate().getLoginTimeout();
+    }
+
+    /**
+     * Amount of time the component will wait for a response from Box.com, default is 30 seconds
+     * @param loginTimeout
+     */
+    public void setLoginTimeout(int loginTimeout) {
+        getConfigurationOrCreate().setLoginTimeout(loginTimeout);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java b/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
index 2b74214..8179dd0 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
@@ -16,7 +16,14 @@
  */
 package org.apache.camel.component.box.springboot;
 
+import java.util.Map;
+import com.box.boxjavalibv2.BoxConnectionManagerBuilder;
+import com.box.boxjavalibv2.IBoxConfig;
+import com.box.boxjavalibv2.authorization.IAuthSecureStorage;
+import com.box.boxjavalibv2.authorization.OAuthRefreshListener;
 import org.apache.camel.component.box.BoxConfiguration;
+import org.apache.camel.component.box.internal.BoxApiName;
+import org.apache.camel.util.jsse.SSLContextParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -29,9 +36,86 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public class BoxComponentConfiguration {
 
     /**
-     * To use the shared configuration
+     * To use the shared configuration. Properties of the shared configuration
+     * can also be set individually.
      */
     private BoxConfiguration configuration;
+    /**
+     * What kind of operation to perform
+     */
+    private BoxApiName apiName;
+    /**
+     * What sub operation to use for the selected operation
+     */
+    private String methodName;
+    /**
+     * Box application client ID
+     */
+    private String clientId;
+    /**
+     * Box application client secret
+     */
+    private String clientSecret;
+    /**
+     * OAuth Secure Storage callback can be used to provide and or save OAuth
+     * tokens. The callback may return null on first call to allow the component
+     * to login and authorize application and obtain an OAuth token which can
+     * then be saved in the secure storage. For the component to be able to
+     * create a token automatically a user password must be provided.
+     */
+    private IAuthSecureStorage authSecureStorage;
+    /**
+     * Box user name MUST be provided
+     */
+    private String userName;
+    /**
+     * Box user password MUST be provided if authSecureStorage is not set or
+     * returns null on first call
+     */
+    private String userPassword;
+    /**
+     * OAuth listener for token updates if the Camel application needs to use
+     * the access token outside the route
+     */
+    private OAuthRefreshListener refreshListener;
+    /**
+     * Flag to revoke OAuth refresh token on route shutdown default false. Will
+     * require a fresh refresh token on restart using either a custom
+     * IAuthSecureStorage or automatic component login by providing a user
+     * password
+     */
+    private Boolean revokeOnShutdown = false;
+    /**
+     * Box shared link for shared endpoints can be a link for a shared comment
+     * file or folder
+     */
+    private String sharedLink;
+    /**
+     * Password associated with the shared link MUST be provided with sharedLink
+     */
+    private String sharedPassword;
+    /**
+     * Custom Box SDK configuration not required normally
+     */
+    private IBoxConfig boxConfig;
+    /**
+     * Custom Box connection manager builder used to override default settings
+     * like max connections for underlying HttpClient.
+     */
+    private BoxConnectionManagerBuilder connectionManagerBuilder;
+    /**
+     * Custom HTTP params for settings like proxy host
+     */
+    private Map<String, Object> httpParams;
+    /**
+     * To configure security using SSLContextParameters.
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * Amount of time the component will wait for a response from Box.com
+     * default is 30 seconds
+     */
+    private Integer loginTimeout;
 
     public BoxConfiguration getConfiguration() {
         return configuration;
@@ -40,4 +124,134 @@ public class BoxComponentConfiguration {
     public void setConfiguration(BoxConfiguration configuration) {
         this.configuration = configuration;
     }
+
+    public BoxApiName getApiName() {
+        return apiName;
+    }
+
+    public void setApiName(BoxApiName apiName) {
+        this.apiName = apiName;
+    }
+
+    public String getMethodName() {
+        return methodName;
+    }
+
+    public void setMethodName(String methodName) {
+        this.methodName = methodName;
+    }
+
+    public String getClientId() {
+        return clientId;
+    }
+
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    public String getClientSecret() {
+        return clientSecret;
+    }
+
+    public void setClientSecret(String clientSecret) {
+        this.clientSecret = clientSecret;
+    }
+
+    public IAuthSecureStorage getAuthSecureStorage() {
+        return authSecureStorage;
+    }
+
+    public void setAuthSecureStorage(IAuthSecureStorage authSecureStorage) {
+        this.authSecureStorage = authSecureStorage;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPassword() {
+        return userPassword;
+    }
+
+    public void setUserPassword(String userPassword) {
+        this.userPassword = userPassword;
+    }
+
+    public OAuthRefreshListener getRefreshListener() {
+        return refreshListener;
+    }
+
+    public void setRefreshListener(OAuthRefreshListener refreshListener) {
+        this.refreshListener = refreshListener;
+    }
+
+    public Boolean getRevokeOnShutdown() {
+        return revokeOnShutdown;
+    }
+
+    public void setRevokeOnShutdown(Boolean revokeOnShutdown) {
+        this.revokeOnShutdown = revokeOnShutdown;
+    }
+
+    public String getSharedLink() {
+        return sharedLink;
+    }
+
+    public void setSharedLink(String sharedLink) {
+        this.sharedLink = sharedLink;
+    }
+
+    public String getSharedPassword() {
+        return sharedPassword;
+    }
+
+    public void setSharedPassword(String sharedPassword) {
+        this.sharedPassword = sharedPassword;
+    }
+
+    public IBoxConfig getBoxConfig() {
+        return boxConfig;
+    }
+
+    public void setBoxConfig(IBoxConfig boxConfig) {
+        this.boxConfig = boxConfig;
+    }
+
+    public BoxConnectionManagerBuilder getConnectionManagerBuilder() {
+        return connectionManagerBuilder;
+    }
+
+    public void setConnectionManagerBuilder(
+            BoxConnectionManagerBuilder connectionManagerBuilder) {
+        this.connectionManagerBuilder = connectionManagerBuilder;
+    }
+
+    public Map<String, Object> getHttpParams() {
+        return httpParams;
+    }
+
+    public void setHttpParams(Map<String, Object> httpParams) {
+        this.httpParams = httpParams;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public Integer getLoginTimeout() {
+        return loginTimeout;
+    }
+
+    public void setLoginTimeout(Integer loginTimeout) {
+        this.loginTimeout = loginTimeout;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-braintree/src/main/docs/braintree.adoc
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/docs/braintree.adoc b/components/camel-braintree/src/main/docs/braintree.adoc
index 3d5e435..054919e 100644
--- a/components/camel-braintree/src/main/docs/braintree.adoc
+++ b/components/camel-braintree/src/main/docs/braintree.adoc
@@ -36,8 +36,9 @@ Braintree Options
 ^^^^^^^^^^^^^^^^^
 
 
+
 // component options: START
-The Braintree component supports 1 options which are listed below.
+The Braintree component supports 12 options which are listed below.
 
 
 
@@ -45,13 +46,25 @@ The Braintree component supports 1 options which are listed below.
 [width="100%",cols="2s,1m,8",options="header"]
 |=======================================================================
 | Name | Java Type | Description
-| configuration | BraintreeConfiguration | To use the shared configuration
+| configuration | BraintreeConfiguration | To use the shared configuration. Properties of the shared configuration can also be set individually.
+| apiName | BraintreeApiName | What kind of operation to perform
+| methodName | String | What sub operation to use for the selected operation
+| environment | String | The environment Either SANDBOX or PRODUCTION
+| merchantId | String | The merchant id provided by Braintree.
+| publicKey | String | The public key provided by Braintree.
+| privateKey | String | The private key provided by Braintree.
+| proxyHost | String | The proxy host
+| proxyPort | Integer | The proxy port
+| httpLogLevel | String | Set logging level for http calls see java.util.logging.Level
+| httpLogName | String | Set log category to use to log http calls default Braintree
+| httpReadTimeout | Integer | Set read timeout for http calls.
 |=======================================================================
 {% endraw %}
 // component options: END
 
 
 
+
 // endpoint options: START
 The Braintree component supports 15 endpoint options which are listed below:
 

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeComponent.java b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeComponent.java
index 8918771..3f65ae4 100644
--- a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeComponent.java
+++ b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeComponent.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.braintree;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.logging.Level;
 
 import com.braintreegateway.BraintreeGateway;
 import org.apache.camel.CamelContext;
@@ -55,7 +56,7 @@ public class BraintreeComponent extends AbstractApiComponent<BraintreeApiName, B
     }
 
     /**
-     * To use the shared configuration
+     * To use the shared configuration. Properties of the shared configuration can also be set individually.
      */
     @Override
     public void setConfiguration(BraintreeConfiguration configuration) {
@@ -76,4 +77,151 @@ public class BraintreeComponent extends AbstractApiComponent<BraintreeApiName, B
 
         return gateway;
     }
+
+    private BraintreeConfiguration getConfigurationOrCreate() {
+        if (this.getConfiguration() == null) {
+            this.setConfiguration(new BraintreeConfiguration());
+        }
+        return this.getConfiguration();
+    }
+
+    public BraintreeApiName getApiName() {
+        return getConfigurationOrCreate().getApiName();
+    }
+
+    /**
+     * What kind of operation to perform
+     * @param apiName
+     */
+    public void setApiName(BraintreeApiName apiName) {
+        getConfigurationOrCreate().setApiName(apiName);
+    }
+
+    public String getMethodName() {
+        return getConfigurationOrCreate().getMethodName();
+    }
+
+    /**
+     * What sub operation to use for the selected operation
+     * @param methodName
+     */
+    public void setMethodName(String methodName) {
+        getConfigurationOrCreate().setMethodName(methodName);
+    }
+
+    public String getEnvironment() {
+        return getConfigurationOrCreate().getEnvironment();
+    }
+
+    /**
+     * The environment Either SANDBOX or PRODUCTION
+     * @param environment
+     */
+    public void setEnvironment(String environment) {
+        getConfigurationOrCreate().setEnvironment(environment);
+    }
+
+    public String getMerchantId() {
+        return getConfigurationOrCreate().getMerchantId();
+    }
+
+    /**
+     * The merchant id provided by Braintree.
+     * @param merchantId
+     */
+    public void setMerchantId(String merchantId) {
+        getConfigurationOrCreate().setMerchantId(merchantId);
+    }
+
+    public String getPublicKey() {
+        return getConfigurationOrCreate().getPublicKey();
+    }
+
+    /**
+     * The public key provided by Braintree.
+     * @param publicKey
+     */
+    public void setPublicKey(String publicKey) {
+        getConfigurationOrCreate().setPublicKey(publicKey);
+    }
+
+    public String getPrivateKey() {
+        return getConfigurationOrCreate().getPrivateKey();
+    }
+
+    /**
+     * The private key provided by Braintree.
+     * @param privateKey
+     */
+    public void setPrivateKey(String privateKey) {
+        getConfigurationOrCreate().setPrivateKey(privateKey);
+    }
+
+    public String getProxyHost() {
+        return getConfigurationOrCreate().getProxyHost();
+    }
+
+    /**
+     * The proxy host
+     * @param proxyHost
+     */
+    public void setProxyHost(String proxyHost) {
+        getConfigurationOrCreate().setProxyHost(proxyHost);
+    }
+
+    public Integer getProxyPort() {
+        return getConfigurationOrCreate().getProxyPort();
+    }
+
+    /**
+     * The proxy port
+     * @param proxyPort
+     */
+    public void setProxyPort(Integer proxyPort) {
+        getConfigurationOrCreate().setProxyPort(proxyPort);
+    }
+
+    public Level getHttpLogLevel() {
+        return getConfigurationOrCreate().getHttpLogLevel();
+    }
+
+    /**
+     * Set logging level for http calls, @see java.util.logging.Level
+     * @param httpLogLevel
+     */
+    public void setHttpLogLevel(String httpLogLevel) {
+        getConfigurationOrCreate().setHttpLogLevel(httpLogLevel);
+    }
+
+    /**
+     * Set logging level for http calls, @see java.util.logging.Level
+     * @param httpLogLevel
+     */
+    public void setHttpLogLevel(Level httpLogLevel) {
+        getConfigurationOrCreate().setHttpLogLevel(httpLogLevel);
+    }
+
+    public String getHttpLogName() {
+        return getConfigurationOrCreate().getHttpLogName();
+    }
+
+    /**
+     * Set log category to use to log http calls, default "Braintree"
+     * @param httpLogName
+     */
+    public void setHttpLogName(String httpLogName) {
+        getConfigurationOrCreate().setHttpLogName(httpLogName);
+    }
+
+    public Integer getHttpReadTimeout() {
+        return getConfigurationOrCreate().getHttpReadTimeout();
+    }
+
+    /**
+     * Set read timeout for http calls.
+     * @param httpReadTimeout
+     */
+    public void setHttpReadTimeout(Integer httpReadTimeout) {
+        getConfigurationOrCreate().setHttpReadTimeout(httpReadTimeout);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
index 60f2b7f..51dffbc 100644
--- a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
+++ b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.braintree.springboot;
 
 import org.apache.camel.component.braintree.BraintreeConfiguration;
+import org.apache.camel.component.braintree.internal.BraintreeApiName;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -29,9 +30,54 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public class BraintreeComponentConfiguration {
 
     /**
-     * To use the shared configuration
+     * To use the shared configuration. Properties of the shared configuration
+     * can also be set individually.
      */
     private BraintreeConfiguration configuration;
+    /**
+     * What kind of operation to perform
+     */
+    private BraintreeApiName apiName;
+    /**
+     * What sub operation to use for the selected operation
+     */
+    private String methodName;
+    /**
+     * The environment Either SANDBOX or PRODUCTION
+     */
+    private String environment;
+    /**
+     * The merchant id provided by Braintree.
+     */
+    private String merchantId;
+    /**
+     * The public key provided by Braintree.
+     */
+    private String publicKey;
+    /**
+     * The private key provided by Braintree.
+     */
+    private String privateKey;
+    /**
+     * The proxy host
+     */
+    private String proxyHost;
+    /**
+     * The proxy port
+     */
+    private Integer proxyPort;
+    /**
+     * Set logging level for http calls see java.util.logging.Level
+     */
+    private String httpLogLevel;
+    /**
+     * Set log category to use to log http calls default Braintree
+     */
+    private String httpLogName;
+    /**
+     * Set read timeout for http calls.
+     */
+    private Integer httpReadTimeout;
 
     public BraintreeConfiguration getConfiguration() {
         return configuration;
@@ -40,4 +86,92 @@ public class BraintreeComponentConfiguration {
     public void setConfiguration(BraintreeConfiguration configuration) {
         this.configuration = configuration;
     }
+
+    public BraintreeApiName getApiName() {
+        return apiName;
+    }
+
+    public void setApiName(BraintreeApiName apiName) {
+        this.apiName = apiName;
+    }
+
+    public String getMethodName() {
+        return methodName;
+    }
+
+    public void setMethodName(String methodName) {
+        this.methodName = methodName;
+    }
+
+    public String getEnvironment() {
+        return environment;
+    }
+
+    public void setEnvironment(String environment) {
+        this.environment = environment;
+    }
+
+    public String getMerchantId() {
+        return merchantId;
+    }
+
+    public void setMerchantId(String merchantId) {
+        this.merchantId = merchantId;
+    }
+
+    public String getPublicKey() {
+        return publicKey;
+    }
+
+    public void setPublicKey(String publicKey) {
+        this.publicKey = publicKey;
+    }
+
+    public String getPrivateKey() {
+        return privateKey;
+    }
+
+    public void setPrivateKey(String privateKey) {
+        this.privateKey = privateKey;
+    }
+
+    public String getProxyHost() {
+        return proxyHost;
+    }
+
+    public void setProxyHost(String proxyHost) {
+        this.proxyHost = proxyHost;
+    }
+
+    public Integer getProxyPort() {
+        return proxyPort;
+    }
+
+    public void setProxyPort(Integer proxyPort) {
+        this.proxyPort = proxyPort;
+    }
+
+    public String getHttpLogLevel() {
+        return httpLogLevel;
+    }
+
+    public void setHttpLogLevel(String httpLogLevel) {
+        this.httpLogLevel = httpLogLevel;
+    }
+
+    public String getHttpLogName() {
+        return httpLogName;
+    }
+
+    public void setHttpLogName(String httpLogName) {
+        this.httpLogName = httpLogName;
+    }
+
+    public Integer getHttpReadTimeout() {
+        return httpReadTimeout;
+    }
+
+    public void setHttpReadTimeout(Integer httpReadTimeout) {
+        this.httpReadTimeout = httpReadTimeout;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-cache/src/main/docs/cache.adoc
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/docs/cache.adoc b/components/camel-cache/src/main/docs/cache.adoc
index 0183d48..663fda2 100644
--- a/components/camel-cache/src/main/docs/cache.adoc
+++ b/components/camel-cache/src/main/docs/cache.adoc
@@ -46,8 +46,9 @@ Options
 ^^^^^^^
 
 
+
 // component options: START
-The EHCache component supports 3 options which are listed below.
+The EHCache component supports 15 options which are listed below.
 
 
 
@@ -58,12 +59,25 @@ The EHCache component supports 3 options which are listed below.
 | cacheManagerFactory | CacheManagerFactory | To use the given CacheManagerFactory for creating the CacheManager. By default the DefaultCacheManagerFactory is used.
 | configuration | CacheConfiguration | Sets the Cache configuration
 | configurationFile | String | Sets the location of the ehcache.xml file to load from classpath or file system. By default the file is loaded from classpath:ehcache.xml
+| cacheName | String | Name of the cache
+| maxElementsInMemory | int | The number of elements that may be stored in the defined cache in memory.
+| memoryStoreEvictionPolicy | MemoryStoreEvictionPolicy | Which eviction strategy to use when maximum number of elements in memory is reached. The strategy defines which elements to be removed. LRU - Lest Recently Used LFU - Lest Frequently Used FIFO - First In First Out
+| overflowToDisk | boolean | Specifies whether cache may overflow to disk
+| eternal | boolean | Sets whether elements are eternal. If eternal timeouts are ignored and the element never expires.
+| timeToLiveSeconds | long | The maximum time between creation time and when an element expires. Is used only if the element is not eternal
+| timeToIdleSeconds | long | The maximum amount of time between accesses before an element expires
+| diskPersistent | boolean | Whether the disk store persists between restarts of the application.
+| diskExpiryThreadIntervalSeconds | long | The number of seconds between runs of the disk expiry thread.
+| eventListenerRegistry | CacheEventListenerRegistry | To configure event listeners using the CacheEventListenerRegistry
+| cacheLoaderRegistry | CacheLoaderRegistry | To configure cache loader using the CacheLoaderRegistry
+| objectCache | boolean | Whether to turn on allowing to store non serializable objects in the cache. If this option is enabled then overflow to disk cannot be enabled as well.
 |=======================================================================
 {% endraw %}
 // component options: END
 
 
 
+
 // endpoint options: START
 The EHCache component supports 20 endpoint options which are listed below:
 

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
index b909063..33ad564 100755
--- a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
+++ b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
@@ -26,6 +26,8 @@ import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
 import org.apache.camel.util.ServiceHelper;
 
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
+
 public class CacheComponent extends UriEndpointComponent {
     private CacheConfiguration configuration;
     private CacheManagerFactory cacheManagerFactory;
@@ -75,7 +77,7 @@ public class CacheComponent extends UriEndpointComponent {
     }
 
     /**
-     * Sets the Cache configuration
+     * Sets the Cache configuration. Properties of the shared configuration can also be set individually.
      *
      * @param configuration the configuration to use by default for endpoints
      */
@@ -115,4 +117,155 @@ public class CacheComponent extends UriEndpointComponent {
         ServiceHelper.stopService(cacheManagerFactory);
         super.doStop();
     }
+
+    public String getCacheName() {
+        return configuration.getCacheName();
+    }
+
+    /**
+     * Name of the cache
+     * @param cacheName
+     */
+    public void setCacheName(String cacheName) {
+        configuration.setCacheName(cacheName);
+    }
+
+    public int getMaxElementsInMemory() {
+        return configuration.getMaxElementsInMemory();
+    }
+
+    /**
+     * The number of elements that may be stored in the defined cache in memory.
+     * @param maxElementsInMemory
+     */
+    public void setMaxElementsInMemory(int maxElementsInMemory) {
+        configuration.setMaxElementsInMemory(maxElementsInMemory);
+    }
+
+    public MemoryStoreEvictionPolicy getMemoryStoreEvictionPolicy() {
+        return configuration.getMemoryStoreEvictionPolicy();
+    }
+
+    /**
+     * Which eviction strategy to use when maximum number of elements in memory is reached. The strategy defines
+     * which elements to be removed.
+     * <ul>
+     *     <li>LRU - Lest Recently Used</li>
+     *     <li>LFU - Lest Frequently Used</li>
+     *     <li>FIFO - First In First Out</li>
+     * </ul>
+     * @param memoryStoreEvictionPolicy
+     */
+    public void setMemoryStoreEvictionPolicy(MemoryStoreEvictionPolicy memoryStoreEvictionPolicy) {
+        configuration.setMemoryStoreEvictionPolicy(memoryStoreEvictionPolicy);
+    }
+
+    public boolean isOverflowToDisk() {
+        return configuration.isOverflowToDisk();
+    }
+
+    /**
+     * Specifies whether cache may overflow to disk
+     * @param overflowToDisk
+     */
+    public void setOverflowToDisk(boolean overflowToDisk) {
+        configuration.setOverflowToDisk(overflowToDisk);
+    }
+
+    public boolean isEternal() {
+        return configuration.isEternal();
+    }
+
+    /**
+     * Sets whether elements are eternal. If eternal, timeouts are ignored and the element never expires.
+     * @param eternal
+     */
+    public void setEternal(boolean eternal) {
+        configuration.setEternal(eternal);
+    }
+
+    public long getTimeToLiveSeconds() {
+        return configuration.getTimeToLiveSeconds();
+    }
+
+    /**
+     * The maximum time between creation time and when an element expires. Is used only if the element is not eternal
+     * @param timeToLiveSeconds
+     */
+    public void setTimeToLiveSeconds(long timeToLiveSeconds) {
+        configuration.setTimeToLiveSeconds(timeToLiveSeconds);
+    }
+
+    public long getTimeToIdleSeconds() {
+        return configuration.getTimeToIdleSeconds();
+    }
+
+    /**
+     * The maximum amount of time between accesses before an element expires
+     * @param timeToIdleSeconds
+     */
+    public void setTimeToIdleSeconds(long timeToIdleSeconds) {
+        configuration.setTimeToIdleSeconds(timeToIdleSeconds);
+    }
+
+    public boolean isDiskPersistent() {
+        return configuration.isDiskPersistent();
+    }
+
+    /**
+     * Whether the disk store persists between restarts of the application.
+     * @param diskPersistent
+     */
+    public void setDiskPersistent(boolean diskPersistent) {
+        configuration.setDiskPersistent(diskPersistent);
+    }
+
+    public long getDiskExpiryThreadIntervalSeconds() {
+        return configuration.getDiskExpiryThreadIntervalSeconds();
+    }
+
+    /**
+     * The number of seconds between runs of the disk expiry thread.
+     * @param diskExpiryThreadIntervalSeconds
+     */
+    public void setDiskExpiryThreadIntervalSeconds(long diskExpiryThreadIntervalSeconds) {
+        configuration.setDiskExpiryThreadIntervalSeconds(diskExpiryThreadIntervalSeconds);
+    }
+
+    /**
+     * To configure event listeners using the CacheEventListenerRegistry
+     * @param eventListenerRegistry
+     */
+    public void setEventListenerRegistry(CacheEventListenerRegistry eventListenerRegistry) {
+        configuration.setEventListenerRegistry(eventListenerRegistry);
+    }
+
+    public CacheEventListenerRegistry getEventListenerRegistry() {
+        return configuration.getEventListenerRegistry();
+    }
+
+    /**
+     * To configure cache loader using the CacheLoaderRegistry
+     * @param cacheLoaderRegistry
+     */
+    public void setCacheLoaderRegistry(CacheLoaderRegistry cacheLoaderRegistry) {
+        configuration.setCacheLoaderRegistry(cacheLoaderRegistry);
+    }
+
+    public CacheLoaderRegistry getCacheLoaderRegistry() {
+        return configuration.getCacheLoaderRegistry();
+    }
+
+    public boolean isObjectCache() {
+        return configuration.isObjectCache();
+    }
+
+    /**
+     * Whether to turn on allowing to store non serializable objects in the cache.
+     * If this option is enabled then overflow to disk cannot be enabled as well.
+     * @param objectCache
+     */
+    public void setObjectCache(boolean objectCache) {
+        configuration.setObjectCache(objectCache);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java b/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
index cfb7abd..812fc00 100644
--- a/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
+++ b/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
@@ -16,7 +16,10 @@
  */
 package org.apache.camel.component.cache.springboot;
 
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
 import org.apache.camel.component.cache.CacheConfiguration;
+import org.apache.camel.component.cache.CacheEventListenerRegistry;
+import org.apache.camel.component.cache.CacheLoaderRegistry;
 import org.apache.camel.component.cache.CacheManagerFactory;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -43,6 +46,60 @@ public class CacheComponentConfiguration {
      * system. By default the file is loaded from classpath:ehcache.xml
      */
     private String configurationFile;
+    /**
+     * Name of the cache
+     */
+    private String cacheName;
+    /**
+     * The number of elements that may be stored in the defined cache in memory.
+     */
+    private Integer maxElementsInMemory;
+    /**
+     * Which eviction strategy to use when maximum number of elements in memory
+     * is reached. The strategy defines which elements to be removed. LRU - Lest
+     * Recently Used LFU - Lest Frequently Used FIFO - First In First Out
+     */
+    private MemoryStoreEvictionPolicy memoryStoreEvictionPolicy;
+    /**
+     * Specifies whether cache may overflow to disk
+     */
+    private Boolean overflowToDisk = false;
+    /**
+     * Sets whether elements are eternal. If eternal timeouts are ignored and
+     * the element never expires.
+     */
+    private Boolean eternal = false;
+    /**
+     * The maximum time between creation time and when an element expires. Is
+     * used only if the element is not eternal
+     */
+    private long timeToLiveSeconds;
+    /**
+     * The maximum amount of time between accesses before an element expires
+     */
+    private long timeToIdleSeconds;
+    /**
+     * Whether the disk store persists between restarts of the application.
+     */
+    private Boolean diskPersistent = false;
+    /**
+     * The number of seconds between runs of the disk expiry thread.
+     */
+    private long diskExpiryThreadIntervalSeconds;
+    /**
+     * To configure event listeners using the CacheEventListenerRegistry
+     */
+    private CacheEventListenerRegistry eventListenerRegistry;
+    /**
+     * To configure cache loader using the CacheLoaderRegistry
+     */
+    private CacheLoaderRegistry cacheLoaderRegistry;
+    /**
+     * Whether to turn on allowing to store non serializable objects in the
+     * cache. If this option is enabled then overflow to disk cannot be enabled
+     * as well.
+     */
+    private Boolean objectCache = false;
 
     public CacheManagerFactory getCacheManagerFactory() {
         return cacheManagerFactory;
@@ -67,4 +124,103 @@ public class CacheComponentConfiguration {
     public void setConfigurationFile(String configurationFile) {
         this.configurationFile = configurationFile;
     }
+
+    public String getCacheName() {
+        return cacheName;
+    }
+
+    public void setCacheName(String cacheName) {
+        this.cacheName = cacheName;
+    }
+
+    public Integer getMaxElementsInMemory() {
+        return maxElementsInMemory;
+    }
+
+    public void setMaxElementsInMemory(Integer maxElementsInMemory) {
+        this.maxElementsInMemory = maxElementsInMemory;
+    }
+
+    public MemoryStoreEvictionPolicy getMemoryStoreEvictionPolicy() {
+        return memoryStoreEvictionPolicy;
+    }
+
+    public void setMemoryStoreEvictionPolicy(
+            MemoryStoreEvictionPolicy memoryStoreEvictionPolicy) {
+        this.memoryStoreEvictionPolicy = memoryStoreEvictionPolicy;
+    }
+
+    public Boolean getOverflowToDisk() {
+        return overflowToDisk;
+    }
+
+    public void setOverflowToDisk(Boolean overflowToDisk) {
+        this.overflowToDisk = overflowToDisk;
+    }
+
+    public Boolean getEternal() {
+        return eternal;
+    }
+
+    public void setEternal(Boolean eternal) {
+        this.eternal = eternal;
+    }
+
+    public long getTimeToLiveSeconds() {
+        return timeToLiveSeconds;
+    }
+
+    public void setTimeToLiveSeconds(long timeToLiveSeconds) {
+        this.timeToLiveSeconds = timeToLiveSeconds;
+    }
+
+    public long getTimeToIdleSeconds() {
+        return timeToIdleSeconds;
+    }
+
+    public void setTimeToIdleSeconds(long timeToIdleSeconds) {
+        this.timeToIdleSeconds = timeToIdleSeconds;
+    }
+
+    public Boolean getDiskPersistent() {
+        return diskPersistent;
+    }
+
+    public void setDiskPersistent(Boolean diskPersistent) {
+        this.diskPersistent = diskPersistent;
+    }
+
+    public long getDiskExpiryThreadIntervalSeconds() {
+        return diskExpiryThreadIntervalSeconds;
+    }
+
+    public void setDiskExpiryThreadIntervalSeconds(
+            long diskExpiryThreadIntervalSeconds) {
+        this.diskExpiryThreadIntervalSeconds = diskExpiryThreadIntervalSeconds;
+    }
+
+    public CacheEventListenerRegistry getEventListenerRegistry() {
+        return eventListenerRegistry;
+    }
+
+    public void setEventListenerRegistry(
+            CacheEventListenerRegistry eventListenerRegistry) {
+        this.eventListenerRegistry = eventListenerRegistry;
+    }
+
+    public CacheLoaderRegistry getCacheLoaderRegistry() {
+        return cacheLoaderRegistry;
+    }
+
+    public void setCacheLoaderRegistry(CacheLoaderRegistry cacheLoaderRegistry) {
+        this.cacheLoaderRegistry = cacheLoaderRegistry;
+    }
+
+    public Boolean getObjectCache() {
+        return objectCache;
+    }
+
+    public void setObjectCache(Boolean objectCache) {
+        this.objectCache = objectCache;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
index 72a14e8..a5f53b2 100644
--- a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
+++ b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
@@ -18,12 +18,18 @@ package org.apache.camel.component.crypto;
 
 import java.net.MalformedURLException;
 import java.net.URI;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.cert.Certificate;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.jsse.KeyStoreParameters;
 
 public class DigitalSignatureComponent extends UriEndpointComponent {
 
@@ -61,9 +67,345 @@ public class DigitalSignatureComponent extends UriEndpointComponent {
     }
 
     /**
-     * To use the shared DigitalSignatureConfiguration as configuration
+     * To use the shared DigitalSignatureConfiguration as configuration. Properties of the shared configuration can also be set individually.
      */
     public void setConfiguration(DigitalSignatureConfiguration configuration) {
         this.configuration = configuration;
     }
+
+    public String getName() {
+        return getConfiguration().getName();
+    }
+
+    /**
+     * The logical name of this operation.
+     * @param name
+     */
+    public void setName(String name) {
+        getConfiguration().setName(name);
+    }
+
+    /**
+     * Gets the JCE name of the Algorithm that should be used for the signer.
+     */
+    public String getAlgorithm() {
+        return getConfiguration().getAlgorithm();
+    }
+
+    /**
+     * Sets the JCE name of the Algorithm that should be used for the signer.
+     * @param algorithm
+     */
+    public void setAlgorithm(String algorithm) {
+        getConfiguration().setAlgorithm(algorithm);
+    }
+
+    /**
+     * Gets the alias used to query the KeyStore for keys and {@link Certificate Certificates}
+     * to be used in signing and verifying exchanges. This value can be provided at runtime via the message header
+     * {@link DigitalSignatureConstants#KEYSTORE_ALIAS}
+     */
+    public String getAlias() {
+        return getConfiguration().getAlias();
+    }
+
+    /**
+     * Sets the alias used to query the KeyStore for keys and {@link Certificate Certificates}
+     * to be used in signing and verifying exchanges. This value can be provided at runtime via the message header
+     * {@link DigitalSignatureConstants#KEYSTORE_ALIAS}
+     * @param alias
+     */
+    public void setAlias(String alias) {
+        getConfiguration().setAlias(alias);
+    }
+
+    /**
+     * Get the PrivateKey that should be used to sign the exchange
+     */
+    public PrivateKey getPrivateKey() throws Exception {
+        return getConfiguration().getPrivateKey();
+    }
+
+    /**
+     * Get the PrivateKey that should be used to sign the signature in the
+     * exchange using the supplied alias.
+     *
+     * @param alias the alias used to retrieve the Certificate from the keystore.
+     */
+    public PrivateKey getPrivateKey(String alias) throws Exception {
+        return getConfiguration().getPrivateKey(alias);
+    }
+
+    /**
+     * Get the PrivateKey that should be used to sign the signature in the
+     * exchange using the supplied alias.
+     *
+     * @param alias the alias used to retrieve the Certificate from the keystore.
+     * @param password
+     */
+    public PrivateKey getPrivateKey(String alias, char[] password) throws Exception {
+        return getConfiguration().getPrivateKey(alias, password);
+    }
+
+    /**
+     * Set the PrivateKey that should be used to sign the exchange
+     *
+     * @param privateKey the key with with to sign the exchange.
+     */
+    public void setPrivateKey(PrivateKey privateKey) {
+        getConfiguration().setPrivateKey(privateKey);
+    }
+
+    /**
+     * Sets the reference name for a PrivateKey that can be fond in the registry.
+     * @param privateKeyName
+     */
+    public void setPrivateKeyName(String privateKeyName) {
+        getConfiguration().setPrivateKeyName(privateKeyName);
+    }
+
+    /**
+     * Set the PublicKey that should be used to verify the signature in the exchange.
+     * @param publicKey
+     */
+    public void setPublicKey(PublicKey publicKey) {
+        getConfiguration().setPublicKey(publicKey);
+    }
+
+    /**
+     * Sets the reference name for a publicKey that can be fond in the registry.
+     * @param publicKeyName
+     */
+    public void setPublicKeyName(String publicKeyName) {
+        getConfiguration().setPublicKeyName(publicKeyName);
+    }
+
+    /**
+     * get the PublicKey that should be used to verify the signature in the exchange.
+     */
+    public PublicKey getPublicKey() {
+        return getConfiguration().getPublicKey();
+    }
+
+    /**
+     * Set the Certificate that should be used to verify the signature in the
+     * exchange. If a {@link KeyStore} has been configured then this will
+     * attempt to retrieve the {@link Certificate}from it using hte supplied
+     * alias. If either the alias or the Keystore is invalid then the configured
+     * certificate will be returned
+     *
+     * @param alias the alias used to retrieve the Certificate from the keystore.
+     */
+    public Certificate getCertificate(String alias) throws Exception {
+        return getConfiguration().getCertificate(alias);
+    }
+
+    /**
+     * Get the explicitly configured {@link Certificate} that should be used to
+     * verify the signature in the exchange.
+     */
+    public Certificate getCertificate() throws Exception {
+        return getConfiguration().getCertificate();
+    }
+
+    /**
+     * Set the Certificate that should be used to verify the signature in the
+     * exchange based on its payload.
+     * @param certificate
+     */
+    public void setCertificate(Certificate certificate) {
+        getConfiguration().setCertificate(certificate);
+    }
+
+    /**
+     * Sets the reference name for a PrivateKey that can be fond in the registry.
+     * @param certificateName
+     */
+    public void setCertificateName(String certificateName) {
+        getConfiguration().setCertificateName(certificateName);
+    }
+
+    /**
+     * Gets the KeyStore that can contain keys and Certficates for use in
+     * signing and verifying exchanges. A {@link KeyStore} is typically used
+     * with an alias, either one supplied in the Route definition or dynamically
+     * via the message header "CamelSignatureKeyStoreAlias". If no alias is
+     * supplied and there is only a single entry in the Keystore, then this
+     * single entry will be used.
+     */
+    public KeyStore getKeystore() {
+        return getConfiguration().getKeystore();
+    }
+
+    /**
+     * Sets the KeyStore that can contain keys and Certficates for use in
+     * signing and verifying exchanges. A {@link KeyStore} is typically used
+     * with an alias, either one supplied in the Route definition or dynamically
+     * via the message header "CamelSignatureKeyStoreAlias". If no alias is
+     * supplied and there is only a single entry in the Keystore, then this
+     * single entry will be used.
+     * @param keystore
+     */
+    public void setKeystore(KeyStore keystore) {
+        getConfiguration().setKeystore(keystore);
+    }
+
+    /**
+     * Sets the reference name for a Keystore that can be fond in the registry.
+     * @param keystoreName
+     */
+    public void setKeystoreName(String keystoreName) {
+        getConfiguration().setKeystoreName(keystoreName);
+    }
+
+    /**
+     * Gets the password used to access an aliased {@link PrivateKey} in the KeyStore.
+     */
+    public char[] getPassword() {
+        return getConfiguration().getPassword();
+    }
+
+    /**
+     * Sets the password used to access an aliased {@link PrivateKey} in the KeyStore.
+     * @param password
+     */
+    public void setPassword(char[] password) {
+        getConfiguration().setPassword(password);
+    }
+
+    public KeyStoreParameters getKeyStoreParameters() {
+        return getConfiguration().getKeyStoreParameters();
+    }
+
+    /**
+     * Sets the KeyStore that can contain keys and Certficates for use in
+     * signing and verifying exchanges based on the given KeyStoreParameters.
+     * A {@link KeyStore} is typically used
+     * with an alias, either one supplied in the Route definition or dynamically
+     * via the message header "CamelSignatureKeyStoreAlias". If no alias is
+     * supplied and there is only a single entry in the Keystore, then this
+     * single entry will be used.
+     * @param keyStoreParameters
+     */
+    public void setKeyStoreParameters(KeyStoreParameters keyStoreParameters) throws Exception {
+        getConfiguration().setKeyStoreParameters(keyStoreParameters);
+    }
+
+    /**
+     * Get the SecureRandom used to initialize the Signature service
+     */
+    public SecureRandom getSecureRandom() {
+        return getConfiguration().getSecureRandom();
+    }
+
+    /**
+     * Sets the reference name for a SecureRandom that can be fond in the registry.
+     * @param randomName
+     */
+    public void setSecureRandomName(String randomName) {
+        getConfiguration().setSecureRandomName(randomName);
+    }
+
+    /**
+     * Set the SecureRandom used to initialize the Signature service
+     *
+     * @param secureRandom the random used to init the Signature service
+     */
+    public void setSecureRandom(SecureRandom secureRandom) {
+        getConfiguration().setSecureRandom(secureRandom);
+    }
+
+    /**
+     * Get the size of the buffer used to read in the Exchange payload data.
+     */
+    public Integer getBufferSize() {
+        return getConfiguration().getBufferSize();
+    }
+
+    /**
+     * Set the size of the buffer used to read in the Exchange payload data.
+     * @param bufferSize
+     */
+    public void setBufferSize(Integer bufferSize) {
+        getConfiguration().setBufferSize(bufferSize);
+    }
+
+    /**
+     * Get the id of the security provider that provides the configured
+     * {@link Signature} algorithm.
+     */
+    public String getProvider() {
+        return getConfiguration().getProvider();
+    }
+
+    /**
+     * Set the id of the security provider that provides the configured
+     * {@link Signature} algorithm.
+     *
+     * @param provider the id of the security provider
+     */
+    public void setProvider(String provider) {
+        getConfiguration().setProvider(provider);
+    }
+
+    /**
+     * Get the name of the message header that should be used to store the
+     * base64 encoded signature. This defaults to 'CamelDigitalSignature'
+     */
+    public String getSignatureHeaderName() {
+        return getConfiguration().getSignatureHeaderName();
+    }
+
+    /**
+     * Set the name of the message header that should be used to store the
+     * base64 encoded signature. This defaults to 'CamelDigitalSignature'
+     * @param signatureHeaderName
+     */
+    public void setSignatureHeaderName(String signatureHeaderName) {
+        getConfiguration().setSignatureHeaderName(signatureHeaderName);
+    }
+
+    /**
+     * Determines if the Signature specific headers be cleared after signing and
+     * verification. Defaults to true, and should only be made otherwise at your
+     * extreme peril as vital private information such as Keys and passwords may
+     * escape if unset.
+     *
+     * @return true if the Signature headers should be unset, false otherwise
+     */
+    public boolean isClearHeaders() {
+        return getConfiguration().isClearHeaders();
+    }
+
+    /**
+     * Determines if the Signature specific headers be cleared after signing and
+     * verification. Defaults to true, and should only be made otherwise at your
+     * extreme peril as vital private information such as Keys and passwords may
+     * escape if unset.
+     * @param clearHeaders
+     */
+    public void setClearHeaders(boolean clearHeaders) {
+        getConfiguration().setClearHeaders(clearHeaders);
+    }
+
+    /**
+     * Set the Crypto operation from that supplied after the crypto scheme in the
+     * endpoint uri e.g. crypto:sign sets sign as the operation.
+     *
+     * @param operation the operation supplied after the crypto scheme
+     */
+    public void setCryptoOperation(String operation) {
+        getConfiguration().setCryptoOperation(operation);
+    }
+
+    public void setCryptoOperation(CryptoOperation operation) {
+        getConfiguration().setCryptoOperation(operation);
+    }
+
+    /**
+     * Gets the Crypto operation that was supplied in the the crypto scheme in the endpoint uri
+     */
+    public CryptoOperation getCryptoOperation() {
+        return getConfiguration().getCryptoOperation();
+    }
 }


Mime
View raw message