GSaha567/seq_level_training_data
052
1text,length,is_long_context,metric_val,label_metric2"[[netty4-component]]3== Netty4 Component4 5*Available as of Camel version 2.14*6 7The *netty4* component in Camel is a socket communication component,8based on the http://netty.io/[Netty] project version 4. +9 Netty is a NIO client server framework which enables quick and easy10development of networkServerInitializerFactory applications such as11protocol servers and clients. +12 Netty greatly simplifies and streamlines network programming such as13TCP and UDP socket server.14 15This camel component supports both producer and consumer endpoints.16 17The Netty component has several options and allows fine-grained control18of a number of TCP/UDP communication parameters (buffer sizes,19keepAlives, tcpNoDelay, etc) and facilitates both In-Only and In-Out20communication on a Camel route.21 22Maven users will need to add the following dependency to their `pom.xml`23for this component:24 25[source,xml]26----27<dependency>28 <groupId>org.apache.camel</groupId>29 <artifactId>camel-netty4</artifactId>30 <version>x.x.x</version>31 <!-- use the same version as your Camel core version -->32</dependency>33----34 35=== URI format36 37The URI scheme for a netty component is as follows38 39[source,text]40----41netty4:tcp://0.0.0.0:99999[?options]42netty4:udp://remotehost:99999/[?options]43----44 45This component supports producer and consumer endpoints for both TCP and46UDP.47 48You can append query options to the URI in the following format,49`?option=value&option=value&...`50 51=== Options52 53// component options: START54The Netty4 component supports 6 options, which are listed below.55 56 57 58[width=""100%"",cols=""2,5,^1,2"",options=""header""]59|===60| Name | Description | Default | Type61| *maximumPoolSize* (advanced) | The thread pool size for the EventExecutorGroup if its in use. The default value is 16. | 16 | int62| *configuration* (advanced) | To use the NettyConfiguration as configuration when creating endpoints. | | NettyConfiguration63| *executorService* (advanced) | To use the given EventExecutorGroup. | | EventExecutorGroup64| *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean65| *sslContextParameters* (security) | To configure security using SSLContextParameters | | SSLContextParameters66| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean67|===68// component options: END69 70 71// endpoint options: START72The Netty4 endpoint is configured using URI syntax:73 74----75netty4:protocol:host:port76----77 78with the following path and query parameters:79 80==== Path Parameters (3 parameters):81 82 83[width=""100%"",cols=""2,5,^1,2"",options=""header""]84|===85| Name | Description | Default | Type86| *protocol* | *Required* The protocol to use which can be tcp or udp. | | String87| *host* | *Required* 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 | | String88| *port* | *Required* The host port number | | int89|===90 91 92==== Query Parameters (72 parameters):93 94 95[width=""100%"",cols=""2,5,^1,2"",options=""header""]96|===97| Name | Description | Default | Type98| *disconnect* (common) | Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer. | false | boolean99| *keepAlive* (common) | Setting to ensure socket is not closed due to inactivity | true | boolean100| *reuseAddress* (common) | Setting to facilitate socket multiplexing | true | boolean101| *reuseChannel* (common) | This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecycle of processing the Exchange. This is useful if you need to call a server multiple times in a Camel route and want to use the same network connection. When using this, the channel is not returned to the connection pool until the Exchange is done; or disconnected if the disconnect option is set to true. The reused Channel is stored on the Exchange as an exchange property with the key NettyConstants#NETTY_CHANNEL which allows you to obtain the channel during routing and use it as well. | false | boolean102| *sync* (common) | Setting to set endpoint as one-way or request-response | true | boolean103| *tcpNoDelay* (common) | Setting to improve TCP protocol performance | true | boolean104| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean105| *broadcast* (consumer) | Setting to choose Multicast over UDP | false | boolean106| *clientMode* (consumer) | If the clientMode is true, netty consumer will connect the address as a TCP client. | false | boolean107| *reconnect* (consumer) | Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled | true | boolean108| *reconnectInterval* (consumer) | Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection | 10000 | int109| *backlog* (consumer) | 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. | | int110| *bossCount* (consumer) | 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 | 1 | int111| *bossGroup* (consumer) | Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint | | EventLoopGroup112| *disconnectOnNoReply* (consumer) | If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back. | true | boolean113| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler114| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. | | ExchangePattern115| *nettyServerBootstrapFactory* (consumer) | To use a custom NettyServerBootstrapFactory | | NettyServerBootstrap Factory116| *networkInterface* (consumer) | 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. | | String117| *noReplyLogLevel* (consumer) | If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back. | WARN | LoggingLevel118| *serverClosedChannel ExceptionCaughtLogLevel* (consumer) | 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. | DEBUG | LoggingLevel119| *serverExceptionCaughtLog Level* (consumer) | If the server (NettyConsumer) catches an exception then its logged using this logging level. | WARN | LoggingLevel120| *serverInitializerFactory* (consumer) | To use a custom ServerInitializerFactory | | ServerInitializer Factory121| *usingExecutorService* (consumer) | Whether to use ordered thread pool, to ensure events are processed orderly on the same channel. | true | boolean122| *connectTimeout* (producer) | Time to wait for a socket connection to be available. Value is in milliseconds. | 10000 | int123| *requestTimeout* (producer) | 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. | | long124| *clientInitializerFactory* (producer) | To use a custom ClientInitializerFactory | | ClientInitializer Factory125| *correlationManager* (producer) | To use a custom correlation manager to manage how request and reply messages are mapped when using request/reply with the netty producer. This should only be used if you have a way to map requests together with replies such as if there is correlation ids in both the request and reply messages. This can be used if you want to multiplex concurrent messages on the same channel (aka connection) in netty. When doing this you must have a way to correlate the request and reply messages so you can store the right reply on the inflight Camel Exchange before its continued routed. We recommend extending the TimeoutCorrelationManagerSupport when you build custom correlation managers. This provides support for timeout and other complexities you otherwise would need to implement as well. See also the producerPoolEnabled option for more details. | | NettyCamelState CorrelationManager126| *lazyChannelCreation* (producer) | Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started. | true | boolean127| *producerPoolEnabled* (producer) | Whether producer pool is enabled or not. Important: If you turn this off then a single shared connection is used for the producer, also if you are doing request/reply. That means there is a potential issue with interleaved responses if replies comes back out-of-order. Therefore you need to have a correlation id in both the request and reply messages so you can properly correlate the replies to the Camel callback that is responsible for continue processing the message in Camel. To do this you need to implement NettyCamelStateCorrelationManager as correlation manager and configure it via the correlationManager option. See also the correlationManager option for more details. | true | boolean128| *producerPoolMaxActive* (producer) | 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. | -1 | int129| *producerPoolMaxIdle* (producer) | Sets the cap on the number of idle instances in the pool. | 100 | int130| *producerPoolMinEvictable Idle* (producer) | 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. | 300000 | long131| *producerPoolMinIdle* (producer) | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects. | | int132| *udpConnectionlessSending* (producer) | 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. | false | boolean133| *useByteBuf* (producer) | If the useByteBuf is true, netty producer will turn the message body into ByteBuf before sending it out. | false | boolean134| *allowSerializedHeaders* (advanced) | Only used for TCP when transferExchange is true. When set to true, serializable objects in headers and properties will be added to the exchange. Otherwise Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean135| *bootstrapConfiguration* (advanced) | To use a custom configured NettyServerBootstrapConfiguration for configuring this endpoint. | | NettyServerBootstrap Configuration136| *channelGroup* (advanced) | To use a explicit ChannelGroup. | | ChannelGroup137| *nativeTransport* (advanced) | 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 | false | boolean138| *options* (advanced) | 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. | | Map139| *receiveBufferSize* (advanced) | The TCP/UDP buffer sizes to be used during inbound communication. Size is bytes. | 65536 | int140| *receiveBufferSizePredictor* (advanced) | Configures the buffer size predictor. See details at Jetty documentation and this mail thread. | | int141| *sendBufferSize* (advanced) | The TCP/UDP buffer sizes to be used during outbound communication. Size is bytes. | 65536 | int142| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean143| *transferExchange* (advanced) | 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. | false | boolean144| *udpByteArrayCodec* (advanced) | For UDP only. If enabled the using byte array codec instead of Java serialization protocol. | false | boolean145| *workerCount* (advanced) | When netty works on nio mode, it uses default workerCount parameter from Netty, which is cpu_core_threads x 2. User can use this operation to override the default workerCount from Netty. | | int146| *workerGroup* (advanced) | 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. | | EventLoopGroup147| *allowDefaultCodec* (codec) | The netty component installs a default codec if both, encoder/decoder 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. | true | boolean148| *autoAppendDelimiter* (codec) | Whether or not to auto append missing end delimiter when sending using the textline codec. | true | boolean149| *decoder* (codec) | *Deprecated* A custom ChannelHandler class that can be used to perform special marshalling of inbound payloads. | | ChannelHandler150| *decoderMaxLineLength* (codec) | The max line length to use for the textline codec. | 1024 | int151| *decoders* (codec) | 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. | | String152| *delimiter* (codec) | The delimiter to use for the textline codec. Possible values are LINE and NULL. | LINE | TextLineDelimiter153| *encoder* (codec) | *Deprecated* A custom ChannelHandler class that can be used to perform special marshalling of outbound payloads. | | ChannelHandler154| *encoders* (codec) | 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. | | String155| *encoding* (codec) | The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset. | | String156| *textline* (codec) | 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. | false | boolean157| *enabledProtocols* (security) | Which protocols to enable when using SSL | TLSv1,TLSv1.1,TLSv1.2 | String158| *keyStoreFile* (security) | Client side certificate keystore to be used for encryption | | File159| *keyStoreFormat* (security) | Keystore format to be used for payload encryption. Defaults to JKS if not set | | String160| *keyStoreResource* (security) | 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. | | String161| *needClientAuth* (security) | Configures whether the server needs client authentication when using SSL. | false | boolean162| *passphrase* (security) | Password setting to use in order to encrypt/decrypt payloads sent using SSH | | String163| *securityProvider* (security) | Security provider to be used for payload encryption. Defaults to SunX509 if not set. | | String164| *ssl* (security) | Setting to specify whether SSL encryption is applied to this endpoint | false | boolean165| *sslClientCertHeaders* (security) | 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. | false | boolean166| *sslContextParameters* (security) | To configure security using SSLContextParameters | | SSLContextParameters167| *sslHandler* (security) | Reference to a class that could be used to return an SSL Handler | | SslHandler168| *trustStoreFile* (security) | Server side certificate keystore to be used for encryption | | File169| *trustStoreResource* (security) | 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. | | String170|===171// endpoint options: END172// spring-boot-auto-configure options: START173=== Spring Boot Auto-Configuration174 175 176The component supports 78 options, which are listed below.177 178 179 180[width=""100%"",cols=""2,5,^1,2"",options=""header""]181|===182| Name | Description | Default | Type183| *camel.component.netty4.configuration.allow-default-codec* | The netty component installs a default codec if both, encoder/decoder 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. | true | Boolean184| *camel.component.netty4.configuration.allow-serialized-headers* | Only used for TCP when transferExchange is true. When set to true, serializable objects in headers and properties will be added to the exchange. Otherwise Camel will exclude any non-serializable objects and log it at WARN level. | false | Boolean185| *camel.component.netty4.configuration.auto-append-delimiter* | Whether or not to auto append missing end delimiter when sending using the textline codec. | true | Boolean186| *camel.component.netty4.configuration.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. | | Integer187| *camel.component.netty4.configuration.boss-count* | 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 | 1 | Integer188| *camel.component.netty4.configuration.boss-group* | Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint | | EventLoopGroup189| *camel.component.netty4.configuration.broadcast* | Setting to choose Multicast over UDP | false | Boolean190| *camel.component.netty4.configuration.channel-group* | To use a explicit ChannelGroup. | | ChannelGroup191| *camel.component.netty4.configuration.client-initializer-factory* | To use a custom ClientInitializerFactory | | ClientInitializer Factory192| *camel.component.netty4.configuration.client-mode* | If the clientMode is true, netty consumer will connect the address as a TCP client. | false | Boolean193| *camel.component.netty4.configuration.connect-timeout* | Time to wait for a socket connection to be available. Value is in milliseconds. | 10000 | Integer194| *camel.component.netty4.configuration.correlation-manager* | To use a custom correlation manager to manage how request and reply messages are mapped when using request/reply with the netty producer. This should only be used if you have a way to map requests together with replies such as if there is correlation ids in both the request and reply messages. This can be used if you want to multiplex concurrent messages on the same channel (aka connection) in netty. When doing this you must have a way to correlate the request and reply messages so you can store the right reply on the inflight Camel Exchange before its continued routed. We recommend extending the TimeoutCorrelationManagerSupport when you build custom correlation managers. This provides support for timeout and other complexities you otherwise would need to implement as well. See also the producerPoolEnabled option for more details. | | NettyCamelState CorrelationManager195| *camel.component.netty4.configuration.decoder-max-line-length* | The max line length to use for the textline codec. | 1024 | Integer196| *camel.component.netty4.configuration.decoders* | 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. | | List197| *camel.component.netty4.configuration.delimiter* | The delimiter to use for the textline codec. Possible values are LINE and NULL. | | TextLineDelimiter198| *camel.component.netty4.configuration.disconnect* | Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer. | false | Boolean199| *camel.component.netty4.configuration.disconnect-on-no-reply* | If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back. | true | Boolean200| *camel.component.netty4.configuration.enabled-protocols* | Which protocols to enable when using SSL | TLSv1,TLSv1.1,TLSv1.2 | String201| *camel.component.netty4.configuration.encoders* | 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. | | List202| *camel.component.netty4.configuration.encoding* | The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset. | | String203| *camel.component.netty4.configuration.host* | 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 | | String204| *camel.component.netty4.configuration.keep-alive* | Setting to ensure socket is not closed due to inactivity | true | Boolean205| *camel.component.netty4.configuration.key-store-format* | Keystore format to be used for payload encryption. Defaults to JKS if not set | | String206| *camel.component.netty4.configuration.key-store-resource* | 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. | | String207| *camel.component.netty4.configuration.lazy-channel-creation* | Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started. | true | Boolean208| *camel.component.netty4.configuration.native-transport* | 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 | false | Boolean209| *camel.component.netty4.configuration.need-client-auth* | Configures whether the server needs client authentication when using SSL. | false | Boolean210| *camel.component.netty4.configuration.netty-server-bootstrap-factory* | To use a custom NettyServerBootstrapFactory | | NettyServerBootstrap Factory211| *camel.component.netty4.configuration.network-interface* | 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. | | String212| *camel.component.netty4.configuration.no-reply-log-level* | If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back. | | LoggingLevel213| *camel.component.netty4.configuration.options* | 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. | | Map214| *camel.component.netty4.configuration.passphrase* | Password setting to use in order to encrypt/decrypt payloads sent using SSH | | String215| *camel.component.netty4.configuration.port* | The host port number | | Integer216| *camel.component.netty4.configuration.producer-pool-enabled* | Whether producer pool is enabled or not. Important: If you turn this off then a single shared connection is used for the producer, also if you are doing request/reply. That means there is a potential issue with interleaved responses if replies comes back out-of-order. Therefore you need to have a correlation id in both the request and reply messages so you can properly correlate the replies to the Camel callback that is responsible for continue processing the message in Camel. To do this you need to implement NettyCamelStateCorrelationManager as correlation manager and configure it via the correlationManager option. See also the correlationManager option for more details. | true | Boolean217| *camel.component.netty4.configuration.producer-pool-max-active* | 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. | -1 | Integer218| *camel.component.netty4.configuration.producer-pool-max-idle* | Sets the cap on the number of idle instances in the pool. | 100 | Integer219| *camel.component.netty4.configuration.producer-pool-min-evictable-idle* | 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. | 300000 | Long220| *camel.component.netty4.configuration.producer-pool-min-idle* | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects. | | Integer221| *camel.component.netty4.configuration.protocol* | The protocol to use which can be tcp or udp. | | String222| *camel.component.netty4.configuration.receive-buffer-size* | The TCP/UDP buffer sizes to be used during inbound communication. Size is bytes. | 65536 | Integer223| *camel.component.netty4.configuration.receive-buffer-size-predictor* | Configures the buffer size predictor. See details at Jetty documentation and this mail thread. | | Integer224| *camel.component.netty4.configuration.reconnect* | Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled | true | Boolean225| *camel.component.netty4.configuration.reconnect-interval* | Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection | 10000 | Integer226| *camel.component.netty4.configuration.request-timeout* | 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. | | Long227| *camel.component.netty4.configuration.reuse-address* | Setting to facilitate socket multiplexing | true | Boolean228| *camel.component.netty4.configuration.reuse-channel* | This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecycle of processing the Exchange. This is useful if you need to call a server multiple times in a Camel route and want to use the same network connection. When using this, the channel is not returned to the connection pool until the Exchange is done; or disconnected if the disconnect option is set to true. The reused Channel is stored on the Exchange as an exchange property with the key NettyConstants#NETTY_CHANNEL which allows you to obtain the channel during routing and use it as well. | false | Boolean229| *camel.component.netty4.configuration.security-provider* | Security provider to be used for payload encryption. Defaults to SunX509 if not set. | | String230| *camel.component.netty4.configuration.send-buffer-size* | The TCP/UDP buffer sizes to be used during outbound communication. Size is bytes. | 65536 | Integer231| *camel.component.netty4.configuration.server-closed-channel-exception-caught-log-level* | 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. | | LoggingLevel232| *camel.component.netty4.configuration.server-exception-caught-log-level* | If the server (NettyConsumer) catches an exception then its logged using this logging level. | | LoggingLevel233| *camel.component.netty4.configuration.server-initializer-factory* | To use a custom ServerInitializerFactory | | ServerInitializer Factory234| *camel.component.netty4.configuration.ssl* | Setting to specify whether SSL encryption is applied to this endpoint | false | Boolean235| *camel.component.netty4.configuration.ssl-client-cert-headers* | 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. | false | Boolean236| *camel.component.netty4.configuration.ssl-context-parameters* | To configure security using SSLContextParameters | | SSLContextParameters237| *camel.component.netty4.configuration.ssl-handler* | Reference to a class that could be used to return an SSL Handler | | SslHandler238| *camel.component.netty4.configuration.sync* | Setting to set endpoint as one-way or request-response | true | Boolean239| *camel.component.netty4.configuration.tcp-no-delay* | Setting to improve TCP protocol performance | true | Boolean240| *camel.component.netty4.configuration.textline* | 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. | false | Boolean241| *camel.component.netty4.configuration.transfer-exchange* | 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. | false | Boolean242| *camel.component.netty4.configuration.trust-store-resource* | 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. | | String243| *camel.component.netty4.configuration.udp-byte-array-codec* | For UDP only. If enabled the using byte array codec instead of Java serialization protocol. | false | Boolean244| *camel.component.netty4.configuration.udp-connectionless-sending* | 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. | false | Boolean245| *camel.component.netty4.configuration.use-byte-buf* | If the useByteBuf is true, netty producer will turn the message body into ByteBuf before sending it out. | false | Boolean246| *camel.component.netty4.configuration.using-executor-service* | Whether to use ordered thread pool, to ensure events are processed orderly on the same channel. | true | Boolean247| *camel.component.netty4.configuration.worker-count* | When netty works on nio mode, it uses default workerCount parameter from Netty, which is cpu_core_threads x 2. User can use this operation to override the default workerCount from Netty. | | Integer248| *camel.component.netty4.configuration.worker-group* | 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. | | EventLoopGroup249| *camel.component.netty4.enabled* | Enable netty4 component | true | Boolean250| *camel.component.netty4.executor-service* | To use the given EventExecutorGroup. The option is a io.netty.util.concurrent.EventExecutorGroup type. | | String251| *camel.component.netty4.maximum-pool-size* | The thread pool size for the EventExecutorGroup if its in use. The default value is 16. | 16 | Integer252| *camel.component.netty4.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean253| *camel.component.netty4.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. | | String254| *camel.component.netty4.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean255| *camel.component.netty4.configuration.client-pipeline-factory* | @deprecated use #setClientInitializerFactory | | ClientInitializer Factory256| *camel.component.netty4.configuration.decoder* | A custom ChannelHandler class that can be used to perform special marshalling of inbound payloads. | | ChannelHandler257| *camel.component.netty4.configuration.encoder* | A custom ChannelHandler class that can be used to perform special marshalling of outbound payloads. | | ChannelHandler258| *camel.component.netty4.configuration.key-store-file* | Client side certificate keystore to be used for encryption | | File259| *camel.component.netty4.configuration.server-pipeline-factory* | @deprecated use #setServerInitializerFactory | | ServerInitializer Factory260| *camel.component.netty4.configuration.trust-store-file* | Server side certificate keystore to be used for encryption | | File261|===262// spring-boot-auto-configure options: END263 264 265 266=== Registry based Options267 268Codec Handlers and SSL Keystores can be enlisted in the Registry, such as in the Spring XML file.269The values that could be passed in, are the following:270 271[width=""100%"",cols=""10%,90%"",options=""header"",]272|===273|Name |Description274 275|`passphrase` |password setting to use in order to encrypt/decrypt payloads sent using276SSH277 278|`keyStoreFormat` |keystore format to be used for payload encryption. Defaults to ""JKS"" if279not set280 281|`securityProvider` |Security provider to be used for payload encryption. Defaults to282""SunX509"" if not set.283 284|`keyStoreFile` |*deprecated:* Client side certificate keystore to be used for encryption285 286|`trustStoreFile` |*deprecated:* Server side certificate keystore to be used for encryption287 288|`keyStoreResource` |*Camel 2.11.1:* Client side certificate keystore to be used for289encryption. Is loaded by default from classpath, but you can prefix with290`""classpath:""`, `""file:""`, or `""http:""` to load the resource from291different systems.292 293|`trustStoreResource` |*Camel 2.11.1:* Server side certificate keystore to be used for294encryption. Is loaded by default from classpath, but you can prefix with295`""classpath:""`, `""file:""`, or `""http:""` to load the resource from296different systems.297 298|`sslHandler` |Reference to a class that could be used to return an SSL Handler299 300|`encoder` |A custom `ChannelHandler` class that can be used to perform special301marshalling of outbound payloads. Must override302io.netty.channel.ChannelInboundHandlerAdapter.303 304|`encoders` |A list of encoders to be used. You can use a String which have values305separated by comma, and have the values be looked up in the306Registry. Just remember to prefix the value with #307so Camel knows it should lookup.308 309|`decoder` |A custom `ChannelHandler` class that can be used to perform special310marshalling of inbound payloads. Must override311io.netty.channel.ChannelOutboundHandlerAdapter.312 313|`decoders` |A list of decoders to be used. You can use a String which have values314separated by comma, and have the values be looked up in the315Registry. Just remember to prefix the value with #316so Camel knows it should lookup.317|===318 319NOTE: Read below about using non shareable encoders/decoders.320 321==== Using non shareable encoders or decoders322 323If your encoders or decoders are not shareable (e.g. they don't have the324@Shareable class annotation), then your encoder/decoder must implement325the `org.apache.camel.component.netty.ChannelHandlerFactory` interface,326and return a new instance in the `newChannelHandler` method. This is to327ensure the encoder/decoder can safely be used. If this is not the case,328then the Netty component will log a WARN when an endpoint is created.329 330The Netty component offers a331`org.apache.camel.component.netty.ChannelHandlerFactories` factory332class, that has a number of commonly used methods.333 334=== Sending Messages to/from a Netty endpoint335 336==== Netty Producer337 338In Producer mode, the component provides the ability to send payloads to339a socket endpoint using either TCP or UDP protocols (with optional SSL support).340 341The producer mode supports both one-way and request-response based operations.342 343==== Netty Consumer344 345In Consumer mode, the component provides the ability to:346 347* listen on a specified socket using either TCP or UDP protocols (with348optional SSL support),349* receive requests on the socket using text/xml, binary and serialized350object based payloads and351* send them along on a route as message exchanges.352 353The consumer mode supports both one-way and request-response based354operations.355 356=== Examples357 358==== A UDP Netty endpoint using Request-Reply and serialized object payload359 360[source,java]361----362RouteBuilder builder = new RouteBuilder() {363 public void configure() {364 from(""netty4:udp://0.0.0.0:5155?sync=true"")365 .process(new Processor() {366 public void process(Exchange exchange) throws Exception {367 Poetry poetry = (Poetry) exchange.getIn().getBody();368 poetry.setPoet(""Dr. Sarojini Naidu"");369 exchange.getOut().setBody(poetry);370 }371 }372 }373};374----375 376==== A TCP based Netty consumer endpoint using One-way communication377 378[source,java]379----380RouteBuilder builder = new RouteBuilder() {381 public void configure() {382 from(""netty4:tcp://0.0.0.0:5150"")383 .to(""mock:result"");384 }385};386----387 388==== An SSL/TCP based Netty consumer endpoint using Request-Reply communication389 390[[Netty4-UsingtheJSSEConfigurationUtility]]391Using the JSSE Configuration Utility392 393As of Camel 2.9, the Netty component supports SSL/TLS configuration394through the link:camel-configuration-utilities.html[Camel JSSE395Configuration Utility]. This utility greatly decreases the amount of396component specific code you need to write and is configurable at the397endpoint and component levels. The following examples demonstrate how398to use the utility with the Netty component.399 400[[Netty4-Programmaticconfigurationofthecomponent]]401Programmatic configuration of the component402 403[source,java]404----405KeyStoreParameters ksp = new KeyStoreParameters();406ksp.setResource(""/users/home/server/keystore.jks"");407ksp.setPassword(""keystorePassword"");408 409KeyManagersParameters kmp = new KeyManagersParameters();410kmp.setKeyStore(ksp);411kmp.setKeyPassword(""keyPassword"");412 413SSLContextParameters scp = new SSLContextParameters();414scp.setKeyManagers(kmp);415 416NettyComponent nettyComponent = getContext().getComponent(""netty4"", NettyComponent.class);417nettyComponent.setSslContextParameters(scp);418----419 420[[Netty4-SpringDSLbasedconfigurationofendpoint]]421Spring DSL based configuration of endpoint422 423[source,xml]424----425...426 <camel:sslContextParameters427 id=""sslContextParameters"">428 <camel:keyManagers429 keyPassword=""keyPassword"">430 <camel:keyStore431 resource=""/users/home/server/keystore.jks""432 password=""keystorePassword""/>433 </camel:keyManagers>434 </camel:sslContextParameters>...435...436 <to uri=""netty4:tcp://0.0.0.0:5150?sync=true&ssl=true&sslContextParameters=#sslContextParameters""/>437...438----439 440[[Netty4-UsingBasicSSL/TLSconfigurationontheJettyComponent]]441Using Basic SSL/TLS configuration on the Jetty Component442 443[source,java]444----445JndiRegistry registry = new JndiRegistry(createJndiContext());446registry.bind(""password"", ""changeit"");447registry.bind(""ksf"", new File(""src/test/resources/keystore.jks""));448registry.bind(""tsf"", new File(""src/test/resources/keystore.jks""));449 450context.createRegistry(registry);451context.addRoutes(new RouteBuilder() {452 public void configure() {453 String netty_ssl_endpoint =454 ""netty4:tcp://0.0.0.0:5150?sync=true&ssl=true&passphrase=#password""455 + ""&keyStoreFile=#ksf&trustStoreFile=#tsf"";456 String return_string =457 ""When You Go Home, Tell Them Of Us And Say,""458 + ""For Your Tomorrow, We Gave Our Today."";459 460 from(netty_ssl_endpoint)461 .process(new Processor() {462 public void process(Exchange exchange) throws Exception {463 exchange.getOut().setBody(return_string);464 }465 }466 }467});468----469 470[[Netty4-GettingaccesstoSSLSessionandtheclientcertificate]]471Getting access to SSLSession and the client certificate472 473You can get access to the `javax.net.ssl.SSLSession` if you eg need to474get details about the client certificate. When `ssl=true` then the475<<netty4-component,Netty4>> component will store the `SSLSession` as a476header on the Camel Message as shown below:477 478[source,java]479----480SSLSession session = exchange.getIn().getHeader(NettyConstants.NETTY_SSL_SESSION, SSLSession.class);481// get the first certificate which is client certificate482javax.security.cert.X509Certificate cert = session.getPeerCertificateChain()[0];483Principal principal = cert.getSubjectDN();484----485 486Remember to set `needClientAuth=true` to authenticate the client,487otherwise `SSLSession` cannot access information about the client488certificate, and you may get an exception489`javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated`. You490may also get this exception if the client certificate is expired or not491valid etc.492 493TIP: The option `sslClientCertHeaders` can be set to `true` which then494enriches the Camel Message with headers having495details about the client certificate. For example the subject name is496readily available in the header `CamelNettySSLClientCertSubjectName`.497 498==== Using Multiple Codecs499 500In certain cases it may be necessary to add chains of encoders and501decoders to the netty pipeline. To add multpile codecs to a camel netty502endpoint the 'encoders' and 'decoders' uri parameters should be used.503Like the 'encoder' and 'decoder' parameters they are used to supply504references (lists of ChannelUpstreamHandlers and505ChannelDownstreamHandlers) that should be added to the pipeline. Note506that if encoders is specified then the encoder param will be ignored,507similarly for decoders and the decoder param.508 509NOTE: Read further above about using non shareable encoders/decoders.510 511The lists of codecs need to be added to the Camel's registry so they can512be resolved when the endpoint is created.513 514[source,java]515----516ChannelHandlerFactory lengthDecoder = ChannelHandlerFactories.newLengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4);517 518StringDecoder stringDecoder = new StringDecoder();519registry.bind(""length-decoder"", lengthDecoder);520registry.bind(""string-decoder"", stringDecoder);521 522LengthFieldPrepender lengthEncoder = new LengthFieldPrepender(4);523StringEncoder stringEncoder = new StringEncoder();524registry.bind(""length-encoder"", lengthEncoder);525registry.bind(""string-encoder"", stringEncoder);526 527List<ChannelHandler> decoders = new ArrayList<ChannelHandler>();528decoders.add(lengthDecoder);529decoders.add(stringDecoder);530 531List<ChannelHandler> encoders = new ArrayList<ChannelHandler>();532encoders.add(lengthEncoder);533encoders.add(stringEncoder);534 535registry.bind(""encoders"", encoders);536registry.bind(""decoders"", decoders);537----538 539Spring's native collections support can be used to specify the codec540lists in an application context541 542[source,xml]543----544<util:list id=""decoders"" list-class=""java.util.LinkedList"">545 <bean class=""org.apache.camel.component.netty4.ChannelHandlerFactories"" factory-method=""newLengthFieldBasedFrameDecoder"">546 <constructor-arg value=""1048576""/>547 <constructor-arg value=""0""/>548 <constructor-arg value=""4""/>549 <constructor-arg value=""0""/>550 <constructor-arg value=""4""/>551 </bean>552 <bean class=""io.netty.handler.codec.string.StringDecoder""/>553 </util:list>554 555 <util:list id=""encoders"" list-class=""java.util.LinkedList"">556 <bean class=""io.netty.handler.codec.LengthFieldPrepender"">557 <constructor-arg value=""4""/>558 </bean>559 <bean class=""io.netty.handler.codec.string.StringEncoder""/>560 </util:list>561 562 <bean id=""length-encoder"" class=""io.netty.handler.codec.LengthFieldPrepender"">563 <constructor-arg value=""4""/>564 </bean>565 <bean id=""string-encoder"" class=""io.netty.handler.codec.string.StringEncoder""/>566 567 <bean id=""length-decoder"" class=""org.apache.camel.component.netty4.ChannelHandlerFactories"" factory-method=""newLengthFieldBasedFrameDecoder"">568 <constructor-arg value=""1048576""/>569 <constructor-arg value=""0""/>570 <constructor-arg value=""4""/>571 <constructor-arg value=""0""/>572 <constructor-arg value=""4""/>573 </bean>574 <bean id=""string-decoder"" class=""io.netty.handler.codec.string.StringDecoder""/>575----576 577The bean names can then be used in netty endpoint definitions either as578a comma separated list or contained in a List e.g.579 580[source,java]581----582 from(""direct:multiple-codec"").to(""netty4:tcp://0.0.0.0:{{port}}?encoders=#encoders&sync=false"");583 584 from(""netty4:tcp://0.0.0.0:{{port}}?decoders=#length-decoder,#string-decoder&sync=false"").to(""mock:multiple-codec"");585----586 587or via XML.588 589[source,xml]590----591<camelContext id=""multiple-netty-codecs-context"" xmlns=""http://camel.apache.org/schema/spring"">592 <route>593 <from uri=""direct:multiple-codec""/>594 <to uri=""netty4:tcp://0.0.0.0:5150?encoders=#encoders&sync=false""/>595 </route>596 <route>597 <from uri=""netty4:tcp://0.0.0.0:5150?decoders=#length-decoder,#string-decoder&sync=false""/>598 <to uri=""mock:multiple-codec""/>599 </route>600</camelContext>601----602 603=== Closing Channel When Complete604 605When acting as a server you sometimes want to close the channel when,606for example, a client conversion is finished. +607 You can do this by simply setting the endpoint option608`disconnect=true`.609 610However you can also instruct Camel on a per message basis as follows. +611 To instruct Camel to close the channel, you should add a header with612the key `CamelNettyCloseChannelWhenComplete` set to a boolean `true`613value. +614 For instance, the example below will close the channel after it has615written the bye message back to the client:616 617[source,java]618----619from(""netty4:tcp://0.0.0.0:8080"").process(new Processor() {620 public void process(Exchange exchange) throws Exception {621 String body = exchange.getIn().getBody(String.class);622 exchange.getOut().setBody(""Bye "" + body);623 // some condition which determines if we should close624 if (close) {625 exchange.getOut().setHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);626 }627 }628});629----630 631[[Netty4-Addingcustomchannelpipelinefactoriestogaincompletecontroloveracreatedpipeline]]632Adding custom channel pipeline factories to gain complete control over a created pipeline633 634=== Custom pipeline635 636Custom channel pipelines provide complete control to the user over the637handler/interceptor chain by inserting custom handler(s), encoder(s) &638decoder(s) without having to specify them in the Netty Endpoint URL in a639very simple way.640 641In order to add a custom pipeline, a custom channel pipeline factory642must be created and registered with the context via the context registry643(JNDIRegistry, or the camel-spring ApplicationContextRegistry etc).644 645A custom pipeline factory must be constructed as follows646 647* A Producer linked channel pipeline factory must extend the abstract648class `ClientPipelineFactory`.649* A Consumer linked channel pipeline factory must extend the abstract650class `ServerInitializerFactory`.651* The classes should override the initChannel() method in order to652insert custom handler(s), encoder(s) and decoder(s). Not overriding the653`initChannel()` method creates a pipeline with no handlers, encoders or654decoders wired to the pipeline.655 656The example below shows how ServerInitializerFactory factory may be657created658 659==== Using custom pipeline factory660 661[source,java]662----663public class SampleServerInitializerFactory extends ServerInitializerFactory {664 private int maxLineSize = 1024;665 666 protected void initChannel(Channel ch) throws Exception {667 ChannelPipeline channelPipeline = ch.pipeline();668 669 channelPipeline.addLast(""encoder-SD"", new StringEncoder(CharsetUtil.UTF_8));670 channelPipeline.addLast(""decoder-DELIM"", new DelimiterBasedFrameDecoder(maxLineSize, true, Delimiters.lineDelimiter()));671 channelPipeline.addLast(""decoder-SD"", new StringDecoder(CharsetUtil.UTF_8));672 // here we add the default Camel ServerChannelHandler for the consumer, to allow Camel to route the message etc.673 channelPipeline.addLast(""handler"", new ServerChannelHandler(consumer));674 }675}676----677 678The custom channel pipeline factory can then be added to the registry679and instantiated/utilized on a camel route in the following way680 681[source,java]682----683Registry registry = camelContext.getRegistry();684ServerInitializerFactory factory = new TestServerInitializerFactory();685registry.bind(""spf"", factory);686context.addRoutes(new RouteBuilder() {687 public void configure() {688 String netty_ssl_endpoint =689 ""netty4:tcp://0.0.0.0:5150?serverInitializerFactory=#spf""690 String return_string =691 ""When You Go Home, Tell Them Of Us And Say,""692 + ""For Your Tomorrow, We Gave Our Today."";693 694 from(netty_ssl_endpoint)695 .process(new Processor() {696 public void process(Exchange exchange) throws Exception {697 exchange.getOut().setBody(return_string);698 }699 }700 }701});702----703 704=== Reusing Netty boss and worker thread pools705 706Netty has two kind of thread pools: boss and worker. By default each707Netty consumer and producer has their private thread pools. If you want708to reuse these thread pools among multiple consumers or producers then709the thread pools must be created and enlisted in the710Registry.711 712For example using Spring XML we can create a shared worker thread pool713using the `NettyWorkerPoolBuilder` with 2 worker threads as shown below:714 715[source,xml]716----717<!-- use the worker pool builder to help create the shared thread pool -->718<bean id=""poolBuilder"" class=""org.apache.camel.component.netty.NettyWorkerPoolBuilder"">719 <property name=""workerCount"" value=""2""/>720</bean>721 722<!-- the shared worker thread pool -->723<bean id=""sharedPool"" class=""org.jboss.netty.channel.socket.nio.WorkerPool""724 factory-bean=""poolBuilder"" factory-method=""build"" destroy-method=""shutdown"">725</bean>726----727 728TIP: For boss thread pool there is a729`org.apache.camel.component.netty4.NettyServerBossPoolBuilder` builder730for Netty consumers, and a731`org.apache.camel.component.netty4.NettyClientBossPoolBuilder` for the732Netty producers.733 734Then in the Camel routes we can refer to this worker pools by735configuring the `workerPool` option in the736https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=CAMEL&title=URI&linkCreation=true&fromPageId=45877614[URI]737as shown below:738 739[source,xml]740----741<route>742 <from uri=""netty4:tcp://0.0.0.0:5021?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false""/>743 <to uri=""log:result""/>744 ...745</route>746----747 748And if we have another route we can refer to the shared worker pool:749 750[source,xml]751----752<route>753 <from uri=""netty4:tcp://0.0.0.0:5022?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false""/>754 <to uri=""log:result""/>755 ...756</route>757----758 759and so forth.760 761=== Multiplexing concurrent messages over a single connection with request/reply762 763When using Netty for request/reply messaging via the netty producer then by default each764message is sent via a non-shared connection (pooled). This ensures that replies are765automatic being able to map to the correct request thread for further routing in Camel.766In other words correlation between request/reply messages happens out-of-the-box because767the replies comes back on the same connection that was used for sending the request;768and this connection is not shared with others. When the response comes back, the connection769is returned back to the connection pool, where it can be reused by others.770 771However if you want to multiplex concurrent request/responses on a single shared connection,772then you need to turn off the connection pooling by setting `producerPoolEnabled=false`.773Now this means there is a potential issue with interleaved responses if replies comes back out-of-order.774Therefore you need to have a correlation id in both the request and reply messages so you can properly775correlate the replies to the Camel callback that is responsible for continue processing the message in Camel.776To do this you need to implement `NettyCamelStateCorrelationManager` as correlation manager and configure777it via the `correlationManager=#myManager` option.778 779NOTE: We recommend extending the `TimeoutCorrelationManagerSupport` when you build custom correlation managers.780This provides support for timeout and other complexities you otherwise would need to implement as well.781 782You can find an example with the Apache Camel source code in the examples directory783under the `camel-example-netty-custom-correlation` directory.784 785=== See Also786 787* <<netty-http-component,Netty HTTP>>788* <<mina2-component,MINA>>789",12483,False,2342.759666669801,median790"////791 AUTOGENERATED FILE - this file was generated via792 https://github.com/jboss-container-images/jboss-kie-modules/tree/master/tools/gen-template-doc/tools/gen_template_docs.py.793 Changes to .adoc or HTML files may be overwritten! Please change the794 generator or the input template (https://github.com/jboss-container-images/jboss-kie-modules/tree/master/tools/gen-template-doc/*.in)795////796= rhdm76-authoring-ha797:toc:798:toc-placement!:799:toclevels: 5800 801Application template for a HA persistent authoring environment, for Red Hat Decision Manager 7.6 - Deprecated802 803toc::[]804 805 806== Parameters807 808Templates allow you to define parameters which take on a value. That value is then substituted wherever the parameter is referenced.809References can be defined in any text field in the objects list field. Refer to the810https://docs.okd.io/latest/architecture/core_concepts/templates.html#parameters[Openshift documentation] for more information.811 812|=======================================================================813|Variable name |Image Environment Variable |Description |Example value |Required814 815|`APPLICATION_NAME` | -- | The name for the application. | myapp | True816|`KIE_ADMIN_USER` | `KIE_ADMIN_USER` | KIE administrator username. | adminUser | False817|`KIE_ADMIN_PWD` | `KIE_ADMIN_PWD` | KIE administrator password. | -- | False818|`KIE_SERVER_CONTROLLER_USER` | `KIE_SERVER_CONTROLLER_USER` | KIE server controller username. (Sets the org.kie.server.controller.user system property) | controllerUser | False819|`KIE_SERVER_CONTROLLER_PWD` | `KIE_SERVER_CONTROLLER_PWD` | KIE server controller password. (Sets the org.kie.server.controller.pwd system property) | -- | False820|`KIE_SERVER_CONTROLLER_TOKEN` | `KIE_SERVER_CONTROLLER_TOKEN` | KIE server controller token for bearer authentication. (Sets the org.kie.server.controller.token system property) | -- | False821|`KIE_SERVER_USER` | `KIE_SERVER_USER` | KIE server username. (Sets the org.kie.server.user system property) | executionUser | False822|`KIE_SERVER_PWD` | `KIE_SERVER_PWD` | KIE server password. (Sets the org.kie.server.pwd system property) | -- | False823|`KIE_SERVER_BYPASS_AUTH_USER` | `KIE_SERVER_BYPASS_AUTH_USER` | Allows the KIE server to bypass the authenticated user for task-related operations, for example, queries. (Sets the org.kie.server.bypass.auth.user system property) | false | False824|`KIE_SERVER_MODE` | `KIE_SERVER_MODE` | The KIE Server mode. Valid values are 'DEVELOPMENT' or 'PRODUCTION'. In production mode, you can not deploy SNAPSHOT versions of artifacts on the KIE server and can not change the version of an artifact in an existing container. (Sets the org.kie.server.mode system property). | `DEVELOPMENT` | False825|`KIE_MBEANS` | `KIE_MBEANS` | KIE server mbeans enabled/disabled. (Sets the kie.mbeans and kie.scanner.mbeans system properties) | enabled | False826|`DROOLS_SERVER_FILTER_CLASSES` | `DROOLS_SERVER_FILTER_CLASSES` | KIE server class filtering. (Sets the org.drools.server.filter.classes system property) | true | False827|`PROMETHEUS_SERVER_EXT_DISABLED` | `PROMETHEUS_SERVER_EXT_DISABLED` | If set to false, the prometheus server extension will be enabled. (Sets the org.kie.prometheus.server.ext.disabled system property) | false | False828|`DECISION_CENTRAL_HOSTNAME_HTTP` | `HOSTNAME_HTTP` | Custom hostname for http service route for Decision Central. Leave blank for default hostname, e.g.: insecure-<application-name>-rhdmcentr-<project>.<default-domain-suffix> | -- | False829|`DECISION_CENTRAL_HOSTNAME_HTTPS` | `HOSTNAME_HTTPS` | Custom hostname for https service route for Decision Central. Leave blank for default hostname, e.g.: <application-name>-rhdmcentr-<project>.<default-domain-suffix> | -- | False830|`KIE_SERVER_HOSTNAME_HTTP` | `HOSTNAME_HTTP` | Custom hostname for http service route for KIE Server. Leave blank for default hostname, e.g.: insecure-<application-name>-kieserver-<project>.<default-domain-suffix> | -- | False831|`KIE_SERVER_HOSTNAME_HTTPS` | `HOSTNAME_HTTPS` | Custom hostname for https service route for KIE Server. Leave blank for default hostname, e.g.: <application-name>-kieserver-<project>.<default-domain-suffix> | -- | False832|`DECISION_CENTRAL_HTTPS_SECRET` | -- | The name of the secret containing the keystore file for Decision Central. | decisioncentral-app-secret | True833|`DECISION_CENTRAL_HTTPS_KEYSTORE` | `HTTPS_KEYSTORE` | The name of the keystore file within the secret for Decision Central. | keystore.jks | False834|`DECISION_CENTRAL_HTTPS_NAME` | `HTTPS_NAME` | The name associated with the server certificate for Decision Central. | jboss | False835|`DECISION_CENTRAL_HTTPS_PASSWORD` | `HTTPS_PASSWORD` | The password for the keystore and certificate for Decision Central. | mykeystorepass | False836|`KIE_SERVER_HTTPS_SECRET` | -- | The name of the secret containing the keystore file for KIE Server. | kieserver-app-secret | True837|`KIE_SERVER_HTTPS_KEYSTORE` | `HTTPS_KEYSTORE` | The name of the keystore file within the secret for KIE Server. | keystore.jks | False838|`KIE_SERVER_HTTPS_NAME` | `HTTPS_NAME` | The name associated with the server certificate for KIE Server. | jboss | False839|`KIE_SERVER_HTTPS_PASSWORD` | `HTTPS_PASSWORD` | The password for the keystore and certificate for KIE Server. | mykeystorepass | False840|`APPFORMER_JMS_BROKER_USER` | `APPFORMER_JMS_BROKER_USER` | The username to connect to the JMS broker. | jmsBrokerUser | True841|`APPFORMER_JMS_BROKER_PASSWORD` | `APPFORMER_JMS_BROKER_PASSWORD` | The password to connect to the JMS broker. | -- | True842|`DATAGRID_IMAGE` | -- | DataGrid image. | registry.redhat.io/jboss-datagrid-7/datagrid73-openshift:1.2 | True843|`DATAGRID_CPU_LIMIT` | -- | DataGrid Container cpu limit. | 1000m | True844|`DATAGRID_MEMORY_LIMIT` | -- | DataGrid Container memory limit. | 2Gi | True845|`DATAGRID_VOLUME_CAPACITY` | -- | Size of the persistent storage for DataGrid's runtime data. | 1Gi | True846|`AMQ_BROKER_IMAGE` | -- | AMQ Broker Image | registry.redhat.io/amq7/amq-broker:7.4 | True847|`AMQ_ROLE` | -- | User role for standard broker user. | admin | True848|`AMQ_NAME` | -- | The name of the broker. | broker | True849|`AMQ_GLOBAL_MAX_SIZE` | -- | Specifies the maximum amount of memory that message data can consume. If no value is specified, half of the system's memory is allocated. | 10 gb | False850|`AMQ_VOLUME_CAPACITY` | -- | Size of persistent storage for AMQ broker volume. | 1Gi | True851|`AMQ_REPLICAS` | -- | Number of broker replicas for a cluster | 2 | True852|`KIE_SERVER_CONTROLLER_OPENSHIFT_GLOBAL_DISCOVERY_ENABLED` | `KIE_SERVER_CONTROLLER_OPENSHIFT_GLOBAL_DISCOVERY_ENABLED` | If set to true, turns on KIE server global discovery feature (Sets the org.kie.server.controller.openshift.global.discovery.enabled system property) | false | False853|`KIE_SERVER_CONTROLLER_OPENSHIFT_PREFER_KIESERVER_SERVICE` | `KIE_SERVER_CONTROLLER_OPENSHIFT_PREFER_KIESERVER_SERVICE` | If OpenShift integration of Business Central is turned on, setting this parameter to true enables connection to KIE Server via an OpenShift internal Service endpoint. (Sets the org.kie.server.controller.openshift.prefer.kieserver.service system property) | true | False854|`KIE_SERVER_CONTROLLER_TEMPLATE_CACHE_TTL` | `KIE_SERVER_CONTROLLER_TEMPLATE_CACHE_TTL` | KIE ServerTemplate Cache TTL in milliseconds. (Sets the org.kie.server.controller.template.cache.ttl system property) | 60000 | False855|`IMAGE_STREAM_NAMESPACE` | -- | Namespace in which the ImageStreams for Red Hat Decision Manager images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you installed the ImageStreams in a different namespace/project. | openshift | True856|`DECISION_CENTRAL_IMAGE_STREAM_NAME` | -- | The name of the image stream to use for Decision Central. Default is ""rhdm76-decisioncentral-openshift"". | rhdm76-decisioncentral-openshift | True857|`KIE_SERVER_IMAGE_STREAM_NAME` | -- | The name of the image stream to use for KIE server. Default is ""rhdm76-kieserver-openshift"". | rhdm76-kieserver-openshift | True858|`IMAGE_STREAM_TAG` | -- | A named pointer to an image in an image stream. Default is ""1.0"". | 1.0 | True859|`MAVEN_MIRROR_URL` | `MAVEN_MIRROR_URL` | Maven mirror that Decision Central and KIE server must use. If you configure a mirror, this mirror must contain all artifacts that are required for building and deploying your services. | -- | False860|`MAVEN_MIRROR_OF` | `MAVEN_MIRROR_OF` | Maven mirror configuration for KIE server. | external:*,!repo-rhdmcentr | False861|`MAVEN_REPO_ID` | `MAVEN_REPO_ID` | The id to use for the maven repository. If set, it can be excluded from the optionally configured mirror by adding it to MAVEN_MIRROR_OF. For example: external:*,!repo-rhdmcentr,!repo-custom. If MAVEN_MIRROR_URL is set but MAVEN_MIRROR_ID is not set, an id will be generated randomly, but won't be usable in MAVEN_MIRROR_OF. | repo-custom | False862|`MAVEN_REPO_URL` | `MAVEN_REPO_URL` | Fully qualified URL to a Maven repository or service. | http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ | False863|`MAVEN_REPO_USERNAME` | `MAVEN_REPO_USERNAME` | Username to access the Maven repository, if required. | -- | False864|`MAVEN_REPO_PASSWORD` | `MAVEN_REPO_PASSWORD` | Password to access the Maven repository, if required. | -- | False865|`DECISION_CENTRAL_MAVEN_USERNAME` | `KIE_MAVEN_USER` | Username to access the Maven service hosted by Decision Central inside EAP. | mavenUser | True866|`DECISION_CENTRAL_MAVEN_PASSWORD` | `KIE_MAVEN_PWD` | Password to access the Maven service hosted by Decision Central inside EAP. | -- | True867|`GIT_HOOKS_DIR` | `GIT_HOOKS_DIR` | The directory to use for git hooks, if required. | `/opt/kie/data/git/hooks` | False868|`DECISION_CENTRAL_VOLUME_CAPACITY` | -- | Size of the persistent storage for Decision Central's runtime data. | 1Gi | True869|`DECISION_CENTRAL_MEMORY_LIMIT` | -- | Decision Central Container memory limit. | 2Gi | False870|`KIE_SERVER_MEMORY_LIMIT` | -- | KIE server Container memory limit. | 1Gi | False871|`SSO_URL` | `SSO_URL` | RH-SSO URL. | https://rh-sso.example.com/auth | False872|`SSO_REALM` | `SSO_REALM` | RH-SSO Realm name. | -- | False873|`DECISION_CENTRAL_SSO_CLIENT` | `SSO_CLIENT` | Decision Central RH-SSO Client name. | -- | False874|`DECISION_CENTRAL_SSO_SECRET` | `SSO_SECRET` | Decision Central RH-SSO Client Secret. | 252793ed-7118-4ca8-8dab-5622fa97d892 | False875|`KIE_SERVER_SSO_CLIENT` | `SSO_CLIENT` | KIE Server RH-SSO Client name. | -- | False876|`KIE_SERVER_SSO_SECRET` | `SSO_SECRET` | KIE Server RH-SSO Client Secret. | 252793ed-7118-4ca8-8dab-5622fa97d892 | False877|`SSO_USERNAME` | `SSO_USERNAME` | RH-SSO Realm Admin Username used to create the Client if it doesn't exist. | -- | False878|`SSO_PASSWORD` | `SSO_PASSWORD` | RH-SSO Realm Admin Password used to create the Client. | -- | False879|`SSO_DISABLE_SSL_CERTIFICATE_VALIDATION` | `SSO_DISABLE_SSL_CERTIFICATE_VALIDATION` | RH-SSO Disable SSL Certificate Validation. | false | False880|`SSO_PRINCIPAL_ATTRIBUTE` | `SSO_PRINCIPAL_ATTRIBUTE` | RH-SSO Principal Attribute to use as username. | preferred_username | False881|`AUTH_LDAP_URL` | `AUTH_LDAP_URL` | LDAP Endpoint to connect for authentication. | ldap://myldap.example.com | False882|`AUTH_LDAP_BIND_DN` | `AUTH_LDAP_BIND_DN` | Bind DN used for authentication. | uid=admin,ou=users,ou=exmample,ou=com | False883|`AUTH_LDAP_BIND_CREDENTIAL` | `AUTH_LDAP_BIND_CREDENTIAL` | LDAP Credentials used for authentication. | Password | False884|`AUTH_LDAP_JAAS_SECURITY_DOMAIN` | `AUTH_LDAP_JAAS_SECURITY_DOMAIN` | The JMX ObjectName of the JaasSecurityDomain used to decrypt the password. | -- | False885|`AUTH_LDAP_BASE_CTX_DN` | `AUTH_LDAP_BASE_CTX_DN` | LDAP Base DN of the top-level context to begin the user search. | ou=users,ou=example,ou=com | False886|`AUTH_LDAP_BASE_FILTER` | `AUTH_LDAP_BASE_FILTER` | LDAP search filter used to locate the context of the user to authenticate. The input username or userDN obtained from the login module callback is substituted into the filter anywhere a {0} expression is used. A common example for the search filter is (uid={0}). | (uid={0}) | False887|`AUTH_LDAP_SEARCH_SCOPE` | `AUTH_LDAP_SEARCH_SCOPE` | The search scope to use. | `SUBTREE_SCOPE` | False888|`AUTH_LDAP_SEARCH_TIME_LIMIT` | `AUTH_LDAP_SEARCH_TIME_LIMIT` | The timeout in milliseconds for user or role searches. | 10000 | False889|`AUTH_LDAP_DISTINGUISHED_NAME_ATTRIBUTE` | `AUTH_LDAP_DISTINGUISHED_NAME_ATTRIBUTE` | The name of the attribute in the user entry that contains the DN of the user. This may be necessary if the DN of the user itself contains special characters, backslash for example, that prevent correct user mapping. If the attribute does not exist, the entry's DN is used. | distinguishedName | False890|`AUTH_LDAP_PARSE_USERNAME` | `AUTH_LDAP_PARSE_USERNAME` | A flag indicating if the DN is to be parsed for the username. If set to true, the DN is parsed for the username. If set to false the DN is not parsed for the username. This option is used together with usernameBeginString and usernameEndString. | true | False891|`AUTH_LDAP_USERNAME_BEGIN_STRING` | `AUTH_LDAP_USERNAME_BEGIN_STRING` | Defines the String which is to be removed from the start of the DN to reveal the username. This option is used together with usernameEndString and only taken into account if parseUsername is set to true. | -- | False892|`AUTH_LDAP_USERNAME_END_STRING` | `AUTH_LDAP_USERNAME_END_STRING` | Defines the String which is to be removed from the end of the DN to reveal the username. This option is used together with usernameEndString and only taken into account if parseUsername is set to true. | -- | False893|`AUTH_LDAP_ROLE_ATTRIBUTE_ID` | `AUTH_LDAP_ROLE_ATTRIBUTE_ID` | Name of the attribute containing the user roles. | memberOf | False894|`AUTH_LDAP_ROLES_CTX_DN` | `AUTH_LDAP_ROLES_CTX_DN` | The fixed DN of the context to search for user roles. This is not the DN where the actual roles are, but the DN where the objects containing the user roles are. For example, in a Microsoft Active Directory server, this is the DN where the user account is. | ou=groups,ou=example,ou=com | False895|`AUTH_LDAP_ROLE_FILTER` | `AUTH_LDAP_ROLE_FILTER` | A search filter used to locate the roles associated with the authenticated user. The input username or userDN obtained from the login module callback is substituted into the filter anywhere a {0} expression is used. The authenticated userDN is substituted into the filter anywhere a {1} is used. An example search filter that matches on the input username is (member={0}). An alternative that matches on the authenticated userDN is (member={1}). | (memberOf={1}) | False896|`AUTH_LDAP_ROLE_RECURSION` | `AUTH_LDAP_ROLE_RECURSION` | The number of levels of recursion the role search will go below a matching context. Disable recursion by setting this to 0. | 1 | False897|`AUTH_LDAP_DEFAULT_ROLE` | `AUTH_LDAP_DEFAULT_ROLE` | A role included for all authenticated users | user | False898|`AUTH_LDAP_ROLE_NAME_ATTRIBUTE_ID` | `AUTH_LDAP_ROLE_NAME_ATTRIBUTE_ID` | Name of the attribute within the roleCtxDN context which contains the role name. If the roleAttributeIsDN property is set to true, this property is used to find the role object's name attribute. | name | False899|`AUTH_LDAP_PARSE_ROLE_NAME_FROM_DN` | `AUTH_LDAP_PARSE_ROLE_NAME_FROM_DN` | A flag indicating if the DN returned by a query contains the roleNameAttributeID. If set to true, the DN is checked for the roleNameAttributeID. If set to false, the DN is not checked for the roleNameAttributeID. This flag can improve the performance of LDAP queries. | false | False900|`AUTH_LDAP_ROLE_ATTRIBUTE_IS_DN` | `AUTH_LDAP_ROLE_ATTRIBUTE_IS_DN` | Whether or not the roleAttributeID contains the fully-qualified DN of a role object. If false, the role name is taken from the value of the roleNameAttributeId attribute of the context name. Certain directory schemas, such as Microsoft Active Directory, require this attribute to be set to true. | false | False901|`AUTH_LDAP_REFERRAL_USER_ATTRIBUTE_ID_TO_CHECK` | `AUTH_LDAP_REFERRAL_USER_ATTRIBUTE_ID_TO_CHECK` | If you are not using referrals, you can ignore this option. When using referrals, this option denotes the attribute name which contains users defined for a certain role, for example member, if the role object is inside the referral. Users are checked against the content of this attribute name. If this option is not set, the check will always fail, so role objects cannot be stored in a referral tree. | -- | False902|`AUTH_ROLE_MAPPER_ROLES_PROPERTIES` | `AUTH_ROLE_MAPPER_ROLES_PROPERTIES` | When present, the RoleMapping Login Module will be configured to use the provided file. This parameter defines the fully-qualified file path and name of a properties file or resource which maps roles to replacement roles. The format is original_role=role1,role2,role3 | -- | False903|`AUTH_ROLE_MAPPER_REPLACE_ROLE` | `AUTH_ROLE_MAPPER_REPLACE_ROLE` | Whether to add to the current roles, or replace the current roles with the mapped ones. Replaces if set to true. | -- | False904|=======================================================================905 906 907 908== Objects909 910The CLI supports various object types. A list of these object types as well as their abbreviations911can be found in the https://docs.okd.io/latest/cli_reference/basic_cli_operations.html#object-types[Openshift documentation].912 913 914=== Services915 916A service is an abstraction which defines a logical set of pods and a policy by which to access them. Refer to the917https://cloud.google.com/container-engine/docs/services/[container-engine documentation] for more information.918 919|=============920|Service |Port |Name | Description921 922.2+| `${APPLICATION_NAME}-rhdmcentr`923|8080 | http924.2+| All the Decision Central web server's ports.925|8443 | https926.1+| `${APPLICATION_NAME}-rhdmcentr-ping`927|8888 | ping928.1+| The JGroups ping port for rhdmcentr clustering.929.1+| `${APPLICATION_NAME}-datagrid-ping`930|8888 | ping931.1+| Provides a ping service for clustered applications.932.1+| `${APPLICATION_NAME}-datagrid`933|11222 | hotrod934.1+| Provides a service for accessing the application over Hot Rod protocol.935.2+| `${APPLICATION_NAME}-kieserver`936|8080 | http937.2+| All the KIE server web server's ports.938|8443 | https939.1+| `${APPLICATION_NAME}-amq-tcp`940|61616 | --941.1+| The broker's OpenWire port.942.1+| `ping`943|8888 | --944.1+| The JGroups ping port for amq clustering.945|=============946 947 948 949=== Routes950 951A route is a way to expose a service by giving it an externally-reachable hostname such as `www.example.com`. A defined route and the endpoints952identified by its service can be consumed by a router to provide named connectivity from external clients to your applications. Each route consists953of a route name, service selector, and (optionally) security configuration. Refer to the954https://docs.okd.io/latest/architecture/networking/routes.html[Openshift documentation] for more information.955 956|=============957| Service | Security | Hostname958 959|insecure-${APPLICATION_NAME}-rhdmcentr-http | none | `${DECISION_CENTRAL_HOSTNAME_HTTP}`960|`${APPLICATION_NAME}-rhdmcentr-https` | TLS passthrough | `${DECISION_CENTRAL_HOSTNAME_HTTPS}`961|insecure-${APPLICATION_NAME}-kieserver-http | none | `${KIE_SERVER_HOSTNAME_HTTP}`962|`${APPLICATION_NAME}-kieserver-https` | TLS passthrough | `${KIE_SERVER_HOSTNAME_HTTPS}`963|=============964 965 966 967 968=== Deployment Configurations969 970A deployment in OpenShift is a replication controller based on a user defined template called a deployment configuration. Deployments are created manually or in response to triggered events.971Refer to the https://docs.okd.io/latest/dev_guide/deployments/how_deployments_work.html#creating-a-deployment-configuration[Openshift documentation] for more information.972 973 974==== Triggers975 976A trigger drives the creation of new deployments in response to events, both inside and outside OpenShift. Refer to the977https://docs.okd.io/latest/dev_guide/builds/triggering_builds.html#config-change-triggers[Openshift documentation] for more information.978 979|============980|Deployment | Triggers981 982|`${APPLICATION_NAME}-rhdmcentr` | ImageChange983|`${APPLICATION_NAME}-kieserver` | ImageChange984|============985 986 987 988==== Replicas989 990A replication controller ensures that a specified number of pod ""replicas"" are running at any one time.991If there are too many, the replication controller kills some pods. If there are too few, it starts more.992Refer to the https://cloud.google.com/container-engine/docs/replicationcontrollers/[container-engine documentation]993for more information.994 995|============996|Deployment | Replicas997 998|`${APPLICATION_NAME}-rhdmcentr` | 2999|`${APPLICATION_NAME}-kieserver` | 21000|============1001 1002 1003==== Pod Template1004 1005 1006===== Service Accounts1007 1008Service accounts are API objects that exist within each project. They can be created or deleted like any other API object. Refer to the1009https://docs.okd.io/latest/dev_guide/service_accounts.html#dev-managing-service-accounts[Openshift documentation] for more1010information.1011 1012|============1013|Deployment | Service Account1014 1015|`${APPLICATION_NAME}-rhdmcentr` | `${APPLICATION_NAME}-rhdmsvc`1016|`${APPLICATION_NAME}-kieserver` | `${APPLICATION_NAME}-rhdmsvc`1017|============1018 1019 1020 1021===== Image1022 1023|============1024|Deployment | Image1025 1026|`${APPLICATION_NAME}-rhdmcentr` | `${DECISION_CENTRAL_IMAGE_STREAM_NAME}`1027|`${APPLICATION_NAME}-kieserver` | `${KIE_SERVER_IMAGE_STREAM_NAME}`1028|============1029 1030 1031 1032===== Readiness Probe1033 1034 1035.${APPLICATION_NAME}-rhdmcentr1036----1037Http Get on http://localhost:8080/rest/ready1038----1039 1040.${APPLICATION_NAME}-kieserver1041----1042Http Get on http://localhost:8080/services/rest/server/readycheck1043----1044 1045 1046 1047 1048===== Liveness Probe1049 1050 1051.${APPLICATION_NAME}-rhdmcentr1052----1053Http Get on http://localhost:8080/rest/healthy1054----1055 1056.${APPLICATION_NAME}-kieserver1057----1058Http Get on http://localhost:8080/services/rest/server/healthcheck1059----1060 1061 1062 1063 1064===== Exposed Ports1065 1066|=============1067|Deployments | Name | Port | Protocol1068 1069.4+| `${APPLICATION_NAME}-rhdmcentr`1070|jolokia | 8778 | `TCP`1071|http | 8080 | `TCP`1072|https | 8443 | `TCP`1073|ping | 8888 | `TCP`1074.3+| `${APPLICATION_NAME}-kieserver`1075|jolokia | 8778 | `TCP`1076|http | 8080 | `TCP`1077|https | 8443 | `TCP`1078|=============1079 1080 1081 1082===== Image Environment Variables1083 1084|=======================================================================1085|Deployment |Variable name |Description |Example value1086 1087.70+| `${APPLICATION_NAME}-rhdmcentr`1088|`APPLICATION_USERS_PROPERTIES` | -- | `/opt/kie/data/configuration/application-users.properties`1089|`APPLICATION_ROLES_PROPERTIES` | -- | `/opt/kie/data/configuration/application-roles.properties`1090|`KIE_ADMIN_USER` | KIE administrator username. | `${KIE_ADMIN_USER}`1091|`KIE_ADMIN_PWD` | KIE administrator password. | `${KIE_ADMIN_PWD}`1092|`KIE_MBEANS` | KIE server mbeans enabled/disabled. (Sets the kie.mbeans and kie.scanner.mbeans system properties) | `${KIE_MBEANS}`1093|`KIE_SERVER_CONTROLLER_OPENSHIFT_GLOBAL_DISCOVERY_ENABLED` | If set to true, turns on KIE server global discovery feature (Sets the org.kie.server.controller.openshift.global.discovery.enabled system property) | `${KIE_SERVER_CONTROLLER_OPENSHIFT_GLOBAL_DISCOVERY_ENABLED}`1094|`KIE_SERVER_CONTROLLER_OPENSHIFT_PREFER_KIESERVER_SERVICE` | If OpenShift integration of Business Central is turned on, setting this parameter to true enables connection to KIE Server via an OpenShift internal Service endpoint. (Sets the org.kie.server.controller.openshift.prefer.kieserver.service system property) | `${KIE_SERVER_CONTROLLER_OPENSHIFT_PREFER_KIESERVER_SERVICE}`1095|`KIE_SERVER_CONTROLLER_TEMPLATE_CACHE_TTL` | KIE ServerTemplate Cache TTL in milliseconds. (Sets the org.kie.server.controller.template.cache.ttl system property) | `${KIE_SERVER_CONTROLLER_TEMPLATE_CACHE_TTL}`1096|`KIE_WORKBENCH_CONTROLLER_OPENSHIFT_ENABLED` | -- | true1097|`KIE_SERVER_CONTROLLER_USER` | KIE server controller username. (Sets the org.kie.server.controller.user system property) | `${KIE_SERVER_CONTROLLER_USER}`1098|`KIE_SERVER_CONTROLLER_PWD` | KIE server controller password. (Sets the org.kie.server.controller.pwd system property) | `${KIE_SERVER_CONTROLLER_PWD}`1099|`KIE_SERVER_CONTROLLER_TOKEN` | KIE server controller token for bearer authentication. (Sets the org.kie.server.controller.token system property) | `${KIE_SERVER_CONTROLLER_TOKEN}`1100|`KIE_SERVER_USER` | KIE server username. (Sets the org.kie.server.user system property) | `${KIE_SERVER_USER}`1101|`KIE_SERVER_PWD` | KIE server password. (Sets the org.kie.server.pwd system property) | `${KIE_SERVER_PWD}`1102|`WORKBENCH_ROUTE_NAME` | -- | `${APPLICATION_NAME}-rhdmcentr`1103|`MAVEN_MIRROR_URL` | Maven mirror that Decision Central and KIE server must use. If you configure a mirror, this mirror must contain all artifacts that are required for building and deploying your services. | `${MAVEN_MIRROR_URL}`1104|`MAVEN_REPO_ID` | The id to use for the maven repository. If set, it can be excluded from the optionally configured mirror by adding it to MAVEN_MIRROR_OF. For example: external:*,!repo-rhdmcentr,!repo-custom. If MAVEN_MIRROR_URL is set but MAVEN_MIRROR_ID is not set, an id will be generated randomly, but won't be usable in MAVEN_MIRROR_OF. | `${MAVEN_REPO_ID}`1105|`MAVEN_REPO_URL` | Fully qualified URL to a Maven repository or service. | `${MAVEN_REPO_URL}`1106|`MAVEN_REPO_USERNAME` | Username to access the Maven repository, if required. | `${MAVEN_REPO_USERNAME}`1107|`MAVEN_REPO_PASSWORD` | Password to access the Maven repository, if required. | `${MAVEN_REPO_PASSWORD}`1108|`KIE_MAVEN_USER` | Username to access the Maven service hosted by Decision Central inside EAP. | `${DECISION_CENTRAL_MAVEN_USERNAME}`1109|`KIE_MAVEN_PWD` | Password to access the Maven service hosted by Decision Central inside EAP. | `${DECISION_CENTRAL_MAVEN_PASSWORD}`1110|`GIT_HOOKS_DIR` | The directory to use for git hooks, if required. | `${GIT_HOOKS_DIR}`1111|`HTTPS_KEYSTORE_DIR` | -- | `/etc/decisioncentral-secret-volume`1112|`HTTPS_KEYSTORE` | The name of the keystore file within the secret for Decision Central. | `${DECISION_CENTRAL_HTTPS_KEYSTORE}`1113|`HTTPS_NAME` | The name associated with the server certificate for Decision Central. | `${DECISION_CENTRAL_HTTPS_NAME}`1114|`HTTPS_PASSWORD` | The password for the keystore and certificate for Decision Central. | `${DECISION_CENTRAL_HTTPS_PASSWORD}`1115|`JGROUPS_PING_PROTOCOL` | -- | openshift.DNS_PING1116|`OPENSHIFT_DNS_PING_SERVICE_NAME` | -- | `${APPLICATION_NAME}-rhdmcentr-ping`1117|`OPENSHIFT_DNS_PING_SERVICE_PORT` | -- | 88881118|`APPFORMER_INFINISPAN_SERVICE_NAME` | -- | `${APPLICATION_NAME}-datagrid`1119|`APPFORMER_INFINISPAN_PORT` | -- | 112221120|`APPFORMER_JMS_BROKER_ADDRESS` | -- | `${APPLICATION_NAME}-amq-tcp`1121|`APPFORMER_JMS_BROKER_PORT` | -- | 616161122|`APPFORMER_JMS_BROKER_USER` | The username to connect to the JMS broker. | `${APPFORMER_JMS_BROKER_USER}`1123|`APPFORMER_JMS_BROKER_PASSWORD` | The password to connect to the JMS broker. | `${APPFORMER_JMS_BROKER_PASSWORD}`1124|`SSO_URL` | RH-SSO URL. | `${SSO_URL}`1125|`SSO_OPENIDCONNECT_DEPLOYMENTS` | -- | ROOT.war1126|`SSO_REALM` | RH-SSO Realm name. | `${SSO_REALM}`1127|`SSO_SECRET` | Decision Central RH-SSO Client Secret. | `${DECISION_CENTRAL_SSO_SECRET}`1128|`SSO_CLIENT` | Decision Central RH-SSO Client name. | `${DECISION_CENTRAL_SSO_CLIENT}`1129|`SSO_USERNAME` | RH-SSO Realm Admin Username used to create the Client if it doesn't exist. | `${SSO_USERNAME}`1130|`SSO_PASSWORD` | RH-SSO Realm Admin Password used to create the Client. | `${SSO_PASSWORD}`1131|`SSO_DISABLE_SSL_CERTIFICATE_VALIDATION` | RH-SSO Disable SSL Certificate Validation. | `${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}`1132|`SSO_PRINCIPAL_ATTRIBUTE` | RH-SSO Principal Attribute to use as username. | `${SSO_PRINCIPAL_ATTRIBUTE}`1133|`HOSTNAME_HTTP` | Custom hostname for http service route for Decision Central. Leave blank for default hostname, e.g.: insecure-<application-name>-rhdmcentr-<project>.<default-domain-suffix> | `${DECISION_CENTRAL_HOSTNAME_HTTP}`1134|`HOSTNAME_HTTPS` | Custom hostname for https service route for Decision Central. Leave blank for default hostname, e.g.: <application-name>-rhdmcentr-<project>.<default-domain-suffix> | `${DECISION_CENTRAL_HOSTNAME_HTTPS}`1135|`AUTH_LDAP_URL` | LDAP Endpoint to connect for authentication. | `${AUTH_LDAP_URL}`1136|`AUTH_LDAP_BIND_DN` | Bind DN used for authentication. | `${AUTH_LDAP_BIND_DN}`1137|`AUTH_LDAP_BIND_CREDENTIAL` | LDAP Credentials used for authentication. | `${AUTH_LDAP_BIND_CREDENTIAL}`1138|`AUTH_LDAP_JAAS_SECURITY_DOMAIN` | The JMX ObjectName of the JaasSecurityDomain used to decrypt the password. | `${AUTH_LDAP_JAAS_SECURITY_DOMAIN}`1139|`AUTH_LDAP_BASE_CTX_DN` | LDAP Base DN of the top-level context to begin the user search. | `${AUTH_LDAP_BASE_CTX_DN}`1140|`AUTH_LDAP_BASE_FILTER` | LDAP search filter used to locate the context of the user to authenticate. The input username or userDN obtained from the login module callback is substituted into the filter anywhere a {0} expression is used. A common example for the search filter is (uid={0}). | `${AUTH_LDAP_BASE_FILTER}`1141|`AUTH_LDAP_SEARCH_SCOPE` | The search scope to use. | `${AUTH_LDAP_SEARCH_SCOPE}`1142|`AUTH_LDAP_SEARCH_TIME_LIMIT` | The timeout in milliseconds for user or role searches. | `${AUTH_LDAP_SEARCH_TIME_LIMIT}`1143|`AUTH_LDAP_DISTINGUISHED_NAME_ATTRIBUTE` | The name of the attribute in the user entry that contains the DN of the user. This may be necessary if the DN of the user itself contains special characters, backslash for example, that prevent correct user mapping. If the attribute does not exist, the entry's DN is used. | `${AUTH_LDAP_DISTINGUISHED_NAME_ATTRIBUTE}`1144|`AUTH_LDAP_PARSE_USERNAME` | A flag indicating if the DN is to be parsed for the username. If set to true, the DN is parsed for the username. If set to false the DN is not parsed for the username. This option is used together with usernameBeginString and usernameEndString. | `${AUTH_LDAP_PARSE_USERNAME}`1145|`AUTH_LDAP_USERNAME_BEGIN_STRING` | Defines the String which is to be removed from the start of the DN to reveal the username. This option is used together with usernameEndString and only taken into account if parseUsername is set to true. | `${AUTH_LDAP_USERNAME_BEGIN_STRING}`1146|`AUTH_LDAP_USERNAME_END_STRING` | Defines the String which is to be removed from the end of the DN to reveal the username. This option is used together with usernameEndString and only taken into account if parseUsername is set to true. | `${AUTH_LDAP_USERNAME_END_STRING}`1147|`AUTH_LDAP_ROLE_ATTRIBUTE_ID` | Name of the attribute containing the user roles. | `${AUTH_LDAP_ROLE_ATTRIBUTE_ID}`1148|`AUTH_LDAP_ROLES_CTX_DN` | The fixed DN of the context to search for user roles. This is not the DN where the actual roles are, but the DN where the objects containing the user roles are. For example, in a Microsoft Active Directory server, this is the DN where the user account is. | `${AUTH_LDAP_ROLES_CTX_DN}`1149|`AUTH_LDAP_ROLE_FILTER` | A search filter used to locate the roles associated with the authenticated user. The input username or userDN obtained from the login module callback is substituted into the filter anywhere a {0} expression is used. The authenticated userDN is substituted into the filter anywhere a {1} is used. An example search filter that matches on the input username is (member={0}). An alternative that matches on the authenticated userDN is (member={1}). | `${AUTH_LDAP_ROLE_FILTER}`1150|`AUTH_LDAP_ROLE_RECURSION` | The number of levels of recursion the role search will go below a matching context. Disable recursion by setting this to 0. | `${AUTH_LDAP_ROLE_RECURSION}`1151|`AUTH_LDAP_DEFAULT_ROLE` | A role included for all authenticated users | `${AUTH_LDAP_DEFAULT_ROLE}`1152|`AUTH_LDAP_ROLE_NAME_ATTRIBUTE_ID` | Name of the attribute within the roleCtxDN context which contains the role name. If the roleAttributeIsDN property is set to true, this property is used to find the role object's name attribute. | `${AUTH_LDAP_ROLE_NAME_ATTRIBUTE_ID}`1153|`AUTH_LDAP_PARSE_ROLE_NAME_FROM_DN` | A flag indicating if the DN returned by a query contains the roleNameAttributeID. If set to true, the DN is checked for the roleNameAttributeID. If set to false, the DN is not checked for the roleNameAttributeID. This flag can improve the performance of LDAP queries. | `${AUTH_LDAP_PARSE_ROLE_NAME_FROM_DN}`1154|`AUTH_LDAP_ROLE_ATTRIBUTE_IS_DN` | Whether or not the roleAttributeID contains the fully-qualified DN of a role object. If false, the role name is taken from the value of the roleNameAttributeId attribute of the context name. Certain directory schemas, such as Microsoft Active Directory, require this attribute to be set to true. | `${AUTH_LDAP_ROLE_ATTRIBUTE_IS_DN}`1155|`AUTH_LDAP_REFERRAL_USER_ATTRIBUTE_ID_TO_CHECK` | If you are not using referrals, you can ignore this option. When using referrals, this option denotes the attribute name which contains users defined for a certain role, for example member, if the role object is inside the referral. Users are checked against the content of this attribute name. If this option is not set, the check will always fail, so role objects cannot be stored in a referral tree. | `${AUTH_LDAP_REFERRAL_USER_ATTRIBUTE_ID_TO_CHECK}`1156|`AUTH_ROLE_MAPPER_ROLES_PROPERTIES` | When present, the RoleMapping Login Module will be configured to use the provided file. This parameter defines the fully-qualified file path and name of a properties file or resource which maps roles to replacement roles. The format is original_role=role1,role2,role3 | `${AUTH_ROLE_MAPPER_ROLES_PROPERTIES}`1157|`AUTH_ROLE_MAPPER_REPLACE_ROLE` | Whether to add to the current roles, or replace the current roles with the mapped ones. Replaces if set to true. | `${AUTH_ROLE_MAPPER_REPLACE_ROLE}`1158.63+| `${APPLICATION_NAME}-kieserver`1159|`WORKBENCH_SERVICE_NAME` | -- | `${APPLICATION_NAME}-rhdmcentr`1160|`KIE_ADMIN_USER` | KIE administrator username. | `${KIE_ADMIN_USER}`1161|`KIE_ADMIN_PWD` | KIE administrator password. | `${KIE_ADMIN_PWD}`1162|`KIE_SERVER_MODE` | The KIE Server mode. Valid values are 'DEVELOPMENT' or 'PRODUCTION'. In production mode, you can not deploy SNAPSHOT versions of artifacts on the KIE server and can not change the version of an artifact in an existing container. (Sets the org.kie.server.mode system property). | `${KIE_SERVER_MODE}`1163|`KIE_MBEANS` | KIE server mbeans enabled/disabled. (Sets the kie.mbeans and kie.scanner.mbeans system properties) | `${KIE_MBEANS}`1164|`DROOLS_SERVER_FILTER_CLASSES` | KIE server class filtering. (Sets the org.drools.server.filter.classes system property) | `${DROOLS_SERVER_FILTER_CLASSES}`1165|`PROMETHEUS_SERVER_EXT_DISABLED` | If set to false, the prometheus server extension will be enabled. (Sets the org.kie.prometheus.server.ext.disabled system property) | `${PROMETHEUS_SERVER_EXT_DISABLED}`1166|`KIE_SERVER_BYPASS_AUTH_USER` | Allows the KIE server to bypass the authenticated user for task-related operations, for example, queries. (Sets the org.kie.server.bypass.auth.user system property) | `${KIE_SERVER_BYPASS_AUTH_USER}`1167|`KIE_SERVER_ID` | -- | --1168|`KIE_SERVER_ROUTE_NAME` | -- | `${APPLICATION_NAME}-kieserver`1169|`KIE_SERVER_STARTUP_STRATEGY` | -- | OpenShiftStartupStrategy1170|`KIE_SERVER_PWD` | KIE server password. (Sets the org.kie.server.pwd system property) | `${KIE_SERVER_PWD}`1171|`KIE_SERVER_USER` | KIE server username. (Sets the org.kie.server.user system property) | `${KIE_SERVER_USER}`1172|`MAVEN_MIRROR_URL` | Maven mirror that Decision Central and KIE server must use. If you configure a mirror, this mirror must contain all artifacts that are required for building and deploying your services. | `${MAVEN_MIRROR_URL}`1173|`MAVEN_MIRROR_OF` | Maven mirror configuration for KIE server. | `${MAVEN_MIRROR_OF}`1174|`MAVEN_REPOS` | -- | RHDMCENTR,EXTERNAL1175|`RHDMCENTR_MAVEN_REPO_ID` | -- | repo-rhdmcentr1176|`RHDMCENTR_MAVEN_REPO_SERVICE` | -- | `${APPLICATION_NAME}-rhdmcentr`1177|`RHDMCENTR_MAVEN_REPO_PATH` | -- | `/maven2/`1178|`RHDMCENTR_MAVEN_REPO_USERNAME` | Username to access the Maven service hosted by Decision Central inside EAP. | `${DECISION_CENTRAL_MAVEN_USERNAME}`1179|`RHDMCENTR_MAVEN_REPO_PASSWORD` | Password to access the Maven service hosted by Decision Central inside EAP. | `${DECISION_CENTRAL_MAVEN_PASSWORD}`1180|`EXTERNAL_MAVEN_REPO_ID` | The id to use for the maven repository. If set, it can be excluded from the optionally configured mirror by adding it to MAVEN_MIRROR_OF. For example: external:*,!repo-rhdmcentr,!repo-custom. If MAVEN_MIRROR_URL is set but MAVEN_MIRROR_ID is not set, an id will be generated randomly, but won't be usable in MAVEN_MIRROR_OF. | `${MAVEN_REPO_ID}`1181|`EXTERNAL_MAVEN_REPO_URL` | Fully qualified URL to a Maven repository or service. | `${MAVEN_REPO_URL}`1182|`EXTERNAL_MAVEN_REPO_USERNAME` | Username to access the Maven repository, if required. | `${MAVEN_REPO_USERNAME}`1183|`EXTERNAL_MAVEN_REPO_PASSWORD` | Password to access the Maven repository, if required. | `${MAVEN_REPO_PASSWORD}`1184|`HTTPS_KEYSTORE_DIR` | -- | `/etc/kieserver-secret-volume`1185|`HTTPS_KEYSTORE` | The name of the keystore file within the secret for KIE Server. | `${KIE_SERVER_HTTPS_KEYSTORE}`1186|`HTTPS_NAME` | The name associated with the server certificate for KIE Server. | `${KIE_SERVER_HTTPS_NAME}`1187|`HTTPS_PASSWORD` | The password for the keystore and certificate for KIE Server. | `${KIE_SERVER_HTTPS_PASSWORD}`1188|`SSO_URL` | RH-SSO URL. | `${SSO_URL}`1189|`SSO_OPENIDCONNECT_DEPLOYMENTS` | -- | ROOT.war1190|`SSO_REALM` | RH-SSO Realm name. | `${SSO_REALM}`1191|`SSO_SECRET` | KIE Server RH-SSO Client Secret. | `${KIE_SERVER_SSO_SECRET}`1192|`SSO_CLIENT` | KIE Server RH-SSO Client name. | `${KIE_SERVER_SSO_CLIENT}`1193|`SSO_USERNAME` | RH-SSO Realm Admin Username used to create the Client if it doesn't exist. | `${SSO_USERNAME}`1194|`SSO_PASSWORD` | RH-SSO Realm Admin Password used to create the Client. | `${SSO_PASSWORD}`1195|`SSO_DISABLE_SSL_CERTIFICATE_VALIDATION` | RH-SSO Disable SSL Certificate Validation. | `${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}`1196|`SSO_PRINCIPAL_ATTRIBUTE` | RH-SSO Principal Attribute to use as username. | `${SSO_PRINCIPAL_ATTRIBUTE}`1197|`HOSTNAME_HTTP` | Custom hostname for http service route for KIE Server. Leave blank for default hostname, e.g.: insecure-<application-name>-kieserver-<project>.<default-domain-suffix> | `${KIE_SERVER_HOSTNAME_HTTP}`1198|`HOSTNAME_HTTPS` | Custom hostname for https service route for KIE Server. Leave blank for default hostname, e.g.: <application-name>-kieserver-<project>.<default-domain-suffix> | `${KIE_SERVER_HOSTNAME_HTTPS}`1199|`AUTH_LDAP_URL` | LDAP Endpoint to connect for authentication. | `${AUTH_LDAP_URL}`1200|`AUTH_LDAP_BIND_DN` | Bind DN used for authentication. | `${AUTH_LDAP_BIND_DN}`