Package org.apache.camel.component.netty
Class NettyServerBootstrapConfiguration
java.lang.Object
org.apache.camel.component.netty.NettyServerBootstrapConfiguration
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
NettyConfiguration
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intprotected io.netty.channel.EventLoopGroupprotected booleanprotected io.netty.channel.group.ChannelGroupprotected intstatic final Stringprotected Stringprotected Stringprotected booleanprotected Stringprotected Stringprotected booleanprotected booleanprotected NettyServerBootstrapFactoryprotected Stringprotected Stringprotected intprotected Stringprotected intprotected intprotected booleanprotected Stringprotected intprotected ServerInitializerFactoryprotected booleanprotected booleanprotected org.apache.camel.support.jsse.SSLContextParametersprotected io.netty.handler.ssl.SslHandlerprotected booleanprotected Stringprotected intprotected io.netty.channel.EventLoopGroup -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAdditionalOptions(Map<String, Object> extractedOptions) booleanChecks if the otherNettyServerBootstrapConfigurationis compatible with this, as a Netty listener bound on port X shares the same commonNettyServerBootstrapConfiguration, which must be identical.intintio.netty.channel.EventLoopGroupio.netty.channel.group.ChannelGroupintgetHost()getOptionValue(String option, String value) intgetPort()intintintUsed if reconnect and clientMode is enabled.intintorg.apache.camel.support.jsse.SSLContextParametersio.netty.handler.ssl.SslHandlerintio.netty.channel.EventLoopGroupbooleanbooleanbooleanbooleanbooleanUsed only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabledbooleanbooleanisSsl()booleanbooleanisTcp()booleanvoidsetBacklog(int backlog) Allows to configure a backlog for netty consumer (server).voidsetBossCount(int bossCount) When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1.voidsetBossGroup(io.netty.channel.EventLoopGroup bossGroup) Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpointvoidsetBroadcast(boolean broadcast) Setting to choose Multicast over UDPvoidsetChannelGroup(io.netty.channel.group.ChannelGroup channelGroup) To use an explicit ChannelGroup.voidsetConnectTimeout(int connectTimeout) Time to wait for a socket connection to be available.voidsetEnabledProtocols(String enabledProtocols) Which protocols to enable when using SSLvoidThe hostname.voidsetKeepAlive(boolean keepAlive) Setting to ensure socket is not closed due to inactivityvoidsetKeyStoreFormat(String keyStoreFormat) Keystore format to be used for payload encryption.voidsetKeyStoreResource(String keyStoreResource) Client side certificate keystore to be used for encryption.voidsetNativeTransport(boolean nativeTransport) Whether to use native transport instead of NIO.voidsetNeedClientAuth(boolean needClientAuth) Configures whether the server needs client authentication when using SSL.voidsetNettyServerBootstrapFactory(NettyServerBootstrapFactory nettyServerBootstrapFactory) To use a custom NettyServerBootstrapFactoryvoidsetNetworkInterface(String networkInterface) 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.voidsetOptions(Map<String, Object> options) Allows to configure additional netty options using "option." as prefix.voidsetPassphrase(String passphrase) Password to use for the keyStore and trustStore.voidsetPort(int port) The host port numbervoidsetProtocol(String protocol) The protocol to use which can be tcp or udp.voidsetReceiveBufferSize(int receiveBufferSize) The TCP/UDP buffer sizes to be used during inbound communication.voidsetReceiveBufferSizePredictor(int receiveBufferSizePredictor) Configures the buffer size predictor.voidsetReconnect(boolean reconnect) voidsetReconnectInterval(int reconnectInterval) voidsetReuseAddress(boolean reuseAddress) Setting to facilitate socket multiplexingvoidsetSecurityProvider(String securityProvider) Security provider to be used for payload encryption.voidsetSendBufferSize(int sendBufferSize) The TCP/UDP buffer sizes to be used during outbound communication.voidsetServerInitializerFactory(ServerInitializerFactory serverInitializerFactory) To use a custom ServerInitializerFactoryvoidsetShutdownTimeout(int shutdownTimeout) Shutdown await timeout in millisecondsvoidsetSsl(boolean ssl) Setting to specify whether SSL encryption is applied to this endpointvoidsetSslClientCertHeaders(boolean sslClientCertHeaders) 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.voidsetSslContextParameters(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters) To configure security using SSLContextParametersvoidsetSslHandler(io.netty.handler.ssl.SslHandler sslHandler) Reference to a class that could be used to return an SSL HandlervoidsetTcpNoDelay(boolean tcpNoDelay) Setting to improve TCP protocol performancevoidsetTrustStoreResource(String trustStoreResource) Server side certificate keystore to be used for encryption.voidsetUnixDomainSocketPath(String unixDomainSocketPath) Path to unix domain socket to use instead of inet socket.voidsetWorkerCount(int workerCount) When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2).voidsetWorkerGroup(io.netty.channel.EventLoopGroup workerGroup) To use a explicit EventLoopGroup as the boss thread pool.
-
Field Details
-
DEFAULT_ENABLED_PROTOCOLS
- See Also:
-
protocol
@UriPath(enums="tcp,udp", description="The protocol to use which can be tcp or udp") @Metadata(required=true) protected String protocol -
host
@UriPath @Metadata(required=true, description="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.") protected String host -
port
@UriPath @Metadata(required=true, description="The host port number") protected int port -
broadcast
@UriParam(label="consumer,advanced", description="Setting to choose Multicast over UDP") protected boolean broadcast -
sendBufferSize
@UriParam(label="advanced", defaultValue="65536", description="The TCP/UDP buffer sizes to be used during outbound communication. Size is bytes.") protected int sendBufferSize -
receiveBufferSize
@UriParam(label="advanced", defaultValue="65536", description="The TCP/UDP buffer sizes to be used during inbound communication. Size is bytes.") protected int receiveBufferSize -
receiveBufferSizePredictor
@UriParam(label="advanced", description="Configures the buffer size predictor. See details at Jetty documentation and this mail thread.") protected int receiveBufferSizePredictor -
bossCount
@UriParam(label="consumer,advanced", defaultValue="1", description="When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User can use this option to override the default bossCount from Netty") protected int bossCount -
workerCount
@UriParam(label="advanced", description="When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this option to override the default workerCount from Netty.") protected int workerCount -
keepAlive
@UriParam(defaultValue="true", description="Setting to ensure socket is not closed due to inactivity") protected boolean keepAlive -
tcpNoDelay
@UriParam(defaultValue="true", description="Setting to improve TCP protocol performance") protected boolean tcpNoDelay -
reuseAddress
@UriParam(defaultValue="true", description="Setting to facilitate socket multiplexing") protected boolean reuseAddress -
connectTimeout
@UriParam(label="producer", defaultValue="10000", description="Time to wait for a socket connection to be available. Value is in milliseconds.") protected int connectTimeout -
backlog
@UriParam(label="consumer,advanced", description="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.") protected int backlog -
serverInitializerFactory
@UriParam(label="consumer,advanced", description="To use a custom ServerInitializerFactory") protected ServerInitializerFactory serverInitializerFactory -
nettyServerBootstrapFactory
@UriParam(label="consumer,advanced", description="To use a custom NettyServerBootstrapFactory") protected NettyServerBootstrapFactory nettyServerBootstrapFactory -
options
-
ssl
@UriParam(label="security", description="Setting to specify whether SSL encryption is applied to this endpoint") protected boolean ssl -
sslClientCertHeaders
@UriParam(label="security", description="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.") protected boolean sslClientCertHeaders -
sslHandler
@UriParam(label="security", description="Reference to a class that could be used to return an SSL Handler") protected io.netty.handler.ssl.SslHandler sslHandler -
sslContextParameters
@UriParam(label="security", description="To configure security using SSLContextParameters") protected org.apache.camel.support.jsse.SSLContextParameters sslContextParameters -
needClientAuth
@UriParam(label="consumer,security", description="Configures whether the server needs client authentication when using SSL.") protected boolean needClientAuth -
keyStoreResource
@UriParam(label="security", description="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.") @Metadata(supportFileReference=true) protected String keyStoreResource -
trustStoreResource
@UriParam(label="security", description="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.") @Metadata(supportFileReference=true) protected String trustStoreResource -
keyStoreFormat
@UriParam(label="security", description="Keystore format to be used for payload encryption. Defaults to JKS if not set") protected String keyStoreFormat -
securityProvider
@UriParam(label="security", description="Security provider to be used for payload encryption. Defaults to SunX509 if not set.") protected String securityProvider -
enabledProtocols
@UriParam(defaultValue="TLSv1.2,TLSv1.3", label="security", description="Which protocols to enable when using SSL") protected String enabledProtocols -
passphrase
@UriParam(label="security", secret=true, description="Password to use for the keyStore and trustStore. The same password must be configured for both resources.") protected String passphrase -
nativeTransport
@UriParam(label="advanced", description="Whether to use native transport instead of NIO. Native transport takes advantage of the host operating system and is only supported on some platforms. You need to add the netty JAR for the host operating system you are using. See more details at: http://netty.io/wiki/native-transports.html") protected boolean nativeTransport -
bossGroup
@UriParam(label="consumer,advanced", description="Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint") protected io.netty.channel.EventLoopGroup bossGroup -
workerGroup
@UriParam(label="advanced", description="To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multiple consumers or producers. By default each consumer or producer has their own worker pool with 2 x cpu count core threads.") protected io.netty.channel.EventLoopGroup workerGroup -
channelGroup
@UriParam(label="advanced", description="To use an explicit ChannelGroup.") protected io.netty.channel.group.ChannelGroup channelGroup -
networkInterface
@UriParam(label="common,advanced", description="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.") protected String networkInterface
-
-
Constructor Details
-
NettyServerBootstrapConfiguration
public NettyServerBootstrapConfiguration()
-
-
Method Details
-
getAddress
-
isTcp
public boolean isTcp() -
addAdditionalOptions
-
getOptionValue
-
getProtocol
-
setProtocol
The protocol to use which can be tcp or udp. -
getHost
-
setHost
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 -
getPort
public int getPort() -
setPort
public void setPort(int port) The host port number -
isBroadcast
public boolean isBroadcast() -
setBroadcast
public void setBroadcast(boolean broadcast) Setting to choose Multicast over UDP -
getSendBufferSize
public int getSendBufferSize() -
setSendBufferSize
public void setSendBufferSize(int sendBufferSize) The TCP/UDP buffer sizes to be used during outbound communication. Size is bytes. -
getReceiveBufferSize
public int getReceiveBufferSize() -
setReceiveBufferSize
public void setReceiveBufferSize(int receiveBufferSize) The TCP/UDP buffer sizes to be used during inbound communication. Size is bytes. -
getReceiveBufferSizePredictor
public int getReceiveBufferSizePredictor() -
setReceiveBufferSizePredictor
public void setReceiveBufferSizePredictor(int receiveBufferSizePredictor) Configures the buffer size predictor. See details at Jetty documentation and this mail thread. -
getWorkerCount
public int getWorkerCount() -
setWorkerCount
public void setWorkerCount(int workerCount) When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this option to override the default workerCount from Netty. -
getBossCount
public int getBossCount() -
setBossCount
public void setBossCount(int bossCount) When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User can use this option to override the default bossCount from Netty -
isKeepAlive
public boolean isKeepAlive() -
setKeepAlive
public void setKeepAlive(boolean keepAlive) Setting to ensure socket is not closed due to inactivity -
isTcpNoDelay
public boolean isTcpNoDelay() -
setTcpNoDelay
public void setTcpNoDelay(boolean tcpNoDelay) Setting to improve TCP protocol performance -
isReuseAddress
public boolean isReuseAddress() -
setReuseAddress
public void setReuseAddress(boolean reuseAddress) Setting to facilitate socket multiplexing -
getConnectTimeout
public int getConnectTimeout() -
setConnectTimeout
public void setConnectTimeout(int connectTimeout) Time to wait for a socket connection to be available. Value is in milliseconds. -
getBacklog
public int getBacklog() -
setBacklog
public void setBacklog(int backlog) 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. -
isSsl
public boolean isSsl() -
setSsl
public void setSsl(boolean ssl) Setting to specify whether SSL encryption is applied to this endpoint -
isSslClientCertHeaders
public boolean isSslClientCertHeaders() -
setSslClientCertHeaders
public void setSslClientCertHeaders(boolean sslClientCertHeaders) 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. -
getSslHandler
public io.netty.handler.ssl.SslHandler getSslHandler() -
setSslHandler
public void setSslHandler(io.netty.handler.ssl.SslHandler sslHandler) Reference to a class that could be used to return an SSL Handler -
getSslContextParameters
public org.apache.camel.support.jsse.SSLContextParameters getSslContextParameters() -
setSslContextParameters
public void setSslContextParameters(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters) To configure security using SSLContextParameters -
isNeedClientAuth
public boolean isNeedClientAuth() -
setNeedClientAuth
public void setNeedClientAuth(boolean needClientAuth) Configures whether the server needs client authentication when using SSL. -
getKeyStoreResource
-
setKeyStoreResource
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. -
getTrustStoreResource
-
setTrustStoreResource
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. -
getKeyStoreFormat
-
setKeyStoreFormat
Keystore format to be used for payload encryption. Defaults to "JKS" if not set -
getSecurityProvider
-
setSecurityProvider
Security provider to be used for payload encryption. Defaults to "SunX509" if not set. -
getPassphrase
-
setPassphrase
Password to use for the keyStore and trustStore. The same password must be configured for both resources. -
getServerInitializerFactory
-
setServerInitializerFactory
To use a custom ServerInitializerFactory -
getNettyServerBootstrapFactory
-
setNettyServerBootstrapFactory
To use a custom NettyServerBootstrapFactory -
getOptions
-
setOptions
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. -
isNativeTransport
public boolean isNativeTransport() -
setNativeTransport
public void setNativeTransport(boolean nativeTransport) Whether to use native transport instead of NIO. Native transport takes advantage of the host operating system and is only supported on some platforms. You need to add the netty JAR for the host operating system you are using. See more details at: http://netty.io/wiki/native-transports.html -
getBossGroup
public io.netty.channel.EventLoopGroup getBossGroup() -
setBossGroup
public void setBossGroup(io.netty.channel.EventLoopGroup bossGroup) Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint -
getWorkerGroup
public io.netty.channel.EventLoopGroup getWorkerGroup() -
setWorkerGroup
public void setWorkerGroup(io.netty.channel.EventLoopGroup workerGroup) To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multiple consumers or producers. By default each consumer or producer has their own worker pool with 2 x cpu count core threads. -
getChannelGroup
public io.netty.channel.group.ChannelGroup getChannelGroup() -
setChannelGroup
public void setChannelGroup(io.netty.channel.group.ChannelGroup channelGroup) To use an explicit ChannelGroup. -
getNetworkInterface
-
setNetworkInterface
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. -
getEnabledProtocols
-
setEnabledProtocols
Which protocols to enable when using SSL -
isReconnect
public boolean isReconnect()Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled -
setReconnect
public void setReconnect(boolean reconnect) -
getReconnectInterval
public int getReconnectInterval()Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection -
setReconnectInterval
public void setReconnectInterval(int reconnectInterval) -
getUnixDomainSocketPath
-
setUnixDomainSocketPath
Path to unix domain socket to use instead of inet socket. Host and port parameters will not be used, however required. It is ok to set dummy values for them. Must be used with nativeTransport=true and clientMode=false. -
getShutdownTimeout
public int getShutdownTimeout() -
setShutdownTimeout
public void setShutdownTimeout(int shutdownTimeout) Shutdown await timeout in milliseconds -
compatible
Checks if the otherNettyServerBootstrapConfigurationis compatible with this, as a Netty listener bound on port X shares the same commonNettyServerBootstrapConfiguration, which must be identical. -
toStringBootstrapConfiguration
-