You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/02 06:43:35 UTC

[07/11] camel git commit: CAMEL-10197: Added plain get/set to components for spring-boot configuration

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-nagios/src/main/docs/nagios.adoc
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/docs/nagios.adoc b/components/camel-nagios/src/main/docs/nagios.adoc
index 1ea8837..b2aa95b 100644
--- a/components/camel-nagios/src/main/docs/nagios.adoc
+++ b/components/camel-nagios/src/main/docs/nagios.adoc
@@ -41,8 +41,9 @@ Options
 
 
 
+
 // component options: START
-The Nagios component supports 1 options which are listed below.
+The Nagios component supports 7 options which are listed below.
 
 
 
@@ -50,7 +51,13 @@ The Nagios component supports 1 options which are listed below.
 [width="100%",cols="2s,1m,8",options="header"]
 |=======================================================================
 | Name | Java Type | Description
-| configuration | NagiosConfiguration | To use a shared NagiosConfiguration
+| configuration | NagiosConfiguration | To use a shared configuraiton. Properties of the shared configuration can also be set individually.
+| host | String | This is the address of the Nagios host where checks should be send.
+| port | int | The port number of the host.
+| connectionTimeout | int | Connection timeout in millis.
+| timeout | int | Sending timeout in millis.
+| password | String | Password to be authenticated when sending checks to Nagios.
+| encryptionMethod | NagiosEncryptionMethod | To specify an encryption method.
 |=======================================================================
 {% endraw %}
 // component options: END
@@ -59,6 +66,7 @@ The Nagios component supports 1 options which are listed below.
 
 
 
+
 // endpoint options: START
 The Nagios component supports 9 endpoint options which are listed below:
 

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosComponent.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosComponent.java
index c86e347..987b40b 100644
--- a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosComponent.java
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosComponent.java
@@ -19,6 +19,8 @@ package org.apache.camel.component.nagios;
 import java.net.URI;
 import java.util.Map;
 
+import com.googlecode.jsendnsca.core.NagiosSettings;
+
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.util.ObjectHelper;
@@ -57,9 +59,82 @@ public class NagiosComponent extends UriEndpointComponent {
     }
 
     /**
-     * To use a shared {@link NagiosConfiguration}
+     * To use a shared configuraiton. Properties of the shared configuration can also be set individually.
      */
     public void setConfiguration(NagiosConfiguration configuration) {
         this.configuration = configuration;
     }
+
+
+    public String getHost() {
+        return configuration.getHost();
+    }
+
+    /**
+     * This is the address of the Nagios host where checks should be send.
+     * @param host
+     */
+    public void setHost(String host) {
+        configuration.setHost(host);
+    }
+
+    public int getPort() {
+        return configuration.getPort();
+    }
+
+    /**
+     * The port number of the host.
+     * @param port
+     */
+    public void setPort(int port) {
+        configuration.setPort(port);
+    }
+
+    public int getConnectionTimeout() {
+        return configuration.getConnectionTimeout();
+    }
+
+    /**
+     * Connection timeout in millis.
+     * @param connectionTimeout
+     */
+    public void setConnectionTimeout(int connectionTimeout) {
+        configuration.setConnectionTimeout(connectionTimeout);
+    }
+
+    public int getTimeout() {
+        return configuration.getTimeout();
+    }
+
+    /**
+     * Sending timeout in millis.
+     * @param timeout
+     */
+    public void setTimeout(int timeout) {
+        configuration.setTimeout(timeout);
+    }
+
+    public String getPassword() {
+        return configuration.getPassword();
+    }
+
+    /**
+     * Password to be authenticated when sending checks to Nagios.
+     * @param password
+     */
+    public void setPassword(String password) {
+        configuration.setPassword(password);
+    }
+
+    public NagiosEncryptionMethod getEncryptionMethod() {
+        return configuration.getEncryptionMethod();
+    }
+
+    /**
+     * To specify an encryption method.
+     * @param encryptionMethod
+     */
+    public void setEncryptionMethod(NagiosEncryptionMethod encryptionMethod) {
+        configuration.setEncryptionMethod(encryptionMethod);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
index afc8604..6f33834 100644
--- a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.nagios.springboot;
 
 import org.apache.camel.component.nagios.NagiosConfiguration;
+import org.apache.camel.component.nagios.NagiosEncryptionMethod;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -28,9 +29,34 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public class NagiosComponentConfiguration {
 
     /**
-     * To use a shared NagiosConfiguration
+     * To use a shared configuraiton. Properties of the shared configuration can
+     * also be set individually.
      */
     private NagiosConfiguration configuration;
+    /**
+     * This is the address of the Nagios host where checks should be send.
+     */
+    private String host;
+    /**
+     * The port number of the host.
+     */
+    private Integer port;
+    /**
+     * Connection timeout in millis.
+     */
+    private Integer connectionTimeout;
+    /**
+     * Sending timeout in millis.
+     */
+    private Integer timeout;
+    /**
+     * Password to be authenticated when sending checks to Nagios.
+     */
+    private String password;
+    /**
+     * To specify an encryption method.
+     */
+    private NagiosEncryptionMethod encryptionMethod;
 
     public NagiosConfiguration getConfiguration() {
         return configuration;
@@ -39,4 +65,52 @@ public class NagiosComponentConfiguration {
     public void setConfiguration(NagiosConfiguration 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 Integer getConnectionTimeout() {
+        return connectionTimeout;
+    }
+
+    public void setConnectionTimeout(Integer connectionTimeout) {
+        this.connectionTimeout = connectionTimeout;
+    }
+
+    public Integer getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(Integer timeout) {
+        this.timeout = timeout;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public NagiosEncryptionMethod getEncryptionMethod() {
+        return encryptionMethod;
+    }
+
+    public void setEncryptionMethod(NagiosEncryptionMethod encryptionMethod) {
+        this.encryptionMethod = encryptionMethod;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-netty/src/main/docs/netty.adoc
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/docs/netty.adoc b/components/camel-netty/src/main/docs/netty.adoc
index 7fecf2f..6e64ea3 100644
--- a/components/camel-netty/src/main/docs/netty.adoc
+++ b/components/camel-netty/src/main/docs/netty.adoc
@@ -59,8 +59,9 @@ Options
 
 
 
+
 // component options: START
-The Netty component supports 2 options which are listed below.
+The Netty component supports 65 options which are listed below.
 
 
 
@@ -68,8 +69,71 @@ The Netty component supports 2 options which are listed below.
 [width="100%",cols="2s,1m,8",options="header"]
 |=======================================================================
 | Name | Java Type | Description
-| configuration | NettyConfiguration | To use the NettyConfiguration as configuration when creating endpoints.
+| configuration | NettyConfiguration | To use the NettyConfiguration as configuration when creating endpoints. Properties of the shared configuration can also be set individually.
 | maximumPoolSize | int | The core pool size for the ordered thread pool if its in use. The default value is 16.
+| orderedThreadPoolExecutor | boolean | Whether to use ordered thread pool to ensure events are processed orderly on the same channel. See details at the netty javadoc of org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor for more details.
+| producerPoolMaxActive | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit.
+| producerPoolMinIdle | int | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects.
+| producerPoolMaxIdle | int | Sets the cap on the number of idle instances in the pool.
+| producerPoolMinEvictableIdle | long | Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor.
+| producerPoolEnabled | boolean | Whether producer pool is enabled or not. Important: Do not turn this off as the pooling is needed for handling concurrency and reliable request/reply.
+| udpConnectionlessSending | boolean | This option supports connection less udp sending which is a real fire and forget. A connected udp send receive the PortUnreachableException if no one is listen on the receiving port.
+| clientMode | boolean | If the clientMode is true netty consumer will connect the address as a TCP client.
+| useChannelBuffer | boolean | If the useChannelBuffer is true netty producer will turn the message body into ChannelBuffer before sending it out.
+| maxChannelMemorySize | long | The maximum total size of the queued events per channel when using orderedThreadPoolExecutor. Specify 0 to disable.
+| maxTotalMemorySize | long | The maximum total size of the queued events for this pool when using orderedThreadPoolExecutor. Specify 0 to disable.
+| protocol | String | The protocol to use which can be tcp or udp.
+| host | String | The hostname. For the consumer the hostname is localhost or 0.0.0.0 For the producer the hostname is the remote host to connect to
+| port | int | The host port number
+| broadcast | boolean | Setting to choose Multicast over UDP
+| sendBufferSize | long | The TCP/UDP buffer sizes to be used during outbound communication. Size is bytes.
+| receiveBufferSize | long | The TCP/UDP buffer sizes to be used during inbound communication. Size is bytes.
+| receiveBufferSizePredictor | int | Configures the buffer size predictor. See details at Jetty documentation and this mail thread.
+| workerCount | int | When netty works on nio mode it uses default workerCount parameter from Netty which is cpu_core_threads2. User can use this operation to override the default workerCount from Netty
+| bossCount | int | When netty works on nio mode it uses default bossCount parameter from Netty which is 1. User can use this operation to override the default bossCount from Netty
+| keepAlive | boolean | Setting to ensure socket is not closed due to inactivity
+| tcpNoDelay | boolean | Setting to improve TCP protocol performance
+| reuseAddress | boolean | Setting to facilitate socket multiplexing
+| connectTimeout | long | Time to wait for a socket connection to be available. Value is in millis.
+| backlog | int | Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. Setting this option to a value such as 200 500 or 1000 tells the TCP stack how long the accept queue can be If this option is not configured then the backlog depends on OS setting.
+| ssl | boolean | Setting to specify whether SSL encryption is applied to this endpoint
+| sslClientCertHeaders | boolean | When enabled and in SSL mode then the Netty consumer will enrich the Camel Message with headers having information about the client certificate such as subject name issuer name serial number and the valid date range.
+| sslHandler | SslHandler | Reference to a class that could be used to return an SSL Handler
+| sslContextParameters | SSLContextParameters | To configure security using SSLContextParameters
+| needClientAuth | boolean | Configures whether the server needs client authentication when using SSL.
+| keyStoreResource | String | Client side certificate keystore to be used for encryption. Is loaded by default from classpath but you can prefix with classpath: file: or http: to load the resource from different systems.
+| trustStoreResource | String | Server side certificate keystore to be used for encryption. Is loaded by default from classpath but you can prefix with classpath: file: or http: to load the resource from different systems.
+| keyStoreFormat | String | Keystore format to be used for payload encryption. Defaults to JKS if not set
+| securityProvider | String | Security provider to be used for payload encryption. Defaults to SunX509 if not set.
+| passphrase | String | Password setting to use in order to encrypt/decrypt payloads sent using SSH
+| serverPipelineFactory | ServerPipelineFactory | To use a custom ServerPipelineFactory
+| requestTimeout | long | Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is in milli seconds so eg 30000 is 30 seconds. The requestTimeout is using Netty's ReadTimeoutHandler to trigger the timeout.
+| nettyServerBootstrapFactory | NettyServerBootstrapFactory | To use a custom NettyServerBootstrapFactory
+| sync | boolean | Setting to set endpoint as one-way or request-response
+| textline | boolean | Only used for TCP. If no codec is specified you can use this flag to indicate a text line based codec; if not specified or the value is false then Object Serialization is assumed over TCP.
+| options | Map | Allows to configure additional netty options using option. as prefix. For example option.child.keepAlive=false to set the netty option child.keepAlive=false. See the Netty documentation for possible options that can be used.
+| decoderMaxLineLength | int | The max line length to use for the textline codec.
+| bossPool | BossPool | To use a explicit org.jboss.netty.channel.socket.nio.BossPool as the boss thread pool. For example to share a thread pool with multiple consumers. By default each consumer has their own boss pool with 1 core thread.
+| delimiter | TextLineDelimiter | The delimiter to use for the textline codec. Possible values are LINE and NULL.
+| autoAppendDelimiter | boolean | Whether or not to auto append missing end delimiter when sending using the textline codec.
+| workerPool | WorkerPool | To use a explicit org.jboss.netty.channel.socket.nio.WorkerPool as the worker thread pool. For example to share a thread pool with multiple consumers. By default each consumer has their own worker pool with 2 x cpu count core threads.
+| channelGroup | ChannelGroup | To use a explicit ChannelGroup.
+| encoding | String | The encoding (a charset name) to use for the textline codec. If not provided Camel will use the JVM default Charset.
+| networkInterface | String | When using UDP then this option can be used to specify a network interface by its name such as eth0 to join a multicast group.
+| decoders | List | A list of decoders to be used. You can use a String which have values separated by comma and have the values be looked up in the Registry. Just remember to prefix the value with so Camel knows it should lookup.
+| enabledProtocols | String | Which protocols to enable when using SSL
+| encoders | List | A list of encoders to be used. You can use a String which have values separated by comma and have the values be looked up in the Registry. Just remember to prefix the value with so Camel knows it should lookup.
+| encoder | ChannelHandler | A custom ChannelHandler class that can be used to perform special marshalling of outbound payloads. Must override org.jboss.netty.channel.ChannelDownStreamHandler.
+| decoder | ChannelHandler | A custom ChannelHandler class that can be used to perform special marshalling of inbound payloads. Must override org.jboss.netty.channel.ChannelUpStreamHandler.
+| disconnect | boolean | Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer.
+| lazyChannelCreation | boolean | Channels can be lazily created to avoid exceptions if the remote server is not up and running when the Camel producer is started.
+| transferExchange | boolean | Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body Out body fault body In headers Out headers fault headers exchange properties exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.
+| disconnectOnNoReply | boolean | If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back.
+| noReplyLogLevel | LoggingLevel | If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back.
+| serverExceptionCaughtLogLevel | LoggingLevel | If the server (NettyConsumer) catches an exception then its logged using this logging level.
+| serverClosedChannelExceptionCaughtLogLevel | LoggingLevel | If the server (NettyConsumer) catches an java.nio.channels.ClosedChannelException then its logged using this logging level. This is used to avoid logging the closed channel exceptions as clients can disconnect abruptly and then cause a flood of closed exceptions in the Netty server.
+| allowDefaultCodec | boolean | The netty component installs a default codec if both encoder/deocder is null and textline is false. Setting allowDefaultCodec to false prevents the netty component from installing a default codec as the first element in the filter chain.
+| clientPipelineFactory | ClientPipelineFactory | To use a custom ClientPipelineFactory
 |=======================================================================
 {% endraw %}
 // component options: END
@@ -79,6 +143,7 @@ The Netty component supports 2 options which are listed below.
 
 
 
+
 // endpoint options: START
 The Netty component supports 70 endpoint options which are listed below:
 

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index 9565000..9e96de8 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -18,16 +18,24 @@ package org.apache.camel.component.netty;
 
 import java.net.URI;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
+import org.apache.camel.LoggingLevel;
 import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.concurrent.CamelThreadFactory;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.jboss.netty.channel.ChannelHandler;
+import org.jboss.netty.channel.group.ChannelGroup;
+import org.jboss.netty.channel.socket.nio.BossPool;
+import org.jboss.netty.channel.socket.nio.WorkerPool;
 import org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor;
+import org.jboss.netty.handler.ssl.SslHandler;
 import org.jboss.netty.util.HashedWheelTimer;
 import org.jboss.netty.util.Timer;
 
@@ -93,7 +101,7 @@ public class NettyComponent extends UriEndpointComponent {
     }
 
     /**
-     * To use the NettyConfiguration as configuration when creating endpoints.
+     * To use the NettyConfiguration as configuration when creating endpoints. Properties of the shared configuration can also be set individually.
      */
     public void setConfiguration(NettyConfiguration configuration) {
         this.configuration = configuration;
@@ -112,6 +120,144 @@ public class NettyComponent extends UriEndpointComponent {
         this.maximumPoolSize = maximumPoolSize;
     }
 
+    public boolean isOrderedThreadPoolExecutor() {
+        return getConfigurationOrCreate().isOrderedThreadPoolExecutor();
+    }
+
+    /**
+     * Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.
+     * See details at the netty javadoc of org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor for more details.
+     * @param orderedThreadPoolExecutor
+     */
+    public void setOrderedThreadPoolExecutor(boolean orderedThreadPoolExecutor) {
+        getConfigurationOrCreate().setOrderedThreadPoolExecutor(orderedThreadPoolExecutor);
+    }
+
+    public int getProducerPoolMaxActive() {
+        return getConfigurationOrCreate().getProducerPoolMaxActive();
+    }
+
+    /**
+     * Sets the cap on the number of objects that can be allocated by the pool
+     * (checked out to clients, or idle awaiting checkout) at a given time. Use a negative value for no limit.
+     * @param producerPoolMaxActive
+     */
+    public void setProducerPoolMaxActive(int producerPoolMaxActive) {
+        getConfigurationOrCreate().setProducerPoolMaxActive(producerPoolMaxActive);
+    }
+
+    public int getProducerPoolMinIdle() {
+        return getConfigurationOrCreate().getProducerPoolMinIdle();
+    }
+
+    /**
+     * Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects.
+     * @param producerPoolMinIdle
+     */
+    public void setProducerPoolMinIdle(int producerPoolMinIdle) {
+        getConfigurationOrCreate().setProducerPoolMinIdle(producerPoolMinIdle);
+    }
+
+    public int getProducerPoolMaxIdle() {
+        return getConfigurationOrCreate().getProducerPoolMaxIdle();
+    }
+
+    /**
+     * Sets the cap on the number of "idle" instances in the pool.
+     * @param producerPoolMaxIdle
+     */
+    public void setProducerPoolMaxIdle(int producerPoolMaxIdle) {
+        getConfigurationOrCreate().setProducerPoolMaxIdle(producerPoolMaxIdle);
+    }
+
+    public long getProducerPoolMinEvictableIdle() {
+        return getConfigurationOrCreate().getProducerPoolMinEvictableIdle();
+    }
+
+    /**
+     * Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor.
+     * @param producerPoolMinEvictableIdle
+     */
+    public void setProducerPoolMinEvictableIdle(long producerPoolMinEvictableIdle) {
+        getConfigurationOrCreate().setProducerPoolMinEvictableIdle(producerPoolMinEvictableIdle);
+    }
+
+    public boolean isProducerPoolEnabled() {
+        return getConfigurationOrCreate().isProducerPoolEnabled();
+    }
+
+    /**
+     * Whether producer pool is enabled or not.
+     * Important: Do not turn this off, as the pooling is needed for handling concurrency and reliable request/reply.
+     * @param producerPoolEnabled
+     */
+    public void setProducerPoolEnabled(boolean producerPoolEnabled) {
+        getConfigurationOrCreate().setProducerPoolEnabled(producerPoolEnabled);
+    }
+
+    public boolean isUdpConnectionlessSending() {
+        return getConfigurationOrCreate().isUdpConnectionlessSending();
+    }
+
+    /**
+     * This option supports connection less udp sending which is a real fire and forget.
+     * A connected udp send receive the PortUnreachableException if no one is listen on the receiving port.
+     * @param udpConnectionlessSending
+     */
+    public void setUdpConnectionlessSending(boolean udpConnectionlessSending) {
+        getConfigurationOrCreate().setUdpConnectionlessSending(udpConnectionlessSending);
+    }
+
+    public boolean isClientMode() {
+        return getConfigurationOrCreate().isClientMode();
+    }
+
+    /**
+     * If the clientMode is true, netty consumer will connect the address as a TCP client.
+     * @param clientMode
+     */
+    public void setClientMode(boolean clientMode) {
+        getConfigurationOrCreate().setClientMode(clientMode);
+    }
+
+    public boolean isUseChannelBuffer() {
+        return getConfigurationOrCreate().isUseChannelBuffer();
+    }
+
+    /**
+     * If the useChannelBuffer is true, netty producer will turn the message body into {@link ChannelBuffer} before sending it out.
+     * @param useChannelBuffer
+     */
+    public void setUseChannelBuffer(boolean useChannelBuffer) {
+        getConfigurationOrCreate().setUseChannelBuffer(useChannelBuffer);
+    }
+
+    public long getMaxChannelMemorySize() {
+        return getConfigurationOrCreate().getMaxChannelMemorySize();
+    }
+
+    /**
+     * The maximum total size of the queued events per channel when using orderedThreadPoolExecutor.
+     * Specify 0 to disable.
+     * @param maxChannelMemorySize
+     */
+    public void setMaxChannelMemorySize(long maxChannelMemorySize) {
+        getConfigurationOrCreate().setMaxChannelMemorySize(maxChannelMemorySize);
+    }
+
+    public long getMaxTotalMemorySize() {
+        return getConfigurationOrCreate().getMaxTotalMemorySize();
+    }
+
+    /**
+     * The maximum total size of the queued events for this pool when using orderedThreadPoolExecutor.
+     * Specify 0 to disable.
+     * @param maxTotalMemorySize
+     */
+    public void setMaxTotalMemorySize(long maxTotalMemorySize) {
+        getConfigurationOrCreate().setMaxTotalMemorySize(maxTotalMemorySize);
+    }
+
     public Timer getTimer() {
         return timer;
     }
@@ -171,4 +317,671 @@ public class NettyComponent extends UriEndpointComponent {
         super.doStop();
     }
 
+    private NettyConfiguration getConfigurationOrCreate() {
+        if (this.getConfiguration() == null) {
+            this.setConfiguration(new NettyConfiguration());
+        }
+        return this.getConfiguration();
+    }
+
+    public String getAddress() {
+        return getConfigurationOrCreate().getAddress();
+    }
+
+    public boolean isTcp() {
+        return getConfigurationOrCreate().isTcp();
+    }
+
+    public String getProtocol() {
+        return getConfigurationOrCreate().getProtocol();
+    }
+
+    /**
+     * The protocol to use which can be tcp or udp.
+     * @param protocol
+     */
+    public void setProtocol(String protocol) {
+        getConfigurationOrCreate().setProtocol(protocol);
+    }
+
+    public String getHost() {
+        return getConfigurationOrCreate().getHost();
+    }
+
+    /**
+     * The hostname.
+     * <p/>
+     * For the consumer the hostname is localhost or 0.0.0.0
+     * For the producer the hostname is the remote host to connect to
+     * @param host
+     */
+    public void setHost(String host) {
+        getConfigurationOrCreate().setHost(host);
+    }
+
+    public int getPort() {
+        return getConfigurationOrCreate().getPort();
+    }
+
+    /**
+     * The host port number
+     * @param port
+     */
+    public void setPort(int port) {
+        getConfigurationOrCreate().setPort(port);
+    }
+
+    public boolean isBroadcast() {
+        return getConfigurationOrCreate().isBroadcast();
+    }
+
+    /**
+     * Setting to choose Multicast over UDP
+     * @param broadcast
+     */
+    public void setBroadcast(boolean broadcast) {
+        getConfigurationOrCreate().setBroadcast(broadcast);
+    }
+
+    public long getSendBufferSize() {
+        return getConfigurationOrCreate().getSendBufferSize();
+    }
+
+    /**
+     * The TCP/UDP buffer sizes to be used during outbound communication. Size is bytes.
+     * @param sendBufferSize
+     */
+    public void setSendBufferSize(long sendBufferSize) {
+        getConfigurationOrCreate().setSendBufferSize(sendBufferSize);
+    }
+
+    public long getReceiveBufferSize() {
+        return getConfigurationOrCreate().getReceiveBufferSize();
+    }
+
+    /**
+     * The TCP/UDP buffer sizes to be used during inbound communication. Size is bytes.
+     * @param receiveBufferSize
+     */
+    public void setReceiveBufferSize(long receiveBufferSize) {
+        getConfigurationOrCreate().setReceiveBufferSize(receiveBufferSize);
+    }
+
+    public int getReceiveBufferSizePredictor() {
+        return getConfigurationOrCreate().getReceiveBufferSizePredictor();
+    }
+
+    /**
+     * Configures the buffer size predictor. See details at Jetty documentation and this mail thread.
+     * @param receiveBufferSizePredictor
+     */
+    public void setReceiveBufferSizePredictor(int receiveBufferSizePredictor) {
+        getConfigurationOrCreate().setReceiveBufferSizePredictor(receiveBufferSizePredictor);
+    }
+
+    public int getWorkerCount() {
+        return getConfigurationOrCreate().getWorkerCount();
+    }
+
+    /**
+     * When netty works on nio mode, it uses default workerCount parameter from Netty, which is cpu_core_threads*2.
+     * User can use this operation to override the default workerCount from Netty
+     * @param workerCount
+     */
+    public void setWorkerCount(int workerCount) {
+        getConfigurationOrCreate().setWorkerCount(workerCount);
+    }
+
+    public int getBossCount() {
+        return getConfigurationOrCreate().getBossCount();
+    }
+
+    /**
+     * When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1.
+     * User can use this operation to override the default bossCount from Netty
+     * @param bossCount
+     */
+    public void setBossCount(int bossCount) {
+        getConfigurationOrCreate().setBossCount(bossCount);
+    }
+
+    public boolean isKeepAlive() {
+        return getConfigurationOrCreate().isKeepAlive();
+    }
+
+    /**
+     * Setting to ensure socket is not closed due to inactivity
+     * @param keepAlive
+     */
+    public void setKeepAlive(boolean keepAlive) {
+        getConfigurationOrCreate().setKeepAlive(keepAlive);
+    }
+
+    public boolean isTcpNoDelay() {
+        return getConfigurationOrCreate().isTcpNoDelay();
+    }
+
+    /**
+     * Setting to improve TCP protocol performance
+     * @param tcpNoDelay
+     */
+    public void setTcpNoDelay(boolean tcpNoDelay) {
+        getConfigurationOrCreate().setTcpNoDelay(tcpNoDelay);
+    }
+
+    public boolean isReuseAddress() {
+        return getConfigurationOrCreate().isReuseAddress();
+    }
+
+    /**
+     * Setting to facilitate socket multiplexing
+     * @param reuseAddress
+     */
+    public void setReuseAddress(boolean reuseAddress) {
+        getConfigurationOrCreate().setReuseAddress(reuseAddress);
+    }
+
+    public long getConnectTimeout() {
+        return getConfigurationOrCreate().getConnectTimeout();
+    }
+
+    /**
+     * Time to wait for a socket connection to be available. Value is in millis.
+     * @param connectTimeout
+     */
+    public void setConnectTimeout(long connectTimeout) {
+        getConfigurationOrCreate().setConnectTimeout(connectTimeout);
+    }
+
+    public int getBacklog() {
+        return getConfigurationOrCreate().getBacklog();
+    }
+
+    /**
+     * Allows to configure a backlog for netty consumer (server).
+     * Note the backlog is just a best effort depending on the OS.
+     * Setting this option to a value such as 200, 500 or 1000, tells the TCP stack how long the "accept" queue can be
+     * If this option is not configured, then the backlog depends on OS setting.
+     * @param backlog
+     */
+    public void setBacklog(int backlog) {
+        getConfigurationOrCreate().setBacklog(backlog);
+    }
+
+    public boolean isSsl() {
+        return getConfigurationOrCreate().isSsl();
+    }
+
+    /**
+     * Setting to specify whether SSL encryption is applied to this endpoint
+     * @param ssl
+     */
+    public void setSsl(boolean ssl) {
+        getConfigurationOrCreate().setSsl(ssl);
+    }
+
+    public boolean isSslClientCertHeaders() {
+        return getConfigurationOrCreate().isSslClientCertHeaders();
+    }
+
+    /**
+     * When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message with headers having
+     * information about the client certificate such as subject name, issuer name, serial number, and the valid date range.
+     * @param sslClientCertHeaders
+     */
+    public void setSslClientCertHeaders(boolean sslClientCertHeaders) {
+        getConfigurationOrCreate().setSslClientCertHeaders(sslClientCertHeaders);
+    }
+
+    public SslHandler getSslHandler() {
+        return getConfigurationOrCreate().getSslHandler();
+    }
+
+    /**
+     * Reference to a class that could be used to return an SSL Handler
+     * @param sslHandler
+     */
+    public void setSslHandler(SslHandler sslHandler) {
+        getConfigurationOrCreate().setSslHandler(sslHandler);
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return getConfigurationOrCreate().getSslContextParameters();
+    }
+
+    /**
+     * To configure security using SSLContextParameters
+     * @param sslContextParameters
+     */
+    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
+        getConfigurationOrCreate().setSslContextParameters(sslContextParameters);
+    }
+
+    public boolean isNeedClientAuth() {
+        return getConfigurationOrCreate().isNeedClientAuth();
+    }
+
+    /**
+     * Configures whether the server needs client authentication when using SSL.
+     * @param needClientAuth
+     */
+    public void setNeedClientAuth(boolean needClientAuth) {
+        getConfigurationOrCreate().setNeedClientAuth(needClientAuth);
+    }
+
+    public String getKeyStoreResource() {
+        return getConfigurationOrCreate().getKeyStoreResource();
+    }
+
+    /**
+     * Client side certificate keystore to be used for encryption. Is loaded by default from classpath,
+     * but you can prefix with "classpath:", "file:", or "http:" to load the resource from different systems.
+     * @param keyStoreResource
+     */
+    public void setKeyStoreResource(String keyStoreResource) {
+        getConfigurationOrCreate().setKeyStoreResource(keyStoreResource);
+    }
+
+    public String getTrustStoreResource() {
+        return getConfigurationOrCreate().getTrustStoreResource();
+    }
+
+    /**
+     * Server side certificate keystore to be used for encryption.
+     * Is loaded by default from classpath, but you can prefix with "classpath:", "file:", or "http:" to load the resource from different systems.
+     * @param trustStoreResource
+     */
+    public void setTrustStoreResource(String trustStoreResource) {
+        getConfigurationOrCreate().setTrustStoreResource(trustStoreResource);
+    }
+
+    public String getKeyStoreFormat() {
+        return getConfigurationOrCreate().getKeyStoreFormat();
+    }
+
+    /**
+     * Keystore format to be used for payload encryption. Defaults to "JKS" if not set
+     * @param keyStoreFormat
+     */
+    public void setKeyStoreFormat(String keyStoreFormat) {
+        getConfigurationOrCreate().setKeyStoreFormat(keyStoreFormat);
+    }
+
+    public String getSecurityProvider() {
+        return getConfigurationOrCreate().getSecurityProvider();
+    }
+
+    /**
+     * Security provider to be used for payload encryption. Defaults to "SunX509" if not set.
+     * @param securityProvider
+     */
+    public void setSecurityProvider(String securityProvider) {
+        getConfigurationOrCreate().setSecurityProvider(securityProvider);
+    }
+
+    public String getCharsetName() {
+        return getConfigurationOrCreate().getCharsetName();
+    }
+
+    public String getPassphrase() {
+        return getConfigurationOrCreate().getPassphrase();
+    }
+
+    /**
+     * Password setting to use in order to encrypt/decrypt payloads sent using SSH
+     * @param passphrase
+     */
+    public void setPassphrase(String passphrase) {
+        getConfigurationOrCreate().setPassphrase(passphrase);
+    }
+
+    public ServerPipelineFactory getServerPipelineFactory() {
+        return getConfigurationOrCreate().getServerPipelineFactory();
+    }
+
+    public long getRequestTimeout() {
+        return getConfigurationOrCreate().getRequestTimeout();
+    }
+
+    /**
+     * To use a custom ServerPipelineFactory
+     * @param serverPipelineFactory
+     */
+    public void setServerPipelineFactory(ServerPipelineFactory serverPipelineFactory) {
+        getConfigurationOrCreate().setServerPipelineFactory(serverPipelineFactory);
+    }
+
+    public NettyServerBootstrapFactory getNettyServerBootstrapFactory() {
+        return getConfigurationOrCreate().getNettyServerBootstrapFactory();
+    }
+
+    /**
+     * Allows to use a timeout for the Netty producer when calling a remote server.
+     * By default no timeout is in use. The value is in milli seconds, so eg 30000 is 30 seconds.
+     * The requestTimeout is using Netty's ReadTimeoutHandler to trigger the timeout.
+     * @param requestTimeout
+     */
+    public void setRequestTimeout(long requestTimeout) {
+        getConfigurationOrCreate().setRequestTimeout(requestTimeout);
+    }
+
+    public boolean isSync() {
+        return getConfigurationOrCreate().isSync();
+    }
+
+    /**
+     * To use a custom NettyServerBootstrapFactory
+     * @param nettyServerBootstrapFactory
+     */
+    public void setNettyServerBootstrapFactory(NettyServerBootstrapFactory nettyServerBootstrapFactory) {
+        getConfigurationOrCreate().setNettyServerBootstrapFactory(nettyServerBootstrapFactory);
+    }
+
+    /**
+     * Setting to set endpoint as one-way or request-response
+     * @param sync
+     */
+    public void setSync(boolean sync) {
+        getConfigurationOrCreate().setSync(sync);
+    }
+
+    public boolean isTextline() {
+        return getConfigurationOrCreate().isTextline();
+    }
+
+    public Map<String, Object> getOptions() {
+        return getConfigurationOrCreate().getOptions();
+    }
+
+    /**
+     * Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec;
+     * if not specified or the value is false, then Object Serialization is assumed over TCP.
+     * @param textline
+     */
+    public void setTextline(boolean textline) {
+        getConfigurationOrCreate().setTextline(textline);
+    }
+
+    /**
+     * Allows to configure additional netty options using "option." as prefix.
+     * For example "option.child.keepAlive=false" to set the netty option "child.keepAlive=false". See the Netty documentation for possible options that can be used.
+     * @param options
+     */
+    public void setOptions(Map<String, Object> options) {
+        getConfigurationOrCreate().setOptions(options);
+    }
+
+    public int getDecoderMaxLineLength() {
+        return getConfigurationOrCreate().getDecoderMaxLineLength();
+    }
+
+    public BossPool getBossPool() {
+        return getConfigurationOrCreate().getBossPool();
+    }
+
+    /**
+     * The max line length to use for the textline codec.
+     * @param decoderMaxLineLength
+     */
+    public void setDecoderMaxLineLength(int decoderMaxLineLength) {
+        getConfigurationOrCreate().setDecoderMaxLineLength(decoderMaxLineLength);
+    }
+
+    public TextLineDelimiter getDelimiter() {
+        return getConfigurationOrCreate().getDelimiter();
+    }
+
+    /**
+     * To use a explicit org.jboss.netty.channel.socket.nio.BossPool as the boss thread pool.
+     * For example to share a thread pool with multiple consumers. By default each consumer has their own boss pool with 1 core thread.
+     * @param bossPool
+     */
+    public void setBossPool(BossPool bossPool) {
+        getConfigurationOrCreate().setBossPool(bossPool);
+    }
+
+    public WorkerPool getWorkerPool() {
+        return getConfigurationOrCreate().getWorkerPool();
+    }
+
+    /**
+     * The delimiter to use for the textline codec. Possible values are LINE and NULL.
+     * @param delimiter
+     */
+    public void setDelimiter(TextLineDelimiter delimiter) {
+        getConfigurationOrCreate().setDelimiter(delimiter);
+    }
+
+    public boolean isAutoAppendDelimiter() {
+        return getConfigurationOrCreate().isAutoAppendDelimiter();
+    }
+
+    /**
+     * Whether or not to auto append missing end delimiter when sending using the textline codec.
+     * @param autoAppendDelimiter
+     */
+    public void setAutoAppendDelimiter(boolean autoAppendDelimiter) {
+        getConfigurationOrCreate().setAutoAppendDelimiter(autoAppendDelimiter);
+    }
+
+    /**
+     * To use a explicit org.jboss.netty.channel.socket.nio.WorkerPool as the worker thread pool.
+     * For example to share a thread pool with multiple consumers. By default each consumer has their own worker pool with 2 x cpu count core threads.
+     * @param workerPool
+     */
+    public void setWorkerPool(WorkerPool workerPool) {
+        getConfigurationOrCreate().setWorkerPool(workerPool);
+    }
+
+    public ChannelGroup getChannelGroup() {
+        return getConfigurationOrCreate().getChannelGroup();
+    }
+
+    public String getEncoding() {
+        return getConfigurationOrCreate().getEncoding();
+    }
+
+    /**
+     * To use a explicit ChannelGroup.
+     * @param channelGroup
+     */
+    public void setChannelGroup(ChannelGroup channelGroup) {
+        getConfigurationOrCreate().setChannelGroup(channelGroup);
+    }
+
+    /**
+     * The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset.
+     * @param encoding
+     */
+    public void setEncoding(String encoding) {
+        getConfigurationOrCreate().setEncoding(encoding);
+    }
+
+    public String getNetworkInterface() {
+        return getConfigurationOrCreate().getNetworkInterface();
+    }
+
+    public List<ChannelHandler> getDecoders() {
+        return getConfigurationOrCreate().getDecoders();
+    }
+
+    /**
+     * When using UDP then this option can be used to specify a network interface by its name, such as eth0 to join a multicast group.
+     * @param networkInterface
+     */
+    public void setNetworkInterface(String networkInterface) {
+        getConfigurationOrCreate().setNetworkInterface(networkInterface);
+    }
+
+    public String getEnabledProtocols() {
+        return getConfigurationOrCreate().getEnabledProtocols();
+    }
+
+    /**
+     * A list of decoders to be used.
+     * You can use a String which have values separated by comma, and have the values be looked up in the Registry.
+     * Just remember to prefix the value with # so Camel knows it should lookup.
+     * @param decoders
+     */
+    public void setDecoders(List<ChannelHandler> decoders) {
+        getConfigurationOrCreate().setDecoders(decoders);
+    }
+
+    /**
+     * Which protocols to enable when using SSL
+     * @param enabledProtocols
+     */
+    public void setEnabledProtocols(String enabledProtocols) {
+        getConfigurationOrCreate().setEnabledProtocols(enabledProtocols);
+    }
+
+    public List<ChannelHandler> getEncoders() {
+        return getConfigurationOrCreate().getEncoders();
+    }
+
+    /**
+     * A list of encoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry.
+     * Just remember to prefix the value with # so Camel knows it should lookup.
+     * @param encoders
+     */
+    public void setEncoders(List<ChannelHandler> encoders) {
+        getConfigurationOrCreate().setEncoders(encoders);
+    }
+
+    public ChannelHandler getEncoder() {
+        return getConfigurationOrCreate().getEncoder();
+    }
+
+    /**
+     * A custom ChannelHandler class that can be used to perform special marshalling of outbound payloads. Must override org.jboss.netty.channel.ChannelDownStreamHandler.
+     * @param encoder
+     */
+    public void setEncoder(ChannelHandler encoder) {
+        getConfigurationOrCreate().setEncoder(encoder);
+    }
+
+    public ChannelHandler getDecoder() {
+        return getConfigurationOrCreate().getDecoder();
+    }
+
+    /**
+     * A custom ChannelHandler class that can be used to perform special marshalling of inbound payloads. Must override org.jboss.netty.channel.ChannelUpStreamHandler.
+     * @param decoder
+     */
+    public void setDecoder(ChannelHandler decoder) {
+        getConfigurationOrCreate().setDecoder(decoder);
+    }
+
+    public boolean isDisconnect() {
+        return getConfigurationOrCreate().isDisconnect();
+    }
+
+    /**
+     * Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer.
+     * @param disconnect
+     */
+    public void setDisconnect(boolean disconnect) {
+        getConfigurationOrCreate().setDisconnect(disconnect);
+    }
+
+    public boolean isLazyChannelCreation() {
+        return getConfigurationOrCreate().isLazyChannelCreation();
+    }
+
+    /**
+     * Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.
+     * @param lazyChannelCreation
+     */
+    public void setLazyChannelCreation(boolean lazyChannelCreation) {
+        getConfigurationOrCreate().setLazyChannelCreation(lazyChannelCreation);
+    }
+
+    public boolean isTransferExchange() {
+        return getConfigurationOrCreate().isTransferExchange();
+    }
+
+    /**
+     * Only used for TCP. You can transfer the exchange over the wire instead of just the body.
+     * The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers,
+     * exchange properties, exchange exception.
+     * This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.
+     * @param transferExchange
+     */
+    public void setTransferExchange(boolean transferExchange) {
+        getConfigurationOrCreate().setTransferExchange(transferExchange);
+    }
+
+    public boolean isDisconnectOnNoReply() {
+        return getConfigurationOrCreate().isDisconnectOnNoReply();
+    }
+
+    /**
+     * If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back.
+     * @param disconnectOnNoReply
+     */
+    public void setDisconnectOnNoReply(boolean disconnectOnNoReply) {
+        getConfigurationOrCreate().setDisconnectOnNoReply(disconnectOnNoReply);
+    }
+
+    public LoggingLevel getNoReplyLogLevel() {
+        return getConfigurationOrCreate().getNoReplyLogLevel();
+    }
+
+    /**
+     * If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back.
+     * @param noReplyLogLevel
+     */
+    public void setNoReplyLogLevel(LoggingLevel noReplyLogLevel) {
+        getConfigurationOrCreate().setNoReplyLogLevel(noReplyLogLevel);
+    }
+
+    public LoggingLevel getServerExceptionCaughtLogLevel() {
+        return getConfigurationOrCreate().getServerExceptionCaughtLogLevel();
+    }
+
+    /**
+     * If the server (NettyConsumer) catches an exception then its logged using this logging level.
+     * @param serverExceptionCaughtLogLevel
+     */
+    public void setServerExceptionCaughtLogLevel(LoggingLevel serverExceptionCaughtLogLevel) {
+        getConfigurationOrCreate().setServerExceptionCaughtLogLevel(serverExceptionCaughtLogLevel);
+    }
+
+    public LoggingLevel getServerClosedChannelExceptionCaughtLogLevel() {
+        return getConfigurationOrCreate().getServerClosedChannelExceptionCaughtLogLevel();
+    }
+
+    /**
+     * If the server (NettyConsumer) catches an java.nio.channels.ClosedChannelException then its logged using this logging level.
+     * This is used to avoid logging the closed channel exceptions, as clients can disconnect abruptly and then cause a flood of closed exceptions in the Netty server.
+     * @param serverClosedChannelExceptionCaughtLogLevel
+     */
+    public void setServerClosedChannelExceptionCaughtLogLevel(LoggingLevel serverClosedChannelExceptionCaughtLogLevel) {
+        getConfigurationOrCreate().setServerClosedChannelExceptionCaughtLogLevel(serverClosedChannelExceptionCaughtLogLevel);
+    }
+
+    public boolean isAllowDefaultCodec() {
+        return getConfigurationOrCreate().isAllowDefaultCodec();
+    }
+
+    /**
+     * The netty component installs a default codec if both, encoder/deocder is null and textline is false.
+     * Setting allowDefaultCodec to false prevents the netty component from installing a default codec as the first element in the filter chain.
+     * @param allowDefaultCodec
+     */
+    public void setAllowDefaultCodec(boolean allowDefaultCodec) {
+        getConfigurationOrCreate().setAllowDefaultCodec(allowDefaultCodec);
+    }
+
+    /**
+     * To use a custom ClientPipelineFactory
+     * @param clientPipelineFactory
+     */
+    public void setClientPipelineFactory(ClientPipelineFactory clientPipelineFactory) {
+        getConfigurationOrCreate().setClientPipelineFactory(clientPipelineFactory);
+    }
+
+    public ClientPipelineFactory getClientPipelineFactory() {
+        return getConfigurationOrCreate().getClientPipelineFactory();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/bdab2fc6/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
index afcd6ad..b4cc383 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
@@ -16,7 +16,20 @@
  */
 package org.apache.camel.component.netty.springboot;
 
+import java.util.List;
+import java.util.Map;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.component.netty.ClientPipelineFactory;
 import org.apache.camel.component.netty.NettyConfiguration;
+import org.apache.camel.component.netty.NettyServerBootstrapFactory;
+import org.apache.camel.component.netty.ServerPipelineFactory;
+import org.apache.camel.component.netty.TextLineDelimiter;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.jboss.netty.channel.ChannelHandler;
+import org.jboss.netty.channel.group.ChannelGroup;
+import org.jboss.netty.channel.socket.nio.BossPool;
+import org.jboss.netty.channel.socket.nio.WorkerPool;
+import org.jboss.netty.handler.ssl.SslHandler;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -29,6 +42,7 @@ public class NettyComponentConfiguration {
 
     /**
      * To use the NettyConfiguration as configuration when creating endpoints.
+     * Properties of the shared configuration can also be set individually.
      */
     private NettyConfiguration configuration;
     /**
@@ -36,6 +50,337 @@ public class NettyComponentConfiguration {
      * value is 16.
      */
     private Integer maximumPoolSize;
+    /**
+     * Whether to use ordered thread pool to ensure events are processed orderly
+     * on the same channel. See details at the netty javadoc of
+     * org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor
+     * for more details.
+     */
+    private Boolean orderedThreadPoolExecutor = false;
+    /**
+     * Sets the cap on the number of objects that can be allocated by the pool
+     * (checked out to clients or idle awaiting checkout) at a given time. Use a
+     * negative value for no limit.
+     */
+    private Integer producerPoolMaxActive;
+    /**
+     * Sets the minimum number of instances allowed in the producer pool before
+     * the evictor thread (if active) spawns new objects.
+     */
+    private Integer producerPoolMinIdle;
+    /**
+     * Sets the cap on the number of idle instances in the pool.
+     */
+    private Integer producerPoolMaxIdle;
+    /**
+     * Sets the minimum amount of time (value in millis) an object may sit idle
+     * in the pool before it is eligible for eviction by the idle object
+     * evictor.
+     */
+    private long producerPoolMinEvictableIdle;
+    /**
+     * Whether producer pool is enabled or not. Important: Do not turn this off
+     * as the pooling is needed for handling concurrency and reliable
+     * request/reply.
+     */
+    private Boolean producerPoolEnabled = false;
+    /**
+     * This option supports connection less udp sending which is a real fire and
+     * forget. A connected udp send receive the PortUnreachableException if no
+     * one is listen on the receiving port.
+     */
+    private Boolean udpConnectionlessSending = false;
+    /**
+     * If the clientMode is true netty consumer will connect the address as a
+     * TCP client.
+     */
+    private Boolean clientMode = false;
+    /**
+     * If the useChannelBuffer is true netty producer will turn the message body
+     * into ChannelBuffer before sending it out.
+     */
+    private Boolean useChannelBuffer = false;
+    /**
+     * The maximum total size of the queued events per channel when using
+     * orderedThreadPoolExecutor. Specify 0 to disable.
+     */
+    private long maxChannelMemorySize;
+    /**
+     * The maximum total size of the queued events for this pool when using
+     * orderedThreadPoolExecutor. Specify 0 to disable.
+     */
+    private long maxTotalMemorySize;
+    /**
+     * The protocol to use which can be tcp or udp.
+     */
+    private String protocol;
+    /**
+     * The hostname. For the consumer the hostname is localhost or 0.0.0.0 For
+     * the producer the hostname is the remote host to connect to
+     */
+    private String host;
+    /**
+     * The host port number
+     */
+    private Integer port;
+    /**
+     * Setting to choose Multicast over UDP
+     */
+    private Boolean broadcast = false;
+    /**
+     * The TCP/UDP buffer sizes to be used during outbound communication. Size
+     * is bytes.
+     */
+    private long sendBufferSize;
+    /**
+     * The TCP/UDP buffer sizes to be used during inbound communication. Size is
+     * bytes.
+     */
+    private long receiveBufferSize;
+    /**
+     * Configures the buffer size predictor. See details at Jetty documentation
+     * and this mail thread.
+     */
+    private Integer receiveBufferSizePredictor;
+    /**
+     * When netty works on nio mode it uses default workerCount parameter from
+     * Netty which is cpu_core_threads2. User can use this operation to override
+     * the default workerCount from Netty
+     */
+    private Integer workerCount;
+    /**
+     * When netty works on nio mode it uses default bossCount parameter from
+     * Netty which is 1. User can use this operation to override the default
+     * bossCount from Netty
+     */
+    private Integer bossCount;
+    /**
+     * Setting to ensure socket is not closed due to inactivity
+     */
+    private Boolean keepAlive = false;
+    /**
+     * Setting to improve TCP protocol performance
+     */
+    private Boolean tcpNoDelay = false;
+    /**
+     * Setting to facilitate socket multiplexing
+     */
+    private Boolean reuseAddress = false;
+    /**
+     * Time to wait for a socket connection to be available. Value is in millis.
+     */
+    private long connectTimeout;
+    /**
+     * Allows to configure a backlog for netty consumer (server). Note the
+     * backlog is just a best effort depending on the OS. Setting this option to
+     * a value such as 200 500 or 1000 tells the TCP stack how long the accept
+     * queue can be If this option is not configured then the backlog depends on
+     * OS setting.
+     */
+    private Integer backlog;
+    /**
+     * Setting to specify whether SSL encryption is applied to this endpoint
+     */
+    private Boolean ssl = false;
+    /**
+     * When enabled and in SSL mode then the Netty consumer will enrich the
+     * Camel Message with headers having information about the client
+     * certificate such as subject name issuer name serial number and the valid
+     * date range.
+     */
+    private Boolean sslClientCertHeaders = false;
+    /**
+     * Reference to a class that could be used to return an SSL Handler
+     */
+    private SslHandler sslHandler;
+    /**
+     * To configure security using SSLContextParameters
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * Configures whether the server needs client authentication when using SSL.
+     */
+    private Boolean needClientAuth = false;
+    /**
+     * Client side certificate keystore to be used for encryption. Is loaded by
+     * default from classpath but you can prefix with classpath: file: or http:
+     * to load the resource from different systems.
+     */
+    private String keyStoreResource;
+    /**
+     * Server side certificate keystore to be used for encryption. Is loaded by
+     * default from classpath but you can prefix with classpath: file: or http:
+     * to load the resource from different systems.
+     */
+    private String trustStoreResource;
+    /**
+     * Keystore format to be used for payload encryption. Defaults to JKS if not
+     * set
+     */
+    private String keyStoreFormat;
+    /**
+     * Security provider to be used for payload encryption. Defaults to SunX509
+     * if not set.
+     */
+    private String securityProvider;
+    /**
+     * Password setting to use in order to encrypt/decrypt payloads sent using
+     * SSH
+     */
+    private String passphrase;
+    /**
+     * To use a custom ServerPipelineFactory
+     */
+    private ServerPipelineFactory serverPipelineFactory;
+    /**
+     * Allows to use a timeout for the Netty producer when calling a remote
+     * server. By default no timeout is in use. The value is in milli seconds so
+     * eg 30000 is 30 seconds. The requestTimeout is using Netty's
+     * ReadTimeoutHandler to trigger the timeout.
+     */
+    private long requestTimeout;
+    /**
+     * To use a custom NettyServerBootstrapFactory
+     */
+    private NettyServerBootstrapFactory nettyServerBootstrapFactory;
+    /**
+     * Setting to set endpoint as one-way or request-response
+     */
+    private Boolean sync = false;
+    /**
+     * Only used for TCP. If no codec is specified you can use this flag to
+     * indicate a text line based codec; if not specified or the value is false
+     * then Object Serialization is assumed over TCP.
+     */
+    private Boolean textline = false;
+    /**
+     * Allows to configure additional netty options using option. as prefix. For
+     * example option.child.keepAlive=false to set the netty option
+     * child.keepAlive=false. See the Netty documentation for possible options
+     * that can be used.
+     */
+    private Map<String, Object> options;
+    /**
+     * The max line length to use for the textline codec.
+     */
+    private Integer decoderMaxLineLength;
+    /**
+     * To use a explicit org.jboss.netty.channel.socket.nio.BossPool as the boss
+     * thread pool. For example to share a thread pool with multiple consumers.
+     * By default each consumer has their own boss pool with 1 core thread.
+     */
+    private BossPool bossPool;
+    /**
+     * The delimiter to use for the textline codec. Possible values are LINE and
+     * NULL.
+     */
+    private TextLineDelimiter delimiter;
+    /**
+     * Whether or not to auto append missing end delimiter when sending using
+     * the textline codec.
+     */
+    private Boolean autoAppendDelimiter = false;
+    /**
+     * To use a explicit org.jboss.netty.channel.socket.nio.WorkerPool as the
+     * worker thread pool. For example to share a thread pool with multiple
+     * consumers. By default each consumer has their own worker pool with 2 x
+     * cpu count core threads.
+     */
+    private WorkerPool workerPool;
+    /**
+     * To use a explicit ChannelGroup.
+     */
+    private ChannelGroup channelGroup;
+    /**
+     * The encoding (a charset name) to use for the textline codec. If not
+     * provided Camel will use the JVM default Charset.
+     */
+    private String encoding;
+    /**
+     * When using UDP then this option can be used to specify a network
+     * interface by its name such as eth0 to join a multicast group.
+     */
+    private String networkInterface;
+    /**
+     * A list of decoders to be used. You can use a String which have values
+     * separated by comma and have the values be looked up in the Registry. Just
+     * remember to prefix the value with so Camel knows it should lookup.
+     */
+    private List<ChannelHandler> decoders;
+    /**
+     * Which protocols to enable when using SSL
+     */
+    private String enabledProtocols;
+    /**
+     * A list of encoders to be used. You can use a String which have values
+     * separated by comma and have the values be looked up in the Registry. Just
+     * remember to prefix the value with so Camel knows it should lookup.
+     */
+    private List<ChannelHandler> encoders;
+    /**
+     * A custom ChannelHandler class that can be used to perform special
+     * marshalling of outbound payloads. Must override
+     * org.jboss.netty.channel.ChannelDownStreamHandler.
+     */
+    private ChannelHandler encoder;
+    /**
+     * A custom ChannelHandler class that can be used to perform special
+     * marshalling of inbound payloads. Must override
+     * org.jboss.netty.channel.ChannelUpStreamHandler.
+     */
+    private ChannelHandler decoder;
+    /**
+     * Whether or not to disconnect(close) from Netty Channel right after use.
+     * Can be used for both consumer and producer.
+     */
+    private Boolean disconnect = false;
+    /**
+     * Channels can be lazily created to avoid exceptions if the remote server
+     * is not up and running when the Camel producer is started.
+     */
+    private Boolean lazyChannelCreation = false;
+    /**
+     * Only used for TCP. You can transfer the exchange over the wire instead of
+     * just the body. The following fields are transferred: In body Out body
+     * fault body In headers Out headers fault headers exchange properties
+     * exchange exception. This requires that the objects are serializable.
+     * Camel will exclude any non-serializable objects and log it at WARN level.
+     */
+    private Boolean transferExchange = false;
+    /**
+     * If sync is enabled then this option dictates NettyConsumer if it should
+     * disconnect where there is no reply to send back.
+     */
+    private Boolean disconnectOnNoReply = false;
+    /**
+     * If sync is enabled this option dictates NettyConsumer which logging level
+     * to use when logging a there is no reply to send back.
+     */
+    private LoggingLevel noReplyLogLevel;
+    /**
+     * If the server (NettyConsumer) catches an exception then its logged using
+     * this logging level.
+     */
+    private LoggingLevel serverExceptionCaughtLogLevel;
+    /**
+     * If the server (NettyConsumer) catches an
+     * java.nio.channels.ClosedChannelException then its logged using this
+     * logging level. This is used to avoid logging the closed channel
+     * exceptions as clients can disconnect abruptly and then cause a flood of
+     * closed exceptions in the Netty server.
+     */
+    private LoggingLevel serverClosedChannelExceptionCaughtLogLevel;
+    /**
+     * The netty component installs a default codec if both encoder/deocder is
+     * null and textline is false. Setting allowDefaultCodec to false prevents
+     * the netty component from installing a default codec as the first element
+     * in the filter chain.
+     */
+    private Boolean allowDefaultCodec = false;
+    /**
+     * To use a custom ClientPipelineFactory
+     */
+    private ClientPipelineFactory clientPipelineFactory;
 
     public NettyConfiguration getConfiguration() {
         return configuration;
@@ -52,4 +397,515 @@ public class NettyComponentConfiguration {
     public void setMaximumPoolSize(Integer maximumPoolSize) {
         this.maximumPoolSize = maximumPoolSize;
     }
+
+    public Boolean getOrderedThreadPoolExecutor() {
+        return orderedThreadPoolExecutor;
+    }
+
+    public void setOrderedThreadPoolExecutor(Boolean orderedThreadPoolExecutor) {
+        this.orderedThreadPoolExecutor = orderedThreadPoolExecutor;
+    }
+
+    public Integer getProducerPoolMaxActive() {
+        return producerPoolMaxActive;
+    }
+
+    public void setProducerPoolMaxActive(Integer producerPoolMaxActive) {
+        this.producerPoolMaxActive = producerPoolMaxActive;
+    }
+
+    public Integer getProducerPoolMinIdle() {
+        return producerPoolMinIdle;
+    }
+
+    public void setProducerPoolMinIdle(Integer producerPoolMinIdle) {
+        this.producerPoolMinIdle = producerPoolMinIdle;
+    }
+
+    public Integer getProducerPoolMaxIdle() {
+        return producerPoolMaxIdle;
+    }
+
+    public void setProducerPoolMaxIdle(Integer producerPoolMaxIdle) {
+        this.producerPoolMaxIdle = producerPoolMaxIdle;
+    }
+
+    public long getProducerPoolMinEvictableIdle() {
+        return producerPoolMinEvictableIdle;
+    }
+
+    public void setProducerPoolMinEvictableIdle(
+            long producerPoolMinEvictableIdle) {
+        this.producerPoolMinEvictableIdle = producerPoolMinEvictableIdle;
+    }
+
+    public Boolean getProducerPoolEnabled() {
+        return producerPoolEnabled;
+    }
+
+    public void setProducerPoolEnabled(Boolean producerPoolEnabled) {
+        this.producerPoolEnabled = producerPoolEnabled;
+    }
+
+    public Boolean getUdpConnectionlessSending() {
+        return udpConnectionlessSending;
+    }
+
+    public void setUdpConnectionlessSending(Boolean udpConnectionlessSending) {
+        this.udpConnectionlessSending = udpConnectionlessSending;
+    }
+
+    public Boolean getClientMode() {
+        return clientMode;
+    }
+
+    public void setClientMode(Boolean clientMode) {
+        this.clientMode = clientMode;
+    }
+
+    public Boolean getUseChannelBuffer() {
+        return useChannelBuffer;
+    }
+
+    public void setUseChannelBuffer(Boolean useChannelBuffer) {
+        this.useChannelBuffer = useChannelBuffer;
+    }
+
+    public long getMaxChannelMemorySize() {
+        return maxChannelMemorySize;
+    }
+
+    public void setMaxChannelMemorySize(long maxChannelMemorySize) {
+        this.maxChannelMemorySize = maxChannelMemorySize;
+    }
+
+    public long getMaxTotalMemorySize() {
+        return maxTotalMemorySize;
+    }
+
+    public void setMaxTotalMemorySize(long maxTotalMemorySize) {
+        this.maxTotalMemorySize = maxTotalMemorySize;
+    }
+
+    public String getProtocol() {
+        return protocol;
+    }
+
+    public void setProtocol(String protocol) {
+        this.protocol = protocol;
+    }
+
+    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 Boolean getBroadcast() {
+        return broadcast;
+    }
+
+    public void setBroadcast(Boolean broadcast) {
+        this.broadcast = broadcast;
+    }
+
+    public long getSendBufferSize() {
+        return sendBufferSize;
+    }
+
+    public void setSendBufferSize(long sendBufferSize) {
+        this.sendBufferSize = sendBufferSize;
+    }
+
+    public long getReceiveBufferSize() {
+        return receiveBufferSize;
+    }
+
+    public void setReceiveBufferSize(long receiveBufferSize) {
+        this.receiveBufferSize = receiveBufferSize;
+    }
+
+    public Integer getReceiveBufferSizePredictor() {
+        return receiveBufferSizePredictor;
+    }
+
+    public void setReceiveBufferSizePredictor(Integer receiveBufferSizePredictor) {
+        this.receiveBufferSizePredictor = receiveBufferSizePredictor;
+    }
+
+    public Integer getWorkerCount() {
+        return workerCount;
+    }
+
+    public void setWorkerCount(Integer workerCount) {
+        this.workerCount = workerCount;
+    }
+
+    public Integer getBossCount() {
+        return bossCount;
+    }
+
+    public void setBossCount(Integer bossCount) {
+        this.bossCount = bossCount;
+    }
+
+    public Boolean getKeepAlive() {
+        return keepAlive;
+    }
+
+    public void setKeepAlive(Boolean keepAlive) {
+        this.keepAlive = keepAlive;
+    }
+
+    public Boolean getTcpNoDelay() {
+        return tcpNoDelay;
+    }
+
+    public void setTcpNoDelay(Boolean tcpNoDelay) {
+        this.tcpNoDelay = tcpNoDelay;
+    }
+
+    public Boolean getReuseAddress() {
+        return reuseAddress;
+    }
+
+    public void setReuseAddress(Boolean reuseAddress) {
+        this.reuseAddress = reuseAddress;
+    }
+
+    public long getConnectTimeout() {
+        return connectTimeout;
+    }
+
+    public void setConnectTimeout(long connectTimeout) {
+        this.connectTimeout = connectTimeout;
+    }
+
+    public Integer getBacklog() {
+        return backlog;
+    }
+
+    public void setBacklog(Integer backlog) {
+        this.backlog = backlog;
+    }
+
+    public Boolean getSsl() {
+        return ssl;
+    }
+
+    public void setSsl(Boolean ssl) {
+        this.ssl = ssl;
+    }
+
+    public Boolean getSslClientCertHeaders() {
+        return sslClientCertHeaders;
+    }
+
+    public void setSslClientCertHeaders(Boolean sslClientCertHeaders) {
+        this.sslClientCertHeaders = sslClientCertHeaders;
+    }
+
+    public SslHandler getSslHandler() {
+        return sslHandler;
+    }
+
+    public void setSslHandler(SslHandler sslHandler) {
+        this.sslHandler = sslHandler;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public Boolean getNeedClientAuth() {
+        return needClientAuth;
+    }
+
+    public void setNeedClientAuth(Boolean needClientAuth) {
+        this.needClientAuth = needClientAuth;
+    }
+
+    public String getKeyStoreResource() {
+        return keyStoreResource;
+    }
+
+    public void setKeyStoreResource(String keyStoreResource) {
+        this.keyStoreResource = keyStoreResource;
+    }
+
+    public String getTrustStoreResource() {
+        return trustStoreResource;
+    }
+
+    public void setTrustStoreResource(String trustStoreResource) {
+        this.trustStoreResource = trustStoreResource;
+    }
+
+    public String getKeyStoreFormat() {
+        return keyStoreFormat;
+    }
+
+    public void setKeyStoreFormat(String keyStoreFormat) {
+        this.keyStoreFormat = keyStoreFormat;
+    }
+
+    public String getSecurityProvider() {
+        return securityProvider;
+    }
+
+    public void setSecurityProvider(String securityProvider) {
+        this.securityProvider = securityProvider;
+    }
+
+    public String getPassphrase() {
+        return passphrase;
+    }
+
+    public void setPassphrase(String passphrase) {
+        this.passphrase = passphrase;
+    }
+
+    public ServerPipelineFactory getServerPipelineFactory() {
+        return serverPipelineFactory;
+    }
+
+    public void setServerPipelineFactory(
+            ServerPipelineFactory serverPipelineFactory) {
+        this.serverPipelineFactory = serverPipelineFactory;
+    }
+
+    public long getRequestTimeout() {
+        return requestTimeout;
+    }
+
+    public void setRequestTimeout(long requestTimeout) {
+        this.requestTimeout = requestTimeout;
+    }
+
+    public NettyServerBootstrapFactory getNettyServerBootstrapFactory() {
+        return nettyServerBootstrapFactory;
+    }
+
+    public void setNettyServerBootstrapFactory(
+            NettyServerBootstrapFactory nettyServerBootstrapFactory) {
+        this.nettyServerBootstrapFactory = nettyServerBootstrapFactory;
+    }
+
+    public Boolean getSync() {
+        return sync;
+    }
+
+    public void setSync(Boolean sync) {
+        this.sync = sync;
+    }
+
+    public Boolean getTextline() {
+        return textline;
+    }
+
+    public void setTextline(Boolean textline) {
+        this.textline = textline;
+    }
+
+    public Map<String, Object> getOptions() {
+        return options;
+    }
+
+    public void setOptions(Map<String, Object> options) {
+        this.options = options;
+    }
+
+    public Integer getDecoderMaxLineLength() {
+        return decoderMaxLineLength;
+    }
+
+    public void setDecoderMaxLineLength(Integer decoderMaxLineLength) {
+        this.decoderMaxLineLength = decoderMaxLineLength;
+    }
+
+    public BossPool getBossPool() {
+        return bossPool;
+    }
+
+    public void setBossPool(BossPool bossPool) {
+        this.bossPool = bossPool;
+    }
+
+    public TextLineDelimiter getDelimiter() {
+        return delimiter;
+    }
+
+    public void setDelimiter(TextLineDelimiter delimiter) {
+        this.delimiter = delimiter;
+    }
+
+    public Boolean getAutoAppendDelimiter() {
+        return autoAppendDelimiter;
+    }
+
+    public void setAutoAppendDelimiter(Boolean autoAppendDelimiter) {
+        this.autoAppendDelimiter = autoAppendDelimiter;
+    }
+
+    public WorkerPool getWorkerPool() {
+        return workerPool;
+    }
+
+    public void setWorkerPool(WorkerPool workerPool) {
+        this.workerPool = workerPool;
+    }
+
+    public ChannelGroup getChannelGroup() {
+        return channelGroup;
+    }
+
+    public void setChannelGroup(ChannelGroup channelGroup) {
+        this.channelGroup = channelGroup;
+    }
+
+    public String getEncoding() {
+        return encoding;
+    }
+
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+    }
+
+    public String getNetworkInterface() {
+        return networkInterface;
+    }
+
+    public void setNetworkInterface(String networkInterface) {
+        this.networkInterface = networkInterface;
+    }
+
+    public List<ChannelHandler> getDecoders() {
+        return decoders;
+    }
+
+    public void setDecoders(List<ChannelHandler> decoders) {
+        this.decoders = decoders;
+    }
+
+    public String getEnabledProtocols() {
+        return enabledProtocols;
+    }
+
+    public void setEnabledProtocols(String enabledProtocols) {
+        this.enabledProtocols = enabledProtocols;
+    }
+
+    public List<ChannelHandler> getEncoders() {
+        return encoders;
+    }
+
+    public void setEncoders(List<ChannelHandler> encoders) {
+        this.encoders = encoders;
+    }
+
+    public ChannelHandler getEncoder() {
+        return encoder;
+    }
+
+    public void setEncoder(ChannelHandler encoder) {
+        this.encoder = encoder;
+    }
+
+    public ChannelHandler getDecoder() {
+        return decoder;
+    }
+
+    public void setDecoder(ChannelHandler decoder) {
+        this.decoder = decoder;
+    }
+
+    public Boolean getDisconnect() {
+        return disconnect;
+    }
+
+    public void setDisconnect(Boolean disconnect) {
+        this.disconnect = disconnect;
+    }
+
+    public Boolean getLazyChannelCreation() {
+        return lazyChannelCreation;
+    }
+
+    public void setLazyChannelCreation(Boolean lazyChannelCreation) {
+        this.lazyChannelCreation = lazyChannelCreation;
+    }
+
+    public Boolean getTransferExchange() {
+        return transferExchange;
+    }
+
+    public void setTransferExchange(Boolean transferExchange) {
+        this.transferExchange = transferExchange;
+    }
+
+    public Boolean getDisconnectOnNoReply() {
+        return disconnectOnNoReply;
+    }
+
+    public void setDisconnectOnNoReply(Boolean disconnectOnNoReply) {
+        this.disconnectOnNoReply = disconnectOnNoReply;
+    }
+
+    public LoggingLevel getNoReplyLogLevel() {
+        return noReplyLogLevel;
+    }
+
+    public void setNoReplyLogLevel(LoggingLevel noReplyLogLevel) {
+        this.noReplyLogLevel = noReplyLogLevel;
+    }
+
+    public LoggingLevel getServerExceptionCaughtLogLevel() {
+        return serverExceptionCaughtLogLevel;
+    }
+
+    public void setServerExceptionCaughtLogLevel(
+            LoggingLevel serverExceptionCaughtLogLevel) {
+        this.serverExceptionCaughtLogLevel = serverExceptionCaughtLogLevel;
+    }
+
+    public LoggingLevel getServerClosedChannelExceptionCaughtLogLevel() {
+        return serverClosedChannelExceptionCaughtLogLevel;
+    }
+
+    public void setServerClosedChannelExceptionCaughtLogLevel(
+            LoggingLevel serverClosedChannelExceptionCaughtLogLevel) {
+        this.serverClosedChannelExceptionCaughtLogLevel = serverClosedChannelExceptionCaughtLogLevel;
+    }
+
+    public Boolean getAllowDefaultCodec() {
+        return allowDefaultCodec;
+    }
+
+    public void setAllowDefaultCodec(Boolean allowDefaultCodec) {
+        this.allowDefaultCodec = allowDefaultCodec;
+    }
+
+    public ClientPipelineFactory getClientPipelineFactory() {
+        return clientPipelineFactory;
+    }
+
+    public void setClientPipelineFactory(
+            ClientPipelineFactory clientPipelineFactory) {
+        this.clientPipelineFactory = clientPipelineFactory;
+    }
 }
\ No newline at end of file