/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.component.jms.springboot; import javax.annotation.Generated; import javax.jms.ConnectionFactory; import javax.jms.ExceptionListener; import org.apache.camel.LoggingLevel; import org.apache.camel.component.jms.ConsumerType; import org.apache.camel.component.jms.DefaultTaskExecutorType; import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.component.jms.JmsKeyFormatStrategy; import org.apache.camel.component.jms.JmsMessageType; import org.apache.camel.component.jms.JmsProviderMetadata; import org.apache.camel.component.jms.MessageCreatedStrategy; import org.apache.camel.component.jms.MessageListenerContainerFactory; import org.apache.camel.component.jms.QueueBrowseStrategy; import org.apache.camel.component.jms.ReplyToType; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.DeprecatedConfigurationProperty; import org.springframework.boot.context.properties.NestedConfigurationProperty; import org.springframework.core.task.TaskExecutor; import org.springframework.jms.core.JmsOperations; import org.springframework.jms.support.converter.MessageConverter; import org.springframework.jms.support.destination.DestinationResolver; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.util.ErrorHandler; /** * The jms component allows messages to be sent to (or consumed from) a JMS * Queue or Topic. * * Generated by camel-package-maven-plugin - do not edit this file! */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @ConfigurationProperties(prefix = "camel.component.jms") public class JmsComponentConfiguration extends ComponentConfigurationPropertiesCommon { /** * To use a shared JMS configuration */ private JmsConfigurationNestedConfiguration configuration; /** * Specifies whether the consumer accept messages while it is stopping. You * may consider enabling this option if you start and stop JMS routes at * runtime while there are still messages enqueued on the queue. If this * option is false and you stop the JMS route then messages may be rejected * and the JMS broker would have to attempt redeliveries which yet again may * be rejected and eventually the message may be moved at a dead letter * queue on the JMS broker. To avoid this its recommended to enable this * option. */ private Boolean acceptMessagesWhileStopping = false; /** * Whether the DefaultMessageListenerContainer used in the reply managers * for request-reply messaging allow the * DefaultMessageListenerContainer.runningAllowed flag to quick stop in case * JmsConfigurationisAcceptMessagesWhileStopping is enabled and * org.apache.camel.CamelContext is currently being stopped. This quick stop * ability is enabled by default in the regular JMS consumers but to enable * for reply managers you must enable this flag. */ private Boolean allowReplyManagerQuickStop = false; /** * The JMS acknowledgement mode defined as an Integer. Allows you to set * vendor-specific extensions to the acknowledgment mode. For the regular * modes it is preferable to use the acknowledgementModeName instead. */ private Integer acknowledgementMode; /** * Enables eager loading of JMS properties as soon as a message is loaded * which generally is inefficient as the JMS properties may not be required * but sometimes can catch early any issues with the underlying JMS provider * and the use of JMS properties */ private Boolean eagerLoadingOfProperties = false; /** * The JMS acknowledgement name which is one of: SESSION_TRANSACTED * CLIENT_ACKNOWLEDGE AUTO_ACKNOWLEDGE DUPS_OK_ACKNOWLEDGE */ private String acknowledgementModeName = "AUTO_ACKNOWLEDGE"; /** * Specifies whether the consumer container should auto-startup. */ private Boolean autoStartup = true; /** * Sets the cache level by ID for the underlying JMS resources. See * cacheLevelName option for more details. */ private Integer cacheLevel; /** * Sets the cache level by name for the underlying JMS resources. Possible * values are: CACHE_AUTO CACHE_CONNECTION CACHE_CONSUMER CACHE_NONE and * CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring * documentation and Transactions Cache Levels for more information. */ private String cacheLevelName = "CACHE_AUTO"; /** * Sets the cache level by name for the reply consumer when doing * request/reply over JMS. This option only applies when using fixed reply * queues (not temporary). Camel will by default use: CACHE_CONSUMER for * exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared * without replyToSelectorName. Some JMS brokers such as IBM WebSphere may * require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If * using temporary queues then CACHE_NONE is not allowed and you must use a * higher value such as CACHE_CONSUMER or CACHE_SESSION. */ private String replyToCacheLevelName; /** * Sets the JMS client ID to use. Note that this value if specified must be * unique and can only be used by a single JMS connection instance. It is * typically only required for durable topic subscriptions. If using Apache * ActiveMQ you may prefer to use Virtual Topics instead. */ private String clientId; /** * Specifies the default number of concurrent consumers when consuming from * JMS (not for request/reply over JMS). See also the maxMessagesPerTask * option to control dynamic scaling up/down of threads. When doing * request/reply over JMS then the option replyToConcurrentConsumers is used * to control number of concurrent consumers on the reply message listener. */ private Integer concurrentConsumers = 1; /** * Specifies the default number of concurrent consumers when doing * request/reply over JMS. See also the maxMessagesPerTask option to control * dynamic scaling up/down of threads. */ private Integer replyToConcurrentConsumers = 1; /** * The connection factory to be use. A connection factory must be configured * either on the component or endpoint. */ private ConnectionFactory connectionFactory; /** * Username to use with the ConnectionFactory. You can also configure * username/password directly on the ConnectionFactory. */ private String username; /** * Password to use with the ConnectionFactory. You can also configure * username/password directly on the ConnectionFactory. */ private String password; /** * Specifies whether persistent delivery is used by default. */ private Boolean deliveryPersistent = true; /** * Specifies the delivery mode to be used. Possible values are Possibles * values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 * and PERSISTENT = 2. */ private Integer deliveryMode; /** * The durable subscriber name for specifying durable topic subscriptions. * The clientId option must be configured as well. */ private String durableSubscriptionName; /** * Specifies the JMS Exception Listener that is to be notified of any * underlying JMS exceptions. */ private ExceptionListener exceptionListener; /** * Specifies a org.springframework.util.ErrorHandler to be invoked in case * of any uncaught exceptions thrown while processing a Message. By default * these exceptions will be logged at the WARN level if no errorHandler has * been configured. You can configure logging level and whether stack traces * should be logged using errorHandlerLoggingLevel and * errorHandlerLogStackTrace options. This makes it much easier to configure * than having to code a custom errorHandler. */ @NestedConfigurationProperty private ErrorHandler errorHandler; /** * Allows to configure the default errorHandler logging level for logging * uncaught exceptions. */ private LoggingLevel errorHandlerLoggingLevel = LoggingLevel.WARN; /** * Allows to control whether stacktraces should be logged or not by the * default errorHandler. */ private Boolean errorHandlerLogStackTrace = true; /** * Set if the deliveryMode priority or timeToLive qualities of service * should be used when sending messages. This option is based on Spring's * JmsTemplate. The deliveryMode priority and timeToLive options are applied * to the current endpoint. This contrasts with the preserveMessageQos * option which operates at message granularity reading QoS properties * exclusively from the Camel In message headers. */ private Boolean explicitQosEnabled = false; /** * Specifies whether the listener session should be exposed when consuming * messages. */ private Boolean exposeListenerSession = false; /** * Specifies the limit for idle executions of a receive task not having * received any message within its execution. If this limit is reached the * task will shut down and leave receiving to other executing tasks (in the * case of dynamic scheduling; see the maxConcurrentConsumers setting). * There is additional doc available from Spring. */ private Integer idleTaskExecutionLimit = 1; /** * Specify the limit for the number of consumers that are allowed to be idle * at any given time. */ private Integer idleConsumerLimit = 1; /** * Specifies the maximum number of concurrent consumers when consuming from * JMS (not for request/reply over JMS). See also the maxMessagesPerTask * option to control dynamic scaling up/down of threads. When doing * request/reply over JMS then the option replyToMaxConcurrentConsumers is * used to control number of concurrent consumers on the reply message * listener. */ private Integer maxConcurrentConsumers; /** * Specifies the maximum number of concurrent consumers when using * request/reply over JMS. See also the maxMessagesPerTask option to control * dynamic scaling up/down of threads. */ private Integer replyToMaxConcurrentConsumers; /** * Specifies the maximum number of concurrent consumers for continue routing * when timeout occurred when using request/reply over JMS. */ private Integer replyOnTimeoutToMaxConcurrentConsumers = 1; /** * The number of messages per task. -1 is unlimited. If you use a range for * concurrent consumers (eg min max) then this option can be used to set a * value to eg 100 to control how fast the consumers will shrink when less * work is required. */ private Integer maxMessagesPerTask = -1; /** * To use a custom Spring * org.springframework.jms.support.converter.MessageConverter so you can be * in control how to map to/from a javax.jms.Message. */ @NestedConfigurationProperty private MessageConverter messageConverter; /** * Specifies whether Camel should auto map the received JMS message to a * suited payload type such as javax.jms.TextMessage to a String etc. See * section about how mapping works below for more details. */ private Boolean mapJmsMessage = true; /** * When sending specifies whether message IDs should be added. This is just * an hint to the JMS Broker. If the JMS provider accepts this hint these * messages must have the message ID set to null; if the provider ignores * the hint the message ID must be set to its normal unique value */ private Boolean messageIdEnabled = true; /** * Specifies whether timestamps should be enabled by default on sending * messages. */ private Boolean messageTimestampEnabled = true; /** * If true Camel will always make a JMS message copy of the message when it * is passed to the producer for sending. Copying the message is needed in * some situations such as when a replyToDestinationSelectorName is set * (incidentally Camel will set the alwaysCopyMessage option to true if a * replyToDestinationSelectorName is set) */ private Boolean alwaysCopyMessage = false; /** * Specifies whether JMSMessageID should always be used as JMSCorrelationID * for InOut messages. */ private Boolean useMessageIDAsCorrelationID = false; /** * Values greater than 1 specify the message priority when sending (where 0 * is the lowest priority and 9 is the highest). The explicitQosEnabled * option must also be enabled in order for this option to have any effect. */ private Integer priority = 4; /** * Specifies whether to inhibit the delivery of messages published by its * own connection. */ private Boolean pubSubNoLocal = false; /** * The timeout for receiving messages (in milliseconds). */ private Long receiveTimeout = 1000L; /** * Specifies the interval between recovery attempts i.e. when a connection * is being refreshed in milliseconds. The default is 5000 ms that is 5 * seconds. */ private Long recoveryInterval = 5000L; /** * Deprecated: Enabled by default if you specify a durableSubscriptionName * and a clientId. */ @Deprecated private Boolean subscriptionDurable = false; /** * Allows you to specify a custom task executor for consuming messages. */ @NestedConfigurationProperty private TaskExecutor taskExecutor; /** * When sending messages specifies the time-to-live of the message (in * milliseconds). */ private Long timeToLive = -1L; /** * Specifies whether to use transacted mode */ private Boolean transacted = false; /** * If true Camel will create a JmsTransactionManager if there is no * transactionManager injected when option transacted=true. */ private Boolean lazyCreateTransactionManager = true; /** * The Spring transaction manager to use. */ @NestedConfigurationProperty private PlatformTransactionManager transactionManager; /** * The name of the transaction to use. */ private String transactionName; /** * The timeout value of the transaction (in seconds) if using transacted * mode. */ private Integer transactionTimeout = -1; /** * Specifies whether to test the connection on startup. This ensures that * when Camel starts that all the JMS consumers have a valid connection to * the JMS broker. If a connection cannot be granted then Camel throws an * exception on startup. This ensures that Camel is not started with failed * connections. The JMS producers is tested as well. */ private Boolean testConnectionOnStartup = false; /** * Whether to startup the JmsConsumer message listener asynchronously when * starting a route. For example if a JmsConsumer cannot get a connection to * a remote JMS broker then it may block while retrying and/or failover. * This will cause Camel to block while starting routes. By setting this * option to true you will let routes startup while the JmsConsumer connects * to the JMS broker using a dedicated thread in asynchronous mode. If this * option is used then beware that if the connection could not be * established then an exception is logged at WARN level and the consumer * will not be able to receive messages; You can then restart the route to * retry. */ private Boolean asyncStartListener = false; /** * Whether to stop the JmsConsumer message listener asynchronously when * stopping a route. */ private Boolean asyncStopListener = false; /** * When using mapJmsMessage=false Camel will create a new JMS message to * send to a new JMS destination if you touch the headers (get or set) * during the route. Set this option to true to force Camel to send the * original JMS message that was received. */ private Boolean forceSendOriginalMessage = false; /** * The timeout for waiting for a reply when using the InOut Exchange Pattern * (in milliseconds). The default is 20 seconds. You can include the header * CamelJmsRequestTimeout to override this endpoint configured timeout value * and thus have per message individual timeout values. See also the * requestTimeoutCheckerInterval option. */ private Long requestTimeout = 20000L; /** * Configures how often Camel should check for timed out Exchanges when * doing request/reply over JMS. By default Camel checks once per second. * But if you must react faster when a timeout occurs then you can lower * this interval to check more frequently. The timeout is determined by the * option requestTimeout. */ private Long requestTimeoutCheckerInterval = 1000L; /** * You can transfer the exchange over the wire instead of just the body and * headers. 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. You must * enable this option on both the producer and consumer side so Camel knows * the payloads is an Exchange and not a regular payload. */ private Boolean transferExchange = false; /** * If enabled and you are using Request Reply messaging (InOut) and an * Exchange failed on the consumer side then the caused Exception will be * send back in response as a javax.jms.ObjectMessage. If the client is * Camel the returned Exception is rethrown. This allows you to use Camel * JMS as a bridge in your routing - for example using persistent queues to * enable robust routing. Notice that if you also have transferExchange * enabled this option takes precedence. The caught exception is required to * be serializable. The original Exception on the consumer side can be * wrapped in an outer exception such as * org.apache.camel.RuntimeCamelException when returned to the producer. */ private Boolean transferException = false; /** * If enabled and you are using Request Reply messaging (InOut) and an * Exchange failed with a SOAP fault (not exception) on the consumer side * then the fault flag on link org.apache.camel.MessageisFault() will be * send back in the response as a JMS header with the key link * JmsConstantsJMS_TRANSFER_FAULT. If the client is Camel the returned fault * flag will be set on the link org.apache.camel.MessagesetFault(boolean). * You may want to enable this when using Camel components that support * faults such as SOAP based such as cxf or spring-ws. */ private Boolean transferFault = false; /** * Allows you to use your own implementation of the * org.springframework.jms.core.JmsOperations interface. Camel uses * JmsTemplate as default. Can be used for testing purpose but not used much * as stated in the spring API docs. */ @NestedConfigurationProperty private JmsOperations jmsOperations; /** * A pluggable * org.springframework.jms.support.destination.DestinationResolver that * allows you to use your own resolver (for example to lookup the real * destination in a JNDI registry). */ @NestedConfigurationProperty private DestinationResolver destinationResolver; /** * Allows for explicitly specifying which kind of strategy to use for * replyTo queues when doing request/reply over JMS. Possible values are: * Temporary Shared or Exclusive. By default Camel will use temporary * queues. However if replyTo has been configured then Shared is used by * default. This option allows you to use exclusive queues instead of shared * ones. See Camel JMS documentation for more details and especially the * notes about the implications if running in a clustered environment and * the fact that Shared reply queues has lower performance than its * alternatives Temporary and Exclusive. */ private ReplyToType replyToType; /** * Set to true if you want to send message using the QoS settings specified * on the message instead of the QoS settings on the JMS endpoint. The * following three headers are considered JMSPriority JMSDeliveryMode and * JMSExpiration. You can provide all or only some of them. If not provided * Camel will fall back to use the values from the endpoint instead. So when * using this option the headers override the values from the endpoint. The * explicitQosEnabled option by contrast will only use options set on the * endpoint and not values from the message header. */ private Boolean preserveMessageQos = false; /** * Whether the JmsConsumer processes the Exchange asynchronously. If enabled * then the JmsConsumer may pickup the next message from the JMS queue while * the previous message is being processed asynchronously (by the * Asynchronous Routing Engine). This means that messages may be processed * not 100 strictly in order. If disabled (as default) then the Exchange is * fully processed before the JmsConsumer will pickup the next message from * the JMS queue. Note if transacted has been enabled then * asyncConsumer=true does not run asynchronously as transaction must be * executed synchronously (Camel 3.0 may support async transactions). */ private Boolean asyncConsumer = false; /** * Whether to allow sending messages with no body. If this option is false * and the message body is null then an JMSException is thrown. */ private Boolean allowNullBody = true; /** * Only applicable when sending to JMS destination using InOnly (eg fire and * forget). Enabling this option will enrich the Camel Exchange with the * actual JMSMessageID that was used by the JMS client when the message was * sent to the JMS destination. */ private Boolean includeSentJMSMessageID = false; /** * Whether to include all JMSXxxx properties when mapping from JMS to Camel * Message. Setting this to true will include properties such as JMSXAppID * and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy * then this option does not apply. */ private Boolean includeAllJMSXProperties = false; /** * Specifies what default TaskExecutor type to use in the * DefaultMessageListenerContainer for both consumer endpoints and the * ReplyTo consumer of producer endpoints. Possible values: SimpleAsync * (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's * ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If * not set it defaults to the previous behaviour which uses a cached thread * pool for consumer endpoints and SimpleAsync for reply consumers. The use * of ThreadPool is recommended to reduce thread trash in elastic * configurations with dynamically increasing and decreasing concurrent * consumers. */ private DefaultTaskExecutorType defaultTaskExecutorType; /** * Pluggable strategy for encoding and decoding JMS keys so they can be * compliant with the JMS specification. Camel provides two implementations * out of the box: default and passthrough. The default strategy will safely * marshal dots and hyphens (. and -). The passthrough strategy leaves the * key as is. Can be used for JMS brokers which do not care whether JMS * header keys contain illegal characters. You can provide your own * implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy * and refer to it using the notation. */ @NestedConfigurationProperty private JmsKeyFormatStrategy jmsKeyFormatStrategy; /** * To use a custom QueueBrowseStrategy when browsing queues */ @NestedConfigurationProperty private QueueBrowseStrategy queueBrowseStrategy; /** * To use the given MessageCreatedStrategy which are invoked when Camel * creates new instances of javax.jms.Message objects when Camel is sending * a JMS message. */ @NestedConfigurationProperty private MessageCreatedStrategy messageCreatedStrategy; /** * Number of times to wait for provisional correlation id to be updated to * the actual correlation id when doing request/reply over JMS and when the * option useMessageIDAsCorrelationID is enabled. */ private Integer waitForProvisionCorrelationToBeUpdatedCounter = 50; /** * Interval in millis to sleep each time while waiting for provisional * correlation id to be updated. */ private Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = 100L; /** * Use this JMS property to correlate messages in InOut exchange pattern * (request-reply) instead of JMSCorrelationID property. This allows you to * exchange messages with systems that do not correlate messages using * JMSCorrelationID JMS property. If used JMSCorrelationID will not be used * or set by Camel. The value of here named property will be generated if * not supplied in the header of the message under the same name. */ private String correlationProperty; /** * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter * header to and from Camel message. */ @NestedConfigurationProperty private HeaderFilterStrategy headerFilterStrategy; /** * Whether the component should resolve property placeholders on itself when * starting. Only properties which are of String type can use property * placeholders. */ private Boolean resolvePropertyPlaceholders = true; public JmsConfigurationNestedConfiguration getConfiguration() { return configuration; } public void setConfiguration( JmsConfigurationNestedConfiguration configuration) { this.configuration = configuration; } public Boolean getAcceptMessagesWhileStopping() { return acceptMessagesWhileStopping; } public void setAcceptMessagesWhileStopping( Boolean acceptMessagesWhileStopping) { this.acceptMessagesWhileStopping = acceptMessagesWhileStopping; } public Boolean getAllowReplyManagerQuickStop() { return allowReplyManagerQuickStop; } public void setAllowReplyManagerQuickStop(Boolean allowReplyManagerQuickStop) { this.allowReplyManagerQuickStop = allowReplyManagerQuickStop; } public Integer getAcknowledgementMode() { return acknowledgementMode; } public void setAcknowledgementMode(Integer acknowledgementMode) { this.acknowledgementMode = acknowledgementMode; } public Boolean getEagerLoadingOfProperties() { return eagerLoadingOfProperties; } public void setEagerLoadingOfProperties(Boolean eagerLoadingOfProperties) { this.eagerLoadingOfProperties = eagerLoadingOfProperties; } public String getAcknowledgementModeName() { return acknowledgementModeName; } public void setAcknowledgementModeName(String acknowledgementModeName) { this.acknowledgementModeName = acknowledgementModeName; } public Boolean getAutoStartup() { return autoStartup; } public void setAutoStartup(Boolean autoStartup) { this.autoStartup = autoStartup; } public Integer getCacheLevel() { return cacheLevel; } public void setCacheLevel(Integer cacheLevel) { this.cacheLevel = cacheLevel; } public String getCacheLevelName() { return cacheLevelName; } public void setCacheLevelName(String cacheLevelName) { this.cacheLevelName = cacheLevelName; } public String getReplyToCacheLevelName() { return replyToCacheLevelName; } public void setReplyToCacheLevelName(String replyToCacheLevelName) { this.replyToCacheLevelName = replyToCacheLevelName; } public String getClientId() { return clientId; } public void setClientId(String clientId) { this.clientId = clientId; } public Integer getConcurrentConsumers() { return concurrentConsumers; } public void setConcurrentConsumers(Integer concurrentConsumers) { this.concurrentConsumers = concurrentConsumers; } public Integer getReplyToConcurrentConsumers() { return replyToConcurrentConsumers; } public void setReplyToConcurrentConsumers(Integer replyToConcurrentConsumers) { this.replyToConcurrentConsumers = replyToConcurrentConsumers; } public ConnectionFactory getConnectionFactory() { return connectionFactory; } public void setConnectionFactory(ConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Boolean getDeliveryPersistent() { return deliveryPersistent; } public void setDeliveryPersistent(Boolean deliveryPersistent) { this.deliveryPersistent = deliveryPersistent; } public Integer getDeliveryMode() { return deliveryMode; } public void setDeliveryMode(Integer deliveryMode) { this.deliveryMode = deliveryMode; } public String getDurableSubscriptionName() { return durableSubscriptionName; } public void setDurableSubscriptionName(String durableSubscriptionName) { this.durableSubscriptionName = durableSubscriptionName; } public ExceptionListener getExceptionListener() { return exceptionListener; } public void setExceptionListener(ExceptionListener exceptionListener) { this.exceptionListener = exceptionListener; } public ErrorHandler getErrorHandler() { return errorHandler; } public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler; } public LoggingLevel getErrorHandlerLoggingLevel() { return errorHandlerLoggingLevel; } public void setErrorHandlerLoggingLevel( LoggingLevel errorHandlerLoggingLevel) { this.errorHandlerLoggingLevel = errorHandlerLoggingLevel; } public Boolean getErrorHandlerLogStackTrace() { return errorHandlerLogStackTrace; } public void setErrorHandlerLogStackTrace(Boolean errorHandlerLogStackTrace) { this.errorHandlerLogStackTrace = errorHandlerLogStackTrace; } public Boolean getExplicitQosEnabled() { return explicitQosEnabled; } public void setExplicitQosEnabled(Boolean explicitQosEnabled) { this.explicitQosEnabled = explicitQosEnabled; } public Boolean getExposeListenerSession() { return exposeListenerSession; } public void setExposeListenerSession(Boolean exposeListenerSession) { this.exposeListenerSession = exposeListenerSession; } public Integer getIdleTaskExecutionLimit() { return idleTaskExecutionLimit; } public void setIdleTaskExecutionLimit(Integer idleTaskExecutionLimit) { this.idleTaskExecutionLimit = idleTaskExecutionLimit; } public Integer getIdleConsumerLimit() { return idleConsumerLimit; } public void setIdleConsumerLimit(Integer idleConsumerLimit) { this.idleConsumerLimit = idleConsumerLimit; } public Integer getMaxConcurrentConsumers() { return maxConcurrentConsumers; } public void setMaxConcurrentConsumers(Integer maxConcurrentConsumers) { this.maxConcurrentConsumers = maxConcurrentConsumers; } public Integer getReplyToMaxConcurrentConsumers() { return replyToMaxConcurrentConsumers; } public void setReplyToMaxConcurrentConsumers( Integer replyToMaxConcurrentConsumers) { this.replyToMaxConcurrentConsumers = replyToMaxConcurrentConsumers; } public Integer getReplyOnTimeoutToMaxConcurrentConsumers() { return replyOnTimeoutToMaxConcurrentConsumers; } public void setReplyOnTimeoutToMaxConcurrentConsumers( Integer replyOnTimeoutToMaxConcurrentConsumers) { this.replyOnTimeoutToMaxConcurrentConsumers = replyOnTimeoutToMaxConcurrentConsumers; } public Integer getMaxMessagesPerTask() { return maxMessagesPerTask; } public void setMaxMessagesPerTask(Integer maxMessagesPerTask) { this.maxMessagesPerTask = maxMessagesPerTask; } public MessageConverter getMessageConverter() { return messageConverter; } public void setMessageConverter(MessageConverter messageConverter) { this.messageConverter = messageConverter; } public Boolean getMapJmsMessage() { return mapJmsMessage; } public void setMapJmsMessage(Boolean mapJmsMessage) { this.mapJmsMessage = mapJmsMessage; } public Boolean getMessageIdEnabled() { return messageIdEnabled; } public void setMessageIdEnabled(Boolean messageIdEnabled) { this.messageIdEnabled = messageIdEnabled; } public Boolean getMessageTimestampEnabled() { return messageTimestampEnabled; } public void setMessageTimestampEnabled(Boolean messageTimestampEnabled) { this.messageTimestampEnabled = messageTimestampEnabled; } public Boolean getAlwaysCopyMessage() { return alwaysCopyMessage; } public void setAlwaysCopyMessage(Boolean alwaysCopyMessage) { this.alwaysCopyMessage = alwaysCopyMessage; } public Boolean getUseMessageIDAsCorrelationID() { return useMessageIDAsCorrelationID; } public void setUseMessageIDAsCorrelationID( Boolean useMessageIDAsCorrelationID) { this.useMessageIDAsCorrelationID = useMessageIDAsCorrelationID; } public Integer getPriority() { return priority; } public void setPriority(Integer priority) { this.priority = priority; } public Boolean getPubSubNoLocal() { return pubSubNoLocal; } public void setPubSubNoLocal(Boolean pubSubNoLocal) { this.pubSubNoLocal = pubSubNoLocal; } public Long getReceiveTimeout() { return receiveTimeout; } public void setReceiveTimeout(Long receiveTimeout) { this.receiveTimeout = receiveTimeout; } public Long getRecoveryInterval() { return recoveryInterval; } public void setRecoveryInterval(Long recoveryInterval) { this.recoveryInterval = recoveryInterval; } @Deprecated @DeprecatedConfigurationProperty public Boolean getSubscriptionDurable() { return subscriptionDurable; } @Deprecated public void setSubscriptionDurable(Boolean subscriptionDurable) { this.subscriptionDurable = subscriptionDurable; } public TaskExecutor getTaskExecutor() { return taskExecutor; } public void setTaskExecutor(TaskExecutor taskExecutor) { this.taskExecutor = taskExecutor; } public Long getTimeToLive() { return timeToLive; } public void setTimeToLive(Long timeToLive) { this.timeToLive = timeToLive; } public Boolean getTransacted() { return transacted; } public void setTransacted(Boolean transacted) { this.transacted = transacted; } public Boolean getLazyCreateTransactionManager() { return lazyCreateTransactionManager; } public void setLazyCreateTransactionManager( Boolean lazyCreateTransactionManager) { this.lazyCreateTransactionManager = lazyCreateTransactionManager; } public PlatformTransactionManager getTransactionManager() { return transactionManager; } public void setTransactionManager( PlatformTransactionManager transactionManager) { this.transactionManager = transactionManager; } public String getTransactionName() { return transactionName; } public void setTransactionName(String transactionName) { this.transactionName = transactionName; } public Integer getTransactionTimeout() { return transactionTimeout; } public void setTransactionTimeout(Integer transactionTimeout) { this.transactionTimeout = transactionTimeout; } public Boolean getTestConnectionOnStartup() { return testConnectionOnStartup; } public void setTestConnectionOnStartup(Boolean testConnectionOnStartup) { this.testConnectionOnStartup = testConnectionOnStartup; } public Boolean getAsyncStartListener() { return asyncStartListener; } public void setAsyncStartListener(Boolean asyncStartListener) { this.asyncStartListener = asyncStartListener; } public Boolean getAsyncStopListener() { return asyncStopListener; } public void setAsyncStopListener(Boolean asyncStopListener) { this.asyncStopListener = asyncStopListener; } public Boolean getForceSendOriginalMessage() { return forceSendOriginalMessage; } public void setForceSendOriginalMessage(Boolean forceSendOriginalMessage) { this.forceSendOriginalMessage = forceSendOriginalMessage; } public Long getRequestTimeout() { return requestTimeout; } public void setRequestTimeout(Long requestTimeout) { this.requestTimeout = requestTimeout; } public Long getRequestTimeoutCheckerInterval() { return requestTimeoutCheckerInterval; } public void setRequestTimeoutCheckerInterval( Long requestTimeoutCheckerInterval) { this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval; } public Boolean getTransferExchange() { return transferExchange; } public void setTransferExchange(Boolean transferExchange) { this.transferExchange = transferExchange; } public Boolean getTransferException() { return transferException; } public void setTransferException(Boolean transferException) { this.transferException = transferException; } public Boolean getTransferFault() { return transferFault; } public void setTransferFault(Boolean transferFault) { this.transferFault = transferFault; } public JmsOperations getJmsOperations() { return jmsOperations; } public void setJmsOperations(JmsOperations jmsOperations) { this.jmsOperations = jmsOperations; } public DestinationResolver getDestinationResolver() { return destinationResolver; } public void setDestinationResolver(DestinationResolver destinationResolver) { this.destinationResolver = destinationResolver; } public ReplyToType getReplyToType() { return replyToType; } public void setReplyToType(ReplyToType replyToType) { this.replyToType = replyToType; } public Boolean getPreserveMessageQos() { return preserveMessageQos; } public void setPreserveMessageQos(Boolean preserveMessageQos) { this.preserveMessageQos = preserveMessageQos; } public Boolean getAsyncConsumer() { return asyncConsumer; } public void setAsyncConsumer(Boolean asyncConsumer) { this.asyncConsumer = asyncConsumer; } public Boolean getAllowNullBody() { return allowNullBody; } public void setAllowNullBody(Boolean allowNullBody) { this.allowNullBody = allowNullBody; } public Boolean getIncludeSentJMSMessageID() { return includeSentJMSMessageID; } public void setIncludeSentJMSMessageID(Boolean includeSentJMSMessageID) { this.includeSentJMSMessageID = includeSentJMSMessageID; } public Boolean getIncludeAllJMSXProperties() { return includeAllJMSXProperties; } public void setIncludeAllJMSXProperties(Boolean includeAllJMSXProperties) { this.includeAllJMSXProperties = includeAllJMSXProperties; } public DefaultTaskExecutorType getDefaultTaskExecutorType() { return defaultTaskExecutorType; } public void setDefaultTaskExecutorType( DefaultTaskExecutorType defaultTaskExecutorType) { this.defaultTaskExecutorType = defaultTaskExecutorType; } public JmsKeyFormatStrategy getJmsKeyFormatStrategy() { return jmsKeyFormatStrategy; } public void setJmsKeyFormatStrategy( JmsKeyFormatStrategy jmsKeyFormatStrategy) { this.jmsKeyFormatStrategy = jmsKeyFormatStrategy; } public QueueBrowseStrategy getQueueBrowseStrategy() { return queueBrowseStrategy; } public void setQueueBrowseStrategy(QueueBrowseStrategy queueBrowseStrategy) { this.queueBrowseStrategy = queueBrowseStrategy; } public MessageCreatedStrategy getMessageCreatedStrategy() { return messageCreatedStrategy; } public void setMessageCreatedStrategy( MessageCreatedStrategy messageCreatedStrategy) { this.messageCreatedStrategy = messageCreatedStrategy; } public Integer getWaitForProvisionCorrelationToBeUpdatedCounter() { return waitForProvisionCorrelationToBeUpdatedCounter; } public void setWaitForProvisionCorrelationToBeUpdatedCounter( Integer waitForProvisionCorrelationToBeUpdatedCounter) { this.waitForProvisionCorrelationToBeUpdatedCounter = waitForProvisionCorrelationToBeUpdatedCounter; } public Long getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() { return waitForProvisionCorrelationToBeUpdatedThreadSleepingTime; } public void setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime( Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) { this.waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = waitForProvisionCorrelationToBeUpdatedThreadSleepingTime; } public String getCorrelationProperty() { return correlationProperty; } public void setCorrelationProperty(String correlationProperty) { this.correlationProperty = correlationProperty; } public HeaderFilterStrategy getHeaderFilterStrategy() { return headerFilterStrategy; } public void setHeaderFilterStrategy( HeaderFilterStrategy headerFilterStrategy) { this.headerFilterStrategy = headerFilterStrategy; } public Boolean getResolvePropertyPlaceholders() { return resolvePropertyPlaceholders; } public void setResolvePropertyPlaceholders( Boolean resolvePropertyPlaceholders) { this.resolvePropertyPlaceholders = resolvePropertyPlaceholders; } public static class JmsConfigurationNestedConfiguration { public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.jms.JmsConfiguration.class; /** * The consumer type to use, which can be one of: Simple, Default, or * Custom. The consumer type determines which Spring JMS listener to * use. Default will use * org.springframework.jms.listener.DefaultMessageListenerContainer, * Simple will use * org.springframework.jms.listener.SimpleMessageListenerContainer. When * Custom is specified, the MessageListenerContainerFactory defined by * the messageListenerContainerFactory option will determine what * org.springframework.jms.listener.AbstractMessageListenerContainer to * use. */ private ConsumerType consumerType = ConsumerType.Default; /** * Sets the default connection factory to be used if a connection * factory is not specified for either * {@link #setTemplateConnectionFactory(ConnectionFactory)} or * {@link #setListenerConnectionFactory(ConnectionFactory)} */ private ConnectionFactory connectionFactory; /** * Username to use with the ConnectionFactory. You can also configure * username/password directly on the ConnectionFactory. */ private String username; /** * Password to use with the ConnectionFactory. You can also configure * username/password directly on the ConnectionFactory. */ private String password; /** * Sets the connection factory to be used for consuming messages */ private ConnectionFactory listenerConnectionFactory; /** * Sets the connection factory to be used for sending messages via the * {@link JmsTemplate} via * {@link #createInOnlyTemplate(JmsEndpoint,boolean,String)} */ private ConnectionFactory templateConnectionFactory; /** * Specifies whether the consumer container should auto-startup. */ private Boolean autoStartup = true; /** * Specifies whether the consumer accept messages while it is stopping. * You may consider enabling this option, if you start and stop JMS * routes at runtime, while there are still messages enqueued on the * queue. If this option is false, and you stop the JMS route, then * messages may be rejected, and the JMS broker would have to attempt * redeliveries, which yet again may be rejected, and eventually the * message may be moved at a dead letter queue on the JMS broker. To * avoid this its recommended to enable this option. */ private Boolean acceptMessagesWhileStopping = false; private Boolean allowReplyManagerQuickStop = false; /** * Sets the JMS client ID to use. Note that this value, if specified, * must be unique and can only be used by a single JMS connection * instance. It is typically only required for durable topic * subscriptions. * <p> * If using Apache ActiveMQ you may prefer to use Virtual Topics * instead. */ private String clientId; /** * The durable subscriber name for specifying durable topic * subscriptions. The clientId option must be configured as well. */ private String durableSubscriptionName; /** * Specifies the JMS Exception Listener that is to be notified of any * underlying JMS exceptions. */ private ExceptionListener exceptionListener; /** * Specifies a org.springframework.util.ErrorHandler to be invoked in * case of any uncaught exceptions thrown while processing a Message. By * default these exceptions will be logged at the WARN level, if no * errorHandler has been configured. You can configure logging level and * whether stack traces should be logged using errorHandlerLoggingLevel * and errorHandlerLogStackTrace options. This makes it much easier to * configure, than having to code a custom errorHandler. */ private ErrorHandler errorHandler; /** * Allows to configure the default errorHandler logging level for * logging uncaught exceptions. */ private LoggingLevel errorHandlerLoggingLevel = LoggingLevel.WARN; /** * Allows to control whether stacktraces should be logged or not, by the * default errorHandler. */ private Boolean errorHandlerLogStackTrace = true; @Deprecated private Boolean subscriptionDurable; /** * The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, * CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE */ private String acknowledgementModeName = "AUTO_ACKNOWLEDGE"; /** * Specifies whether the listener session should be exposed when * consuming messages. */ private Boolean exposeListenerSession = false; /** * Allows you to specify a custom task executor for consuming messages. */ private TaskExecutor taskExecutor; /** * Specifies whether to inhibit the delivery of messages published by * its own connection. */ private Boolean pubSubNoLocal = false; /** * Specifies the default number of concurrent consumers when consuming * from JMS (not for request/reply over JMS). See also the * maxMessagesPerTask option to control dynamic scaling up/down of * threads. * <p> * When doing request/reply over JMS then the option * replyToConcurrentConsumers is used to control number of concurrent * consumers on the reply message listener. */ private Integer concurrentConsumers = 1; /** * Specifies the default number of concurrent consumers when doing * request/reply over JMS. See also the maxMessagesPerTask option to * control dynamic scaling up/down of threads. */ private Integer replyToConcurrentConsumers = 1; /** * The number of messages per task. -1 is unlimited. If you use a range * for concurrent consumers (eg min < max), then this option can be used * to set a value to eg 100 to control how fast the consumers will * shrink when less work is required. */ private Integer maxMessagesPerTask = -1; /** * Sets the cache level by ID for the underlying JMS resources. See * cacheLevelName option for more details. */ private Integer cacheLevel; /** * Sets the cache level by name for the underlying JMS resources. * Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, * CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See * the Spring documentation and Transactions Cache Levels for more * information. */ private String cacheLevelName = "CACHE_AUTO"; /** * Specifies the interval between recovery attempts, i.e. when a * connection is being refreshed, in milliseconds. The default is 5000 * ms, that is, 5 seconds. */ private Long recoveryInterval = 5000L; /** * The timeout for receiving messages (in milliseconds). */ private Long receiveTimeout = 1000L; /** * The Spring transaction manager to use. */ private PlatformTransactionManager transactionManager; /** * The name of the transaction to use. */ private String transactionName; /** * The timeout value of the transaction (in seconds), if using * transacted mode. */ private Integer transactionTimeout = -1; /** * Specifies the limit for idle executions of a receive task, not having * received any message within its execution. If this limit is reached, * the task will shut down and leave receiving to other executing tasks * (in the case of dynamic scheduling; see the maxConcurrentConsumers * setting). There is additional doc available from Spring. */ private Integer idleTaskExecutionLimit = 1; /** * Specify the limit for the number of consumers that are allowed to be * idle at any given time. */ private Integer idleConsumerLimit = 1; /** * Number of times to wait for provisional correlation id to be updated * to the actual correlation id when doing request/reply over JMS and * when the option useMessageIDAsCorrelationID is enabled. */ private Integer waitForProvisionCorrelationToBeUpdatedCounter = 50; /** * Interval in millis to sleep each time while waiting for provisional * correlation id to be updated. */ private Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = 100L; /** * Specifies the maximum number of concurrent consumers when consuming * from JMS (not for request/reply over JMS). See also the * maxMessagesPerTask option to control dynamic scaling up/down of * threads. * <p> * When doing request/reply over JMS then the option * replyToMaxConcurrentConsumers is used to control number of concurrent * consumers on the reply message listener. */ private Integer maxConcurrentConsumers; /** * Specifies the maximum number of concurrent consumers when using * request/reply over JMS. See also the maxMessagesPerTask option to * control dynamic scaling up/down of threads. */ private Integer replyToMaxConcurrentConsumers; /** * Specifies the maximum number of concurrent consumers for continue * routing when timeout occurred when using request/reply over JMS. */ private Integer replyToOnTimeoutMaxConcurrentConsumers = 1; /** * Specifies whether persistent delivery is used by default. */ private Boolean deliveryPersistent = true; /** * Specifies the delivery mode to be used. Possibles values are those * defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT * = 2. */ private Integer deliveryMode; /** * Specifies whether to use persistent delivery by default for replies. */ private Boolean replyToDeliveryPersistent = true; /** * When sending messages, specifies the time-to-live of the message (in * milliseconds). */ private Long timeToLive = -1L; /** * To use a custom Spring * org.springframework.jms.support.converter.MessageConverter so you can * be in control how to map to/from a javax.jms.Message. */ private MessageConverter messageConverter; /** * Specifies whether Camel should auto map the received JMS message to a * suited payload type, such as javax.jms.TextMessage to a String etc. */ private Boolean mapJmsMessage = true; /** * When sending, specifies whether message IDs should be added. This is * just an hint to the JMS Broker. If the JMS provider accepts this * hint, these messages must have the message ID set to null; if the * provider ignores the hint, the message ID must be set to its normal * unique value */ private Boolean messageIdEnabled = true; /** * Specifies whether timestamps should be enabled by default on sending * messages. This is just an hint to the JMS Broker. If the JMS provider * accepts this hint, these messages must have the timestamp set to * zero; if the provider ignores the hint, the timestamp must be set to * its normal value */ private Boolean messageTimestampEnabled = true; /** * Values greater than 1 specify the message priority when sending * (where 0 is the lowest priority and 9 is the highest). The * explicitQosEnabled option must also be enabled in order for this * option to have any effect. */ private Integer priority = 4; /** * The JMS acknowledgement mode defined as an Integer. Allows you to set * vendor-specific extensions to the acknowledgment mode. For the * regular modes, it is preferable to use the acknowledgementModeName * instead. */ private Integer acknowledgementMode; /** * Specifies whether to use transacted mode */ private Boolean transacted = false; @Deprecated private Boolean transactedInOut; /** * If true, Camel will create a JmsTransactionManager, if there is no * transactionManager injected when option transacted=true. */ private Boolean lazyCreateTransactionManager = true; /** * Enables eager loading of JMS properties as soon as a message is * loaded which generally is inefficient as the JMS properties may not * be required but sometimes can catch early any issues with the * underlying JMS provider and the use of JMS properties */ private Boolean eagerLoadingOfProperties = false; /** * If true, a producer will behave like a InOnly exchange with the * exception that JMSReplyTo header is sent out and not be suppressed * like in the case of InOnly. Like InOnly the producer will not wait * for a reply. A consumer with this flag will behave like InOnly. This * feature can be used to bridge InOut requests to another queue so that * a route on the other queue will send its response directly back to * the original JMSReplyTo. */ private Boolean disableReplyTo = false; /** * Set to true, if you want to send message using the QoS settings * specified on the message, instead of the QoS settings on the JMS * endpoint. The following three headers are considered JMSPriority, * JMSDeliveryMode, and JMSExpiration. You can provide all or only some * of them. If not provided, Camel will fall back to use the values from * the endpoint instead. So, when using this option, the headers * override the values from the endpoint. The explicitQosEnabled option, * by contrast, will only use options set on the endpoint, and not * values from the message header. */ private Boolean preserveMessageQos = false; /** * Allows you to use your own implementation of the * org.springframework.jms.core.JmsOperations interface. Camel uses * JmsTemplate as default. Can be used for testing purpose, but not used * much as stated in the spring API docs. */ private JmsOperations jmsOperations; /** * A pluggable * org.springframework.jms.support.destination.DestinationResolver that * allows you to use your own resolver (for example, to lookup the real * destination in a JNDI registry). */ private DestinationResolver destinationResolver; /** * Allows the provider metadata to be explicitly configured. Typically * this is not required and Camel will auto-detect the provider metadata * from the underlying provider. */ @NestedConfigurationProperty private JmsProviderMetadata providerMetadata; /** * Sets the {@link JmsOperations} used to deduce the * {@link JmsProviderMetadata} details which if none is customized one * is lazily created on demand */ private JmsOperations metadataJmsOperations; /** * If true, Camel will always make a JMS message copy of the message * when it is passed to the producer for sending. Copying the message is * needed in some situations, such as when a * replyToDestinationSelectorName is set (incidentally, Camel will set * the alwaysCopyMessage option to true, if a * replyToDestinationSelectorName is set) */ private Boolean alwaysCopyMessage = false; /** * Specifies whether JMSMessageID should always be used as * JMSCorrelationID for InOut messages. */ private Boolean useMessageIDAsCorrelationID = false; /** * The timeout for waiting for a reply when using the InOut Exchange * Pattern (in milliseconds). The default is 20 seconds. You can include * the header "CamelJmsRequestTimeout" to override this endpoint * configured timeout value, and thus have per message individual * timeout values. See also the requestTimeoutCheckerInterval option. */ private Long requestTimeout = 20000L; /** * Configures how often Camel should check for timed out Exchanges when * doing request/reply over JMS. By default Camel checks once per * second. But if you must react faster when a timeout occurs, then you * can lower this interval, to check more frequently. The timeout is * determined by the option requestTimeout. */ private Long requestTimeoutCheckerInterval = 1000L; /** * Provides an explicit ReplyTo destination, which overrides any * incoming value of Message.getJMSReplyTo(). */ private String replyTo; /** * Sets the JMS Selector using the fixed name to be used so you can * filter out your own replies from the others when using a shared queue * (that is, if you are not using a temporary reply queue). */ private String replyToDestinationSelectorName; /** * Provides an explicit ReplyTo destination in the JMS message, which * overrides the setting of replyTo. It is useful if you want to forward * the message to a remote Queue and receive the reply message from the * ReplyTo destination. */ private String replyToOverride; /** * Whether a JMS consumer is allowed to send a reply message to the same * destination that the consumer is using to consume from. This prevents * an endless loop by consuming and sending back the same message to * itself. */ private Boolean replyToSameDestinationAllowed = false; /** * Allows you to force the use of a specific javax.jms.Message * implementation for sending JMS messages. Possible values are: Bytes, * Map, Object, Stream, Text. By default, Camel would determine which * JMS message type to use from the In body type. This option allows you * to specify it. */ private JmsMessageType jmsMessageType; /** * Pluggable strategy for encoding and decoding JMS keys so they can be * compliant with the JMS specification. Camel provides two * implementations out of the box: default and passthrough. The default * strategy will safely marshal dots and hyphens (. and -). The * passthrough strategy leaves the key as is. Can be used for JMS * brokers which do not care whether JMS header keys contain illegal * characters. You can provide your own implementation of the * org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it * using the # notation. */ private JmsKeyFormatStrategy jmsKeyFormatStrategy; /** * You can transfer the exchange over the wire instead of just the body * and headers. 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. You must enable this option on both the producer * and consumer side, so Camel knows the payloads is an Exchange and not * a regular payload. */ private Boolean transferExchange = false; /** * Controls whether or not to include serialized headers. Applies only * when {@link #isTransferExchange()} is {@code true} . This requires * that the objects are serializable. Camel will exclude any * non-serializable objects and log it at WARN level. */ private Boolean allowSerializedHeaders = false; /** * If enabled and you are using Request Reply messaging (InOut) and an * Exchange failed on the consumer side, then the caused Exception will * be send back in response as a javax.jms.ObjectMessage. If the client * is Camel, the returned Exception is rethrown. This allows you to use * Camel JMS as a bridge in your routing - for example, using persistent * queues to enable robust routing. Notice that if you also have * transferExchange enabled, this option takes precedence. The caught * exception is required to be serializable. The original Exception on * the consumer side can be wrapped in an outer exception such as * org.apache.camel.RuntimeCamelException when returned to the producer. */ private Boolean transferException = false; /** * If enabled and you are using Request Reply messaging (InOut) and an * Exchange failed with a SOAP fault (not exception) on the consumer * side, then the fault flag on * {@link org.apache.camel.Message#isFault()} will be send back in the * response as a JMS header with the key * {@link JmsConstants#JMS_TRANSFER_FAULT} . If the client is Camel, the * returned fault flag will be set on the * {@link org.apache.camel.Message#setFault(boolean)} . * <p> * You may want to enable this when using Camel components that support * faults such as SOAP based such as cxf or spring-ws. */ private Boolean transferFault = false; /** * Whether to startup the JmsConsumer message listener asynchronously, * when starting a route. For example if a JmsConsumer cannot get a * connection to a remote JMS broker, then it may block while retrying * and/or failover. This will cause Camel to block while starting * routes. By setting this option to true, you will let routes startup, * while the JmsConsumer connects to the JMS broker using a dedicated * thread in asynchronous mode. If this option is used, then beware that * if the connection could not be established, then an exception is * logged at WARN level, and the consumer will not be able to receive * messages; You can then restart the route to retry. */ private Boolean asyncStartListener = false; /** * Whether to stop the JmsConsumer message listener asynchronously, when * stopping a route. */ private Boolean asyncStopListener = false; /** * Specifies whether to test the connection on startup. This ensures * that when Camel starts that all the JMS consumers have a valid * connection to the JMS broker. If a connection cannot be granted then * Camel throws an exception on startup. This ensures that Camel is not * started with failed connections. The JMS producers is tested as well. */ private Boolean testConnectionOnStartup = false; /** * When using mapJmsMessage=false Camel will create a new JMS message to * send to a new JMS destination if you touch the headers (get or set) * during the route. Set this option to true to force Camel to send the * original JMS message that was received. */ private Boolean forceSendOriginalMessage = false; /** * Use this option to force disabling time to live. For example when you * do request/reply over JMS, then Camel will by default use the * requestTimeout value as time to live on the message being sent. The * problem is that the sender and receiver systems have to have their * clocks synchronized, so they are in sync. This is not always so easy * to archive. So you can use disableTimeToLive=true to not set a time * to live value on the sent message. Then the message will not expire * on the receiver system. See below in section About time to live for * more details. */ private Boolean disableTimeToLive = false; /** * Allows for explicitly specifying which kind of strategy to use for * replyTo queues when doing request/reply over JMS. Possible values * are: Temporary, Shared, or Exclusive. By default Camel will use * temporary queues. However if replyTo has been configured, then Shared * is used by default. This option allows you to use exclusive queues * instead of shared ones. See Camel JMS documentation for more details, * and especially the notes about the implications if running in a * clustered environment, and the fact that Shared reply queues has * lower performance than its alternatives Temporary and Exclusive. */ private ReplyToType replyToType; /** * Whether the JmsConsumer processes the Exchange asynchronously. If * enabled then the JmsConsumer may pickup the next message from the JMS * queue, while the previous message is being processed asynchronously * (by the Asynchronous Routing Engine). This means that messages may be * processed not 100% strictly in order. If disabled (as default) then * the Exchange is fully processed before the JmsConsumer will pickup * the next message from the JMS queue. Note if transacted has been * enabled, then asyncConsumer=true does not run asynchronously, as * transaction must be executed synchronously (Camel 3.0 may support * async transactions). */ private Boolean asyncConsumer = false; /** * Sets the cache level by name for the reply consumer when doing * request/reply over JMS. This option only applies when using fixed * reply queues (not temporary). Camel will by default use: * CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And * CACHE_SESSION for shared without replyToSelectorName. Some JMS * brokers such as IBM WebSphere may require to set the * replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary * queues then CACHE_NONE is not allowed, and you must use a higher * value such as CACHE_CONSUMER or CACHE_SESSION. */ private String replyToCacheLevelName; /** * Whether to allow sending messages with no body. If this option is * false and the message body is null, then an JMSException is thrown. */ private Boolean allowNullBody = true; /** * Registry ID of the MessageListenerContainerFactory used to determine * what * org.springframework.jms.listener.AbstractMessageListenerContainer to * use to consume messages. Setting this will automatically set * consumerType to Custom. */ private MessageListenerContainerFactory messageListenerContainerFactory; /** * Only applicable when sending to JMS destination using InOnly (eg fire * and forget). Enabling this option will enrich the Camel Exchange with * the actual JMSMessageID that was used by the JMS client when the * message was sent to the JMS destination. */ private Boolean includeSentJMSMessageID = false; /** * Specifies what default TaskExecutor type to use in the * DefaultMessageListenerContainer, for both consumer endpoints and the * ReplyTo consumer of producer endpoints. Possible values: SimpleAsync * (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's * ThreadPoolTaskExecutor with optimal values - cached threadpool-like). * If not set, it defaults to the previous behaviour, which uses a * cached thread pool for consumer endpoints and SimpleAsync for reply * consumers. The use of ThreadPool is recommended to reduce * "thread trash" in elastic configurations with dynamically increasing * and decreasing concurrent consumers. */ private DefaultTaskExecutorType defaultTaskExecutorType; /** * Whether to include all JMSXxxx properties when mapping from JMS to * Camel Message. Setting this to true will include properties such as * JMSXAppID, and JMSXUserID etc. Note: If you are using a custom * headerFilterStrategy then this option does not apply. */ private Boolean includeAllJMSXProperties = false; /** * To use the given MessageCreatedStrategy which are invoked when Camel * creates new instances of <tt>javax.jms.Message</tt> objects when * Camel is sending a JMS message. */ private MessageCreatedStrategy messageCreatedStrategy; /** * Sets the JMS selector to use */ private String selector; /** * Use this JMS property to correlate messages in InOut exchange pattern * (request-reply) instead of JMSCorrelationID property. This allows you * to exchange messages with systems that do not correlate messages * using JMSCorrelationID JMS property. If used JMSCorrelationID will * not be used or set by Camel. The value of here named property will be * generated if not supplied in the header of the message under the same * name. */ private String correlationProperty; public ConsumerType getConsumerType() { return consumerType; } public void setConsumerType(ConsumerType consumerType) { this.consumerType = consumerType; } public ConnectionFactory getConnectionFactory() { return connectionFactory; } public void setConnectionFactory(ConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public ConnectionFactory getListenerConnectionFactory() { return listenerConnectionFactory; } public void setListenerConnectionFactory( ConnectionFactory listenerConnectionFactory) { this.listenerConnectionFactory = listenerConnectionFactory; } public ConnectionFactory getTemplateConnectionFactory() { return templateConnectionFactory; } public void setTemplateConnectionFactory( ConnectionFactory templateConnectionFactory) { this.templateConnectionFactory = templateConnectionFactory; } public Boolean getAutoStartup() { return autoStartup; } public void setAutoStartup(Boolean autoStartup) { this.autoStartup = autoStartup; } public Boolean getAcceptMessagesWhileStopping() { return acceptMessagesWhileStopping; } public void setAcceptMessagesWhileStopping( Boolean acceptMessagesWhileStopping) { this.acceptMessagesWhileStopping = acceptMessagesWhileStopping; } public Boolean getAllowReplyManagerQuickStop() { return allowReplyManagerQuickStop; } public void setAllowReplyManagerQuickStop( Boolean allowReplyManagerQuickStop) { this.allowReplyManagerQuickStop = allowReplyManagerQuickStop; } public String getClientId() { return clientId; } public void setClientId(String clientId) { this.clientId = clientId; } public String getDurableSubscriptionName() { return durableSubscriptionName; } public void setDurableSubscriptionName(String durableSubscriptionName) { this.durableSubscriptionName = durableSubscriptionName; } public ExceptionListener getExceptionListener() { return exceptionListener; } public void setExceptionListener(ExceptionListener exceptionListener) { this.exceptionListener = exceptionListener; } public ErrorHandler getErrorHandler() { return errorHandler; } public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler; } public LoggingLevel getErrorHandlerLoggingLevel() { return errorHandlerLoggingLevel; } public void setErrorHandlerLoggingLevel( LoggingLevel errorHandlerLoggingLevel) { this.errorHandlerLoggingLevel = errorHandlerLoggingLevel; } public Boolean getErrorHandlerLogStackTrace() { return errorHandlerLogStackTrace; } public void setErrorHandlerLogStackTrace( Boolean errorHandlerLogStackTrace) { this.errorHandlerLogStackTrace = errorHandlerLogStackTrace; } @Deprecated @DeprecatedConfigurationProperty public Boolean getSubscriptionDurable() { return subscriptionDurable; } @Deprecated public void setSubscriptionDurable(Boolean subscriptionDurable) { this.subscriptionDurable = subscriptionDurable; } public String getAcknowledgementModeName() { return acknowledgementModeName; } public void setAcknowledgementModeName(String acknowledgementModeName) { this.acknowledgementModeName = acknowledgementModeName; } public Boolean getExposeListenerSession() { return exposeListenerSession; } public void setExposeListenerSession(Boolean exposeListenerSession) { this.exposeListenerSession = exposeListenerSession; } public TaskExecutor getTaskExecutor() { return taskExecutor; } public void setTaskExecutor(TaskExecutor taskExecutor) { this.taskExecutor = taskExecutor; } public Boolean getPubSubNoLocal() { return pubSubNoLocal; } public void setPubSubNoLocal(Boolean pubSubNoLocal) { this.pubSubNoLocal = pubSubNoLocal; } public Integer getConcurrentConsumers() { return concurrentConsumers; } public void setConcurrentConsumers(Integer concurrentConsumers) { this.concurrentConsumers = concurrentConsumers; } public Integer getReplyToConcurrentConsumers() { return replyToConcurrentConsumers; } public void setReplyToConcurrentConsumers( Integer replyToConcurrentConsumers) { this.replyToConcurrentConsumers = replyToConcurrentConsumers; } public Integer getMaxMessagesPerTask() { return maxMessagesPerTask; } public void setMaxMessagesPerTask(Integer maxMessagesPerTask) { this.maxMessagesPerTask = maxMessagesPerTask; } public Integer getCacheLevel() { return cacheLevel; } public void setCacheLevel(Integer cacheLevel) { this.cacheLevel = cacheLevel; } public String getCacheLevelName() { return cacheLevelName; } public void setCacheLevelName(String cacheLevelName) { this.cacheLevelName = cacheLevelName; } public Long getRecoveryInterval() { return recoveryInterval; } public void setRecoveryInterval(Long recoveryInterval) { this.recoveryInterval = recoveryInterval; } public Long getReceiveTimeout() { return receiveTimeout; } public void setReceiveTimeout(Long receiveTimeout) { this.receiveTimeout = receiveTimeout; } public PlatformTransactionManager getTransactionManager() { return transactionManager; } public void setTransactionManager( PlatformTransactionManager transactionManager) { this.transactionManager = transactionManager; } public String getTransactionName() { return transactionName; } public void setTransactionName(String transactionName) { this.transactionName = transactionName; } public Integer getTransactionTimeout() { return transactionTimeout; } public void setTransactionTimeout(Integer transactionTimeout) { this.transactionTimeout = transactionTimeout; } public Integer getIdleTaskExecutionLimit() { return idleTaskExecutionLimit; } public void setIdleTaskExecutionLimit(Integer idleTaskExecutionLimit) { this.idleTaskExecutionLimit = idleTaskExecutionLimit; } public Integer getIdleConsumerLimit() { return idleConsumerLimit; } public void setIdleConsumerLimit(Integer idleConsumerLimit) { this.idleConsumerLimit = idleConsumerLimit; } public Integer getWaitForProvisionCorrelationToBeUpdatedCounter() { return waitForProvisionCorrelationToBeUpdatedCounter; } public void setWaitForProvisionCorrelationToBeUpdatedCounter( Integer waitForProvisionCorrelationToBeUpdatedCounter) { this.waitForProvisionCorrelationToBeUpdatedCounter = waitForProvisionCorrelationToBeUpdatedCounter; } public Long getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() { return waitForProvisionCorrelationToBeUpdatedThreadSleepingTime; } public void setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime( Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) { this.waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = waitForProvisionCorrelationToBeUpdatedThreadSleepingTime; } public Integer getMaxConcurrentConsumers() { return maxConcurrentConsumers; } public void setMaxConcurrentConsumers(Integer maxConcurrentConsumers) { this.maxConcurrentConsumers = maxConcurrentConsumers; } public Integer getReplyToMaxConcurrentConsumers() { return replyToMaxConcurrentConsumers; } public void setReplyToMaxConcurrentConsumers( Integer replyToMaxConcurrentConsumers) { this.replyToMaxConcurrentConsumers = replyToMaxConcurrentConsumers; } public Integer getReplyToOnTimeoutMaxConcurrentConsumers() { return replyToOnTimeoutMaxConcurrentConsumers; } public void setReplyToOnTimeoutMaxConcurrentConsumers( Integer replyToOnTimeoutMaxConcurrentConsumers) { this.replyToOnTimeoutMaxConcurrentConsumers = replyToOnTimeoutMaxConcurrentConsumers; } public Boolean getDeliveryPersistent() { return deliveryPersistent; } public void setDeliveryPersistent(Boolean deliveryPersistent) { this.deliveryPersistent = deliveryPersistent; } public Integer getDeliveryMode() { return deliveryMode; } public void setDeliveryMode(Integer deliveryMode) { this.deliveryMode = deliveryMode; } public Boolean getReplyToDeliveryPersistent() { return replyToDeliveryPersistent; } public void setReplyToDeliveryPersistent( Boolean replyToDeliveryPersistent) { this.replyToDeliveryPersistent = replyToDeliveryPersistent; } public Long getTimeToLive() { return timeToLive; } public void setTimeToLive(Long timeToLive) { this.timeToLive = timeToLive; } public MessageConverter getMessageConverter() { return messageConverter; } public void setMessageConverter(MessageConverter messageConverter) { this.messageConverter = messageConverter; } public Boolean getMapJmsMessage() { return mapJmsMessage; } public void setMapJmsMessage(Boolean mapJmsMessage) { this.mapJmsMessage = mapJmsMessage; } public Boolean getMessageIdEnabled() { return messageIdEnabled; } public void setMessageIdEnabled(Boolean messageIdEnabled) { this.messageIdEnabled = messageIdEnabled; } public Boolean getMessageTimestampEnabled() { return messageTimestampEnabled; } public void setMessageTimestampEnabled(Boolean messageTimestampEnabled) { this.messageTimestampEnabled = messageTimestampEnabled; } public Integer getPriority() { return priority; } public void setPriority(Integer priority) { this.priority = priority; } public Integer getAcknowledgementMode() { return acknowledgementMode; } public void setAcknowledgementMode(Integer acknowledgementMode) { this.acknowledgementMode = acknowledgementMode; } public Boolean getTransacted() { return transacted; } public void setTransacted(Boolean transacted) { this.transacted = transacted; } @Deprecated @DeprecatedConfigurationProperty public Boolean getTransactedInOut() { return transactedInOut; } @Deprecated public void setTransactedInOut(Boolean transactedInOut) { this.transactedInOut = transactedInOut; } public Boolean getLazyCreateTransactionManager() { return lazyCreateTransactionManager; } public void setLazyCreateTransactionManager( Boolean lazyCreateTransactionManager) { this.lazyCreateTransactionManager = lazyCreateTransactionManager; } public Boolean getEagerLoadingOfProperties() { return eagerLoadingOfProperties; } public void setEagerLoadingOfProperties(Boolean eagerLoadingOfProperties) { this.eagerLoadingOfProperties = eagerLoadingOfProperties; } public Boolean getDisableReplyTo() { return disableReplyTo; } public void setDisableReplyTo(Boolean disableReplyTo) { this.disableReplyTo = disableReplyTo; } public Boolean getPreserveMessageQos() { return preserveMessageQos; } public void setPreserveMessageQos(Boolean preserveMessageQos) { this.preserveMessageQos = preserveMessageQos; } public JmsOperations getJmsOperations() { return jmsOperations; } public void setJmsOperations(JmsOperations jmsOperations) { this.jmsOperations = jmsOperations; } public DestinationResolver getDestinationResolver() { return destinationResolver; } public void setDestinationResolver( DestinationResolver destinationResolver) { this.destinationResolver = destinationResolver; } public JmsProviderMetadata getProviderMetadata() { return providerMetadata; } public void setProviderMetadata(JmsProviderMetadata providerMetadata) { this.providerMetadata = providerMetadata; } public JmsOperations getMetadataJmsOperations() { return metadataJmsOperations; } public void setMetadataJmsOperations(JmsOperations metadataJmsOperations) { this.metadataJmsOperations = metadataJmsOperations; } public Boolean getAlwaysCopyMessage() { return alwaysCopyMessage; } public void setAlwaysCopyMessage(Boolean alwaysCopyMessage) { this.alwaysCopyMessage = alwaysCopyMessage; } public Boolean getUseMessageIDAsCorrelationID() { return useMessageIDAsCorrelationID; } public void setUseMessageIDAsCorrelationID( Boolean useMessageIDAsCorrelationID) { this.useMessageIDAsCorrelationID = useMessageIDAsCorrelationID; } public Long getRequestTimeout() { return requestTimeout; } public void setRequestTimeout(Long requestTimeout) { this.requestTimeout = requestTimeout; } public Long getRequestTimeoutCheckerInterval() { return requestTimeoutCheckerInterval; } public void setRequestTimeoutCheckerInterval( Long requestTimeoutCheckerInterval) { this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval; } public String getReplyTo() { return replyTo; } public void setReplyTo(String replyTo) { this.replyTo = replyTo; } public String getReplyToDestinationSelectorName() { return replyToDestinationSelectorName; } public void setReplyToDestinationSelectorName( String replyToDestinationSelectorName) { this.replyToDestinationSelectorName = replyToDestinationSelectorName; } public String getReplyToOverride() { return replyToOverride; } public void setReplyToOverride(String replyToOverride) { this.replyToOverride = replyToOverride; } public Boolean getReplyToSameDestinationAllowed() { return replyToSameDestinationAllowed; } public void setReplyToSameDestinationAllowed( Boolean replyToSameDestinationAllowed) { this.replyToSameDestinationAllowed = replyToSameDestinationAllowed; } public JmsMessageType getJmsMessageType() { return jmsMessageType; } public void setJmsMessageType(JmsMessageType jmsMessageType) { this.jmsMessageType = jmsMessageType; } public JmsKeyFormatStrategy getJmsKeyFormatStrategy() { return jmsKeyFormatStrategy; } public void setJmsKeyFormatStrategy( JmsKeyFormatStrategy jmsKeyFormatStrategy) { this.jmsKeyFormatStrategy = jmsKeyFormatStrategy; } public Boolean getTransferExchange() { return transferExchange; } public void setTransferExchange(Boolean transferExchange) { this.transferExchange = transferExchange; } public Boolean getAllowSerializedHeaders() { return allowSerializedHeaders; } public void setAllowSerializedHeaders(Boolean allowSerializedHeaders) { this.allowSerializedHeaders = allowSerializedHeaders; } public Boolean getTransferException() { return transferException; } public void setTransferException(Boolean transferException) { this.transferException = transferException; } public Boolean getTransferFault() { return transferFault; } public void setTransferFault(Boolean transferFault) { this.transferFault = transferFault; } public Boolean getAsyncStartListener() { return asyncStartListener; } public void setAsyncStartListener(Boolean asyncStartListener) { this.asyncStartListener = asyncStartListener; } public Boolean getAsyncStopListener() { return asyncStopListener; } public void setAsyncStopListener(Boolean asyncStopListener) { this.asyncStopListener = asyncStopListener; } public Boolean getTestConnectionOnStartup() { return testConnectionOnStartup; } public void setTestConnectionOnStartup(Boolean testConnectionOnStartup) { this.testConnectionOnStartup = testConnectionOnStartup; } public Boolean getForceSendOriginalMessage() { return forceSendOriginalMessage; } public void setForceSendOriginalMessage(Boolean forceSendOriginalMessage) { this.forceSendOriginalMessage = forceSendOriginalMessage; } public Boolean getDisableTimeToLive() { return disableTimeToLive; } public void setDisableTimeToLive(Boolean disableTimeToLive) { this.disableTimeToLive = disableTimeToLive; } public ReplyToType getReplyToType() { return replyToType; } public void setReplyToType(ReplyToType replyToType) { this.replyToType = replyToType; } public Boolean getAsyncConsumer() { return asyncConsumer; } public void setAsyncConsumer(Boolean asyncConsumer) { this.asyncConsumer = asyncConsumer; } public String getReplyToCacheLevelName() { return replyToCacheLevelName; } public void setReplyToCacheLevelName(String replyToCacheLevelName) { this.replyToCacheLevelName = replyToCacheLevelName; } public Boolean getAllowNullBody() { return allowNullBody; } public void setAllowNullBody(Boolean allowNullBody) { this.allowNullBody = allowNullBody; } public MessageListenerContainerFactory getMessageListenerContainerFactory() { return messageListenerContainerFactory; } public void setMessageListenerContainerFactory( MessageListenerContainerFactory messageListenerContainerFactory) { this.messageListenerContainerFactory = messageListenerContainerFactory; } public Boolean getIncludeSentJMSMessageID() { return includeSentJMSMessageID; } public void setIncludeSentJMSMessageID(Boolean includeSentJMSMessageID) { this.includeSentJMSMessageID = includeSentJMSMessageID; } public DefaultTaskExecutorType getDefaultTaskExecutorType() { return defaultTaskExecutorType; } public void setDefaultTaskExecutorType( DefaultTaskExecutorType defaultTaskExecutorType) { this.defaultTaskExecutorType = defaultTaskExecutorType; } public Boolean getIncludeAllJMSXProperties() { return includeAllJMSXProperties; } public void setIncludeAllJMSXProperties(Boolean includeAllJMSXProperties) { this.includeAllJMSXProperties = includeAllJMSXProperties; } public MessageCreatedStrategy getMessageCreatedStrategy() { return messageCreatedStrategy; } public void setMessageCreatedStrategy( MessageCreatedStrategy messageCreatedStrategy) { this.messageCreatedStrategy = messageCreatedStrategy; } public String getSelector() { return selector; } public void setSelector(String selector) { this.selector = selector; } public String getCorrelationProperty() { return correlationProperty; } public void setCorrelationProperty(String correlationProperty) { this.correlationProperty = correlationProperty; } } }