This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new f51f7eff350 CAMEL-20600: camel-activemq6 for using 6.x brokers
f51f7eff350 is described below
commit f51f7eff350cb688376c9e08c8d0245566f74bb8
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat May 18 15:23:13 2024 +0200
CAMEL-20600: camel-activemq6 for using 6.x brokers
---
.../camel/springboot/catalog/components.properties | 1 +
.../springboot/catalog/components/activemq.json | 4 +-
.../components/{activemq.json => activemq6.json} | 18 +-
components-starter/camel-activemq-starter/pom.xml | 2 +-
.../springboot/ActiveMQComponentConfiguration.java | 4 +-
.../pom.xml | 6 +-
.../src/main/docs/activemq6.json | 746 +++++++++++++++++++++
.../ActiveMQComponentAutoConfiguration.java | 77 +++
.../springboot/ActiveMQComponentConfiguration.java | 54 +-
.../springboot/ActiveMQComponentConverter.java | 87 +++
.../src/main/resources/META-INF/LICENSE.txt | 203 ++++++
.../src/main/resources/META-INF/NOTICE.txt | 11 +
...rk.boot.autoconfigure.AutoConfiguration.imports | 19 +
components-starter/pom.xml | 1 +
tooling/camel-spring-boot-bom/pom.xml | 5 +
tooling/camel-spring-boot-dependencies/pom.xml | 10 +
16 files changed, 1204 insertions(+), 44 deletions(-)
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
index 587e4c39b7c..369a4e47652 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
@@ -1,5 +1,6 @@
activemq
+activemq6
amqp
arangodb
as2
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
index 8a602a49bfd..64f9818922a 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
@@ -2,8 +2,8 @@
"component": {
"kind": "component",
"name": "activemq",
- "title": "ActiveMQ",
- "description": "Send messages to (or consume from) Apache ActiveMQ. This
component extends the Camel JMS component.",
+ "title": "ActiveMQ 5.x",
+ "description": "Send messages to (or consume from) Apache ActiveMQ 5.x.
This component extends the Camel JMS component.",
"deprecated": false,
"firstVersion": "1.0.0",
"label": "messaging",
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq6.json
similarity index 99%
copy from
catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
copy to
catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq6.json
index 8a602a49bfd..c11ceedab5e 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/activemq6.json
@@ -1,20 +1,20 @@
{
"component": {
"kind": "component",
- "name": "activemq",
- "title": "ActiveMQ",
- "description": "Send messages to (or consume from) Apache ActiveMQ. This
component extends the Camel JMS component.",
+ "name": "activemq6",
+ "title": "ActiveMQ 6.x",
+ "description": "Send messages to (or consume from) Apache ActiveMQ 6.x.
This component extends the Camel JMS component.",
"deprecated": false,
- "firstVersion": "1.0.0",
+ "firstVersion": "4.7.0",
"label": "messaging",
- "javaType": "org.apache.camel.component.activemq.ActiveMQComponent",
- "supportLevel": "Stable",
+ "javaType": "org.apache.camel.component.activemq6.ActiveMQComponent",
+ "supportLevel": "Preview",
"groupId": "org.apache.camel.springboot",
- "artifactId": "camel-activemq-starter",
+ "artifactId": "camel-activemq6-starter",
"version": "4.7.0-SNAPSHOT",
- "scheme": "activemq",
+ "scheme": "activemq6",
"extendsScheme": "jms",
- "syntax": "activemq:destinationType:destinationName",
+ "syntax": "activemq6:destinationType:destinationName",
"async": true,
"api": false,
"consumerOnly": false,
diff --git a/components-starter/camel-activemq-starter/pom.xml
b/components-starter/camel-activemq-starter/pom.xml
index 2b69842811c..fe03243a16a 100644
--- a/components-starter/camel-activemq-starter/pom.xml
+++ b/components-starter/camel-activemq-starter/pom.xml
@@ -26,7 +26,7 @@
</parent>
<artifactId>camel-activemq-starter</artifactId>
<packaging>jar</packaging>
- <name>Camel SB Starters :: ActiveMQ</name>
+ <name>Camel SB Starters :: ActiveMQ 5.x</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
diff --git
a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
index 73424e8a106..2b1705a6d1a 100644
---
a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
+++
b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
@@ -31,8 +31,8 @@ import
org.springframework.transaction.PlatformTransactionManager;
import org.springframework.util.ErrorHandler;
/**
- * Send messages to (or consume from) Apache ActiveMQ. This component extends
- * the Camel JMS component.
+ * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
+ * extends the Camel JMS component.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
diff --git a/components-starter/camel-activemq-starter/pom.xml
b/components-starter/camel-activemq6-starter/pom.xml
similarity index 92%
copy from components-starter/camel-activemq-starter/pom.xml
copy to components-starter/camel-activemq6-starter/pom.xml
index 2b69842811c..1f93c3ad0b4 100644
--- a/components-starter/camel-activemq-starter/pom.xml
+++ b/components-starter/camel-activemq6-starter/pom.xml
@@ -24,9 +24,9 @@
<artifactId>components-starter</artifactId>
<version>4.7.0-SNAPSHOT</version>
</parent>
- <artifactId>camel-activemq-starter</artifactId>
+ <artifactId>camel-activemq6-starter</artifactId>
<packaging>jar</packaging>
- <name>Camel SB Starters :: ActiveMQ</name>
+ <name>Camel SB Starters :: ActiveMQ 6.x</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -35,7 +35,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-activemq</artifactId>
+ <artifactId>camel-activemq6</artifactId>
<version>${camel-version}</version>
</dependency>
<!--START OF GENERATED CODE-->
diff --git
a/components-starter/camel-activemq6-starter/src/main/docs/activemq6.json
b/components-starter/camel-activemq6-starter/src/main/docs/activemq6.json
new file mode 100644
index 00000000000..47561c54dee
--- /dev/null
+++ b/components-starter/camel-activemq6-starter/src/main/docs/activemq6.json
@@ -0,0 +1,746 @@
+{
+ "groups": [
+ {
+ "name": "camel.component.activemq6",
+ "type":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.customizer",
+ "type":
"org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "sourceMethod": "getCustomizer()"
+ }
+ ],
+ "properties": [
+ {
+ "name": "camel.component.activemq6.accept-messages-while-stopping",
+ "type": "java.lang.Boolean",
+ "description": "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 [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.acknowledgement-mode-name",
+ "type": "java.lang.String",
+ "description": "The JMS acknowledgement name, which is one of:
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": "AUTO_ACKNOWLEDGE"
+ },
+ {
+ "name": "camel.component.activemq6.allow-additional-headers",
+ "type": "java.lang.String",
+ "description": "This option is used to allow additional headers which
may have values that are invalid according to JMS specification. For example,
some message systems, such as WMQ, do this with header names using prefix
JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can
specify multiple header names separated by comma, and use as suffix for
wildcard matching.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.allow-auto-wired-connection-factory",
+ "type": "java.lang.Boolean",
+ "description": "Whether to auto-discover ConnectionFactory from the
registry, if no connection factory has been configured. If only one instance of
ConnectionFactory is found then it will be used. This is enabled by default.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name":
"camel.component.activemq6.allow-auto-wired-destination-resolver",
+ "type": "java.lang.Boolean",
+ "description": "Whether to auto-discover DestinationResolver from the
registry, if no destination resolver has been configured. If only one instance
of DestinationResolver is found then it will be used. This is enabled by
default.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.allow-null-body",
+ "type": "java.lang.Boolean",
+ "description": "Whether to allow sending messages with no body. If this
option is false and the message body is null, then an JMSException is thrown.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.allow-reply-manager-quick-stop",
+ "type": "java.lang.Boolean",
+ "description": "Whether the DefaultMessageListenerContainer used in the
reply managers for request-reply messaging allow the
DefaultMessageListenerContainer.runningAllowed flag to quick stop in case
JmsConfiguration#isAcceptMessagesWhileStopping 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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.allow-serialized-headers",
+ "type": "java.lang.Boolean",
+ "description": "Controls whether or not to include serialized headers.
Applies only when transferExchange is true. This requires that the objects are
serializable. Camel will exclude any non-serializable objects and log it at
WARN level.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.always-copy-message",
+ "type": "java.lang.Boolean",
+ "description": "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)",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.artemis-consumer-priority",
+ "type": "java.lang.Integer",
+ "description": "Consumer priorities allow you to ensure that high
priority consumers receive messages while they are active. Normally, active
consumers connected to a queue receive messages from it in a round-robin
fashion. When consumer priorities are in use, messages are delivered
round-robin if multiple active consumers exist with the same high priority.
Messages will only going to lower priority consumers when the high priority
consumers do not have credit available to consume [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.artemis-streaming-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether optimizing for Apache Artemis streaming mode.
This can reduce memory overhead when using Artemis with JMS StreamMessage
types. This option must only be enabled if Apache Artemis is being used.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.async-consumer",
+ "type": "java.lang.Boolean",
+ "description": "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 b [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.async-start-listener",
+ "type": "java.lang.Boolean",
+ "description": "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
fail-over. 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 tha [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.async-stop-listener",
+ "type": "java.lang.Boolean",
+ "description": "Whether to stop the JmsConsumer message listener
asynchronously, when stopping a route.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.auto-startup",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether the consumer container should
auto-startup.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.autowired-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether autowiring is enabled. This is used for
automatic autowiring options (the option must be marked as autowired) by
looking up in the registry to find if there is a single instance of matching
type, which then gets configured on the component. This can be used for
automatic configuring JDBC data sources, JMS connection factories, AWS Clients,
etc.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.broker-u-r-l",
+ "type": "java.lang.String",
+ "description": "Sets the broker URL to use to connect to ActiveMQ. If
none configured then localhost:61616 is used by default (however can be
overridden by configuration from environment variables)",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.cache-level",
+ "type": "java.lang.Integer",
+ "description": "Sets the cache level by ID for the underlying JMS
resources. See cacheLevelName option for more details.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.cache-level-name",
+ "type": "java.lang.String",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": "CACHE_AUTO"
+ },
+ {
+ "name": "camel.component.activemq6.client-id",
+ "type": "java.lang.String",
+ "description": "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 with
JMS 1.1.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.concurrent-consumers",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1
+ },
+ {
+ "name": "camel.component.activemq6.configuration",
+ "type": "org.apache.camel.component.jms.JmsConfiguration",
+ "description": "To use a shared JMS configuration. The option is a
org.apache.camel.component.jms.JmsConfiguration type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.connection-factory",
+ "type": "jakarta.jms.ConnectionFactory",
+ "description": "The connection factory to be use. A connection factory
must be configured either on the component or endpoint. The option is a
jakarta.jms.ConnectionFactory type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.consumer-type",
+ "type": "org.apache.camel.component.jms.ConsumerType",
+ "description": "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 [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.correlation-property",
+ "type": "java.lang.String",
+ "description": "When using InOut exchange pattern use this JMS property
instead of JMSCorrelationID JMS property to correlate messages. If set messages
will be correlated solely on the value of this property JMSCorrelationID
property will be ignored and not set by Camel.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.customizer.enabled",
+ "type": "java.lang.Boolean",
+ "sourceType":
"org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+ },
+ {
+ "name": "camel.component.activemq6.default-task-executor-type",
+ "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+ "description": "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 thread-pool-like). If not set, it defaults to the
previous behaviour, which uses a cached thread pool for consumer endpoints and
SimpleAsync for reply consu [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.delivery-delay",
+ "type": "java.lang.Long",
+ "description": "Sets delivery delay to use for send calls for JMS. This
option requires JMS 2.0 compliant broker.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": -1
+ },
+ {
+ "name": "camel.component.activemq6.delivery-mode",
+ "type": "java.lang.Integer",
+ "description": "Specifies the delivery mode to be used. Possible values
are those defined by jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and
PERSISTENT = 2.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.delivery-persistent",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether persistent delivery is used by
default.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.destination-resolver",
+ "type":
"org.springframework.jms.support.destination.DestinationResolver",
+ "description": "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). The option is a
org.springframework.jms.support.destination.DestinationResolver type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.disable-reply-to",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether Camel ignores the JMSReplyTo header in
messages. If true, Camel does not send a reply back to the destination
specified in the JMSReplyTo header. You can use this option if you want Camel
to consume from a route and you do not want Camel to automatically send back a
reply message because another component in your code handles the reply message.
You can also use this option if you want to use Camel as a proxy between
different message brokers and yo [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.disable-time-to-live",
+ "type": "java.lang.Boolean",
+ "description": "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 expi [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.durable-subscription-name",
+ "type": "java.lang.String",
+ "description": "The durable subscriber name for specifying durable topic
subscriptions. The clientId option must be configured as well.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.eager-loading-of-properties",
+ "type": "java.lang.Boolean",
+ "description": "Enables eager loading of JMS properties and payload 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. See also the option
eagerPoisonBody.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.eager-poison-body",
+ "type": "java.lang.String",
+ "description": "If eagerLoadingOfProperties is enabled and the JMS
message payload (JMS body or JMS properties) is poison (cannot be
read\/mapped), then set this text as the message body instead so the message
can be processed (the cause of the poison are already stored as exception on
the Exchange). This can be turned off by setting eagerPoisonBody=false. See
also the option eagerLoadingOfProperties.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": "Poison JMS message due to ${exception.message}"
+ },
+ {
+ "name": "camel.component.activemq6.embedded",
+ "type": "java.lang.Boolean",
+ "description": "Use an embedded in-memory (non-persistent) ActiveMQ
broker for development and testing purposes. You must have activemq-broker JAR
on the classpath.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether to enable auto configuration of the activemq6
component. This is enabled by default.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.error-handler",
+ "type": "org.springframework.util.ErrorHandler",
+ "description": "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. The opt [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.error-handler-log-stack-trace",
+ "type": "java.lang.Boolean",
+ "description": "Allows to control whether stack-traces should be logged
or not, by the default errorHandler.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.error-handler-logging-level",
+ "type": "org.apache.camel.LoggingLevel",
+ "description": "Allows to configure the default errorHandler logging
level for logging uncaught exceptions.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.exception-listener",
+ "type": "jakarta.jms.ExceptionListener",
+ "description": "Specifies the JMS Exception Listener that is to be
notified of any underlying JMS exceptions. The option is a
jakarta.jms.ExceptionListener type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.explicit-qos-enabled",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.expose-listener-session",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether the listener session should be exposed
when consuming messages.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.force-send-original-message",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.format-date-headers-to-iso8601",
+ "type": "java.lang.Boolean",
+ "description": "Sets whether JMS date properties should be formatted
according to the ISO 8601 standard.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.header-filter-strategy",
+ "type": "org.apache.camel.spi.HeaderFilterStrategy",
+ "description": "To use a custom
org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel
message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.idle-consumer-limit",
+ "type": "java.lang.Integer",
+ "description": "Specify the limit for the number of consumers that are
allowed to be idle at any given time.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1
+ },
+ {
+ "name": "camel.component.activemq6.idle-task-execution-limit",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1
+ },
+ {
+ "name": "camel.component.activemq6.include-all-j-m-s-x-properties",
+ "type": "java.lang.Boolean",
+ "description": "Whether to include all JMSX prefixed 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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.include-correlation-i-d-as-bytes",
+ "type": "java.lang.Boolean",
+ "description": "Whether the JMS consumer should include
JMSCorrelationIDAsBytes as a header on the Camel Message.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.include-sent-j-m-s-message-i-d",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.jms-key-format-strategy",
+ "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+ "description": "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 [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.jms-message-type",
+ "type": "org.apache.camel.component.jms.JmsMessageType",
+ "description": "Allows you to force the use of a specific
jakarta.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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.lazy-create-transaction-manager",
+ "type": "java.lang.Boolean",
+ "description": "If true, Camel will create a JmsTransactionManager, if
there is no transactionManager injected when option transacted=true.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.lazy-start-producer",
+ "type": "java.lang.Boolean",
+ "description": "Whether the producer should be started lazy (on the
first message). By starting lazy you can use this to allow CamelContext and
routes to startup in situations where a producer may otherwise fail during
starting and cause the route to fail being started. By deferring this startup
to be lazy then the startup failure can be handled during routing messages via
Camel's routing error handlers. Beware that when the first message is processed
then creating and starting the [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.map-jms-message",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether Camel should auto map the received JMS
message to a suited payload type, such as jakarta.jms.TextMessage to a String
etc.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.max-concurrent-consumers",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.max-messages-per-task",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": -1
+ },
+ {
+ "name": "camel.component.activemq6.message-converter",
+ "type": "org.springframework.jms.support.converter.MessageConverter",
+ "description": "To use a custom Spring
org.springframework.jms.support.converter.MessageConverter so you can be in
control how to map to\/from a jakarta.jms.Message. The option is a
org.springframework.jms.support.converter.MessageConverter type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.message-created-strategy",
+ "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+ "description": "To use the given MessageCreatedStrategy which are
invoked when Camel creates new instances of jakarta.jms.Message objects when
Camel is sending a JMS message. The option is a
org.apache.camel.component.jms.MessageCreatedStrategy type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.message-id-enabled",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.message-listener-container-factory",
+ "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+ "description": "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.
The option is a org.apache.camel.component.jms.MessageListenerContainerFactory
type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.message-timestamp-enabled",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.password",
+ "type": "java.lang.String",
+ "description": "Password to use with the ConnectionFactory. You can also
configure username\/password directly on the ConnectionFactory.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.preserve-message-qos",
+ "type": "java.lang.Boolean",
+ "description": "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 c [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.priority",
+ "type": "java.lang.Integer",
+ "description": "Values greater than 1 specify the message priority when
sending (where 1 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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 4
+ },
+ {
+ "name": "camel.component.activemq6.pub-sub-no-local",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether to inhibit the delivery of messages
published by its own connection.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.queue-browse-strategy",
+ "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+ "description": "To use a custom QueueBrowseStrategy when browsing
queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy
type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.receive-timeout",
+ "type": "java.lang.Long",
+ "description": "The timeout for receiving messages (in milliseconds).
The option is a long type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1000
+ },
+ {
+ "name": "camel.component.activemq6.recovery-interval",
+ "type": "java.lang.Long",
+ "description": "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. The option is a long type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 5000
+ },
+ {
+ "name": "camel.component.activemq6.reply-to",
+ "type": "java.lang.String",
+ "description": "Provides an explicit ReplyTo destination (overrides any
incoming value of Message.getJMSReplyTo() in consumer).",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-cache-level-name",
+ "type": "java.lang.String",
+ "description": "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 al [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-concurrent-consumers",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-consumer-type",
+ "type": "org.apache.camel.component.jms.ConsumerType",
+ "description": "The consumer type of the reply consumer (when doing
request\/reply), 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 dete [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-delivery-persistent",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether to use persistent delivery by default
for replies.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-destination-selector-name",
+ "type": "java.lang.String",
+ "description": "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).",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-max-concurrent-consumers",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name":
"camel.component.activemq6.reply-to-on-timeout-max-concurrent-consumers",
+ "type": "java.lang.Integer",
+ "description": "Specifies the maximum number of concurrent consumers for
continue routing when timeout occurred when using request\/reply over JMS.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-override",
+ "type": "java.lang.String",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-same-destination-allowed",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.reply-to-type",
+ "type": "org.apache.camel.component.jms.ReplyToType",
+ "description": "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 c [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.request-timeout",
+ "type": "java.lang.Long",
+ "description": "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. The option is a long type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 20000
+ },
+ {
+ "name": "camel.component.activemq6.request-timeout-checker-interval",
+ "type": "java.lang.Long",
+ "description": "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. The option is a long type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 1000
+ },
+ {
+ "name": "camel.component.activemq6.selector",
+ "type": "java.lang.String",
+ "description": "Sets the JMS selector to use",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.stream-message-type-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Sets whether StreamMessage type is enabled or not.
Message payloads of streaming kind such as files, InputStream, etc will either
by sent as BytesMessage or StreamMessage. This option controls which kind will
be used. By default BytesMessage is used which enforces the entire message
payload to be read into memory. By enabling this option the message payload is
read into memory in chunks and each chunk is then written to the StreamMessage
until no more data.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.subscription-durable",
+ "type": "java.lang.Boolean",
+ "description": "Set whether to make the subscription durable. The
durable subscription name to be used can be specified through the
subscriptionName property. Default is false. Set this to true to register a
durable subscription, typically in combination with a subscriptionName value
(unless your message listener class name is good enough as subscription name).
Only makes sense when listening to a topic (pub-sub domain), therefore this
method switches the pubSubDomain flag as well.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.subscription-name",
+ "type": "java.lang.String",
+ "description": "Set the name of a subscription to create. To be applied
in case of a topic (pub-sub domain) with a shared or durable subscription. The
subscription name needs to be unique within this client's JMS client id.
Default is the class name of the specified message listener. Note: Only 1
concurrent consumer (which is the default of this message listener container)
is allowed for each subscription, except for a shared subscription (which
requires JMS 2.0).",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.subscription-shared",
+ "type": "java.lang.Boolean",
+ "description": "Set whether to make the subscription shared. The shared
subscription name to be used can be specified through the subscriptionName
property. Default is false. Set this to true to register a shared subscription,
typically in combination with a subscriptionName value (unless your message
listener class name is good enough as subscription name). Note that shared
subscriptions may also be durable, so this flag can (and often will) be
combined with subscriptionDurable as [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.synchronous",
+ "type": "java.lang.Boolean",
+ "description": "Sets whether synchronous processing should be strictly
used",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.task-executor",
+ "type": "org.springframework.core.task.TaskExecutor",
+ "description": "Allows you to specify a custom task executor for
consuming messages. The option is a org.springframework.core.task.TaskExecutor
type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.temporary-queue-resolver",
+ "type": "org.apache.camel.component.jms.TemporaryQueueResolver",
+ "description": "A pluggable TemporaryQueueResolver that allows you to
use your own resolver for creating temporary queues (some messaging systems has
special requirements for creating temporary queues). The option is a
org.apache.camel.component.jms.TemporaryQueueResolver type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.test-connection-on-startup",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.time-to-live",
+ "type": "java.lang.Long",
+ "description": "When sending messages, specifies the time-to-live of the
message (in milliseconds).",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": -1
+ },
+ {
+ "name": "camel.component.activemq6.transacted",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether to use transacted mode",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.transacted-in-out",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether InOut operations (request reply)
default to using transacted mode If this flag is set to true, then Spring
JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as
transacted on the JmsTemplate used for InOut operations. Note from Spring JMS:
that within a JTA transaction, the parameters passed to createQueue,
createTopic methods are not taken into account. Depending on the Java EE
transaction context, the container makes its [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.transaction-manager",
+ "type": "org.springframework.transaction.PlatformTransactionManager",
+ "description": "The Spring transaction manager to use. The option is a
org.springframework.transaction.PlatformTransactionManager type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.transaction-name",
+ "type": "java.lang.String",
+ "description": "The name of the transaction to use.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name": "camel.component.activemq6.transaction-timeout",
+ "type": "java.lang.Integer",
+ "description": "The timeout value of the transaction (in seconds), if
using transacted mode.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": -1
+ },
+ {
+ "name": "camel.component.activemq6.transfer-exception",
+ "type": "java.lang.Boolean",
+ "description": "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 jakarta.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 c [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.transfer-exchange",
+ "type": "java.lang.Boolean",
+ "description": "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 [...]
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.trust-all-packages",
+ "type": "java.lang.Boolean",
+ "description": "Define if all Java packages are trusted or not (for Java
object JMS message types). Notice its not recommended practice to send Java
serialized objects over network. Setting this to true can expose security
risks, so use this with care.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.use-message-i-d-as-correlation-i-d",
+ "type": "java.lang.Boolean",
+ "description": "Specifies whether JMSMessageID should always be used as
JMSCorrelationID for InOut messages.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.use-pooled-connection",
+ "type": "java.lang.Boolean",
+ "description": "Enables or disables whether a PooledConnectionFactory
will be used so that when messages are sent to ActiveMQ from outside a message
consuming thread, pooling will be used rather than the default with the Spring
JmsTemplate which will create a new connection, session, producer for each
message then close them all down again. The default value is true.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.activemq6.use-single-connection",
+ "type": "java.lang.Boolean",
+ "description": "Enables or disables whether a Spring
SingleConnectionFactory will be used so that when messages are sent to ActiveMQ
from outside a message consuming thread, pooling will be used rather than the
default with the Spring JmsTemplate which will create a new connection,
session, producer for each message then close them all down again. The default
value is false and a pooled connection is used by default.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.activemq6.username",
+ "type": "java.lang.String",
+ "description": "Username to use with the ConnectionFactory. You can also
configure username\/password directly on the ConnectionFactory.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration"
+ },
+ {
+ "name":
"camel.component.activemq6.wait-for-provision-correlation-to-be-updated-counter",
+ "type": "java.lang.Integer",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 50
+ },
+ {
+ "name":
"camel.component.activemq6.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+ "type": "java.lang.Long",
+ "description": "Interval in millis to sleep each time while waiting for
provisional correlation id to be updated. The option is a long type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 100
+ },
+ {
+ "name":
"camel.component.activemq6.wait-for-temporary-reply-to-to-be-updated-counter",
+ "type": "java.lang.Integer",
+ "description": "Number of times to wait for temporary replyTo queue to
be created and ready when doing request\/reply over JMS.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 200
+ },
+ {
+ "name":
"camel.component.activemq6.wait-for-temporary-reply-to-to-be-updated-thread-sleeping-time",
+ "type": "java.lang.Long",
+ "description": "Interval in millis to sleep each time while waiting for
temporary replyTo queue to be ready. The option is a long type.",
+ "sourceType":
"org.apache.camel.component.activemq6.springboot.ActiveMQComponentConfiguration",
+ "defaultValue": 100
+ }
+ ],
+ "hints": []
+}
\ No newline at end of file
diff --git
a/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentAutoConfiguration.java
b/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentAutoConfiguration.java
new file mode 100644
index 00000000000..531bd689056
--- /dev/null
+++
b/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentAutoConfiguration.java
@@ -0,0 +1,77 @@
+/*
+ * 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.activemq6.springboot;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
+import org.apache.camel.component.activemq6.ActiveMQComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
+import
org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans;
+import org.apache.camel.spring.boot.util.ConditionalOnHierarchicalProperties;
+import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration(proxyBeanMethods = false)
+@Conditional(ConditionalOnCamelContextAndAutoConfigurationBeans.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,ActiveMQComponentConfiguration.class})
+@ConditionalOnHierarchicalProperties({"camel.component",
"camel.component.activemq6"})
+@AutoConfigureAfter({CamelAutoConfiguration.class,
ActiveMQComponentConverter.class})
+public class ActiveMQComponentAutoConfiguration {
+
+ @Autowired
+ private ApplicationContext applicationContext;
+ private final CamelContext camelContext;
+ @Autowired
+ private ActiveMQComponentConfiguration configuration;
+
+ public ActiveMQComponentAutoConfiguration(
+ org.apache.camel.CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+
+ @Lazy
+ @Bean
+ public ComponentCustomizer configureActiveMQComponent() {
+ return new ComponentCustomizer() {
+ @Override
+ public void configure(String name, Component target) {
+ CamelPropertiesHelper.copyProperties(camelContext,
configuration, target);
+ }
+ @Override
+ public boolean isEnabled(String name, Component target) {
+ return HierarchicalPropertiesEvaluator.evaluate(
+ applicationContext,
+ "camel.component.customizer",
+ "camel.component.activemq6.customizer")
+ && target instanceof ActiveMQComponent;
+ }
+ };
+ }
+}
\ No newline at end of file
diff --git
a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
b/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentConfiguration.java
similarity index 97%
copy from
components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
copy to
components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentConfiguration.java
index 73424e8a106..30bbd34649d 100644
---
a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
+++
b/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentConfiguration.java
@@ -14,12 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.component.activemq.springboot;
+package org.apache.camel.component.activemq6.springboot;
import jakarta.jms.ConnectionFactory;
import jakarta.jms.ExceptionListener;
import org.apache.camel.LoggingLevel;
-import org.apache.camel.component.activemq.ActiveMQComponent;
+import org.apache.camel.component.activemq6.ActiveMQComponent;
import org.apache.camel.component.jms.*;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -31,18 +31,18 @@ import
org.springframework.transaction.PlatformTransactionManager;
import org.springframework.util.ErrorHandler;
/**
- * Send messages to (or consume from) Apache ActiveMQ. This component extends
- * the Camel JMS component.
+ * Send messages to (or consume from) Apache ActiveMQ 6.x. This component
+ * extends the Camel JMS component.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
-@ConfigurationProperties(prefix = "camel.component.activemq")
+@ConfigurationProperties(prefix = "camel.component.activemq6")
public class ActiveMQComponentConfiguration
extends
ComponentConfigurationPropertiesCommon {
/**
- * Whether to enable auto configuration of the activemq component. This is
+ * Whether to enable auto configuration of the activemq6 component. This is
* enabled by default.
*/
private Boolean enabled;
@@ -51,7 +51,7 @@ public class ActiveMQComponentConfiguration
* then localhost:61616 is used by default (however can be overridden by
* configuration from environment variables)
*/
- private String brokerUrl;
+ private String brokerURL;
/**
* 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
@@ -474,7 +474,7 @@ public class ActiveMQComponentConfiguration
* actual JMSMessageID that was used by the JMS client when the message was
* sent to the JMS destination.
*/
- private Boolean includeSentJmsMessageId = false;
+ private Boolean includeSentJMSMessageID = 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
@@ -605,7 +605,7 @@ public class ActiveMQComponentConfiguration
* JMSXAppID, and JMSXUserID etc. Note: If you are using a custom
* headerFilterStrategy then this option does not apply.
*/
- private Boolean includeAllJmsxProperties = false;
+ private Boolean includeAllJMSXProperties = false;
/**
* Whether the JMS consumer should include JMSCorrelationIDAsBytes as a
* header on the Camel Message.
@@ -752,7 +752,7 @@ public class ActiveMQComponentConfiguration
* Specifies whether JMSMessageID should always be used as JMSCorrelationID
* for InOut messages.
*/
- private Boolean useMessageIdAsCorrelationId = false;
+ private Boolean useMessageIDAsCorrelationID = false;
/**
* 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
@@ -843,12 +843,12 @@ public class ActiveMQComponentConfiguration
*/
private Integer transactionTimeout = -1;
- public String getBrokerUrl() {
- return brokerUrl;
+ public String getBrokerURL() {
+ return brokerURL;
}
- public void setBrokerUrl(String brokerUrl) {
- this.brokerUrl = brokerUrl;
+ public void setBrokerURL(String brokerURL) {
+ this.brokerURL = brokerURL;
}
public String getClientId() {
@@ -1288,12 +1288,12 @@ public class ActiveMQComponentConfiguration
this.forceSendOriginalMessage = forceSendOriginalMessage;
}
- public Boolean getIncludeSentJmsMessageId() {
- return includeSentJmsMessageId;
+ public Boolean getIncludeSentJMSMessageID() {
+ return includeSentJMSMessageID;
}
- public void setIncludeSentJmsMessageId(Boolean includeSentJmsMessageId) {
- this.includeSentJmsMessageId = includeSentJmsMessageId;
+ public void setIncludeSentJMSMessageID(Boolean includeSentJMSMessageID) {
+ this.includeSentJMSMessageID = includeSentJMSMessageID;
}
public String getReplyToCacheLevelName() {
@@ -1427,12 +1427,12 @@ public class ActiveMQComponentConfiguration
this.idleTaskExecutionLimit = idleTaskExecutionLimit;
}
- public Boolean getIncludeAllJmsxProperties() {
- return includeAllJmsxProperties;
+ public Boolean getIncludeAllJMSXProperties() {
+ return includeAllJMSXProperties;
}
- public void setIncludeAllJmsxProperties(Boolean includeAllJmsxProperties) {
- this.includeAllJmsxProperties = includeAllJmsxProperties;
+ public void setIncludeAllJMSXProperties(Boolean includeAllJMSXProperties) {
+ this.includeAllJMSXProperties = includeAllJMSXProperties;
}
public Boolean getIncludeCorrelationIDAsBytes() {
@@ -1593,13 +1593,13 @@ public class ActiveMQComponentConfiguration
this.trustAllPackages = trustAllPackages;
}
- public Boolean getUseMessageIdAsCorrelationId() {
- return useMessageIdAsCorrelationId;
+ public Boolean getUseMessageIDAsCorrelationID() {
+ return useMessageIDAsCorrelationID;
}
- public void setUseMessageIdAsCorrelationId(
- Boolean useMessageIdAsCorrelationId) {
- this.useMessageIdAsCorrelationId = useMessageIdAsCorrelationId;
+ public void setUseMessageIDAsCorrelationID(
+ Boolean useMessageIDAsCorrelationID) {
+ this.useMessageIDAsCorrelationID = useMessageIDAsCorrelationID;
}
public Integer getWaitForProvisionCorrelationToBeUpdatedCounter() {
diff --git
a/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentConverter.java
b/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentConverter.java
new file mode 100644
index 00000000000..e3ded26f77d
--- /dev/null
+++
b/components-starter/camel-activemq6-starter/src/main/java/org/apache/camel/component/activemq6/springboot/ActiveMQComponentConverter.java
@@ -0,0 +1,87 @@
+/*
+ * 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.activemq6.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import org.springframework.beans.factory.annotation.Autowired;
+import
org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+import org.springframework.stereotype.Component;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration(proxyBeanMethods = false)
+@ConfigurationPropertiesBinding
+@Component
+public class ActiveMQComponentConverter implements GenericConverter {
+
+ @Autowired
+ private ApplicationContext applicationContext;
+
+ public Set<ConvertiblePair> getConvertibleTypes() {
+ Set<ConvertiblePair> answer = new LinkedHashSet<>();
+ answer.add(new ConvertiblePair(String.class,
jakarta.jms.ConnectionFactory.class));
+ answer.add(new ConvertiblePair(String.class,
org.springframework.core.task.TaskExecutor.class));
+ answer.add(new ConvertiblePair(String.class,
org.apache.camel.component.jms.JmsConfiguration.class));
+ answer.add(new ConvertiblePair(String.class,
org.springframework.jms.support.destination.DestinationResolver.class));
+ answer.add(new ConvertiblePair(String.class,
org.springframework.util.ErrorHandler.class));
+ answer.add(new ConvertiblePair(String.class,
jakarta.jms.ExceptionListener.class));
+ answer.add(new ConvertiblePair(String.class,
org.springframework.jms.support.converter.MessageConverter.class));
+ answer.add(new ConvertiblePair(String.class,
org.apache.camel.component.jms.MessageCreatedStrategy.class));
+ answer.add(new ConvertiblePair(String.class,
org.apache.camel.component.jms.MessageListenerContainerFactory.class));
+ answer.add(new ConvertiblePair(String.class,
org.apache.camel.component.jms.QueueBrowseStrategy.class));
+ answer.add(new ConvertiblePair(String.class,
org.apache.camel.component.jms.TemporaryQueueResolver.class));
+ answer.add(new ConvertiblePair(String.class,
org.apache.camel.spi.HeaderFilterStrategy.class));
+ answer.add(new ConvertiblePair(String.class,
org.springframework.transaction.PlatformTransactionManager.class));
+ return answer;
+ }
+
+ public Object convert(
+ Object source,
+ TypeDescriptor sourceType,
+ TypeDescriptor targetType) {
+ if (source == null) {
+ return null;
+ }
+ String ref = source.toString();
+ if (!ref.startsWith("#")) {
+ return null;
+ }
+ ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+ switch (targetType.getName()) {
+ case "jakarta.jms.ConnectionFactory": return
applicationContext.getBean(ref, jakarta.jms.ConnectionFactory.class);
+ case "org.springframework.core.task.TaskExecutor": return
applicationContext.getBean(ref,
org.springframework.core.task.TaskExecutor.class);
+ case "org.apache.camel.component.jms.JmsConfiguration": return
applicationContext.getBean(ref,
org.apache.camel.component.jms.JmsConfiguration.class);
+ case
"org.springframework.jms.support.destination.DestinationResolver": return
applicationContext.getBean(ref,
org.springframework.jms.support.destination.DestinationResolver.class);
+ case "org.springframework.util.ErrorHandler": return
applicationContext.getBean(ref, org.springframework.util.ErrorHandler.class);
+ case "jakarta.jms.ExceptionListener": return
applicationContext.getBean(ref, jakarta.jms.ExceptionListener.class);
+ case "org.springframework.jms.support.converter.MessageConverter":
return applicationContext.getBean(ref,
org.springframework.jms.support.converter.MessageConverter.class);
+ case "org.apache.camel.component.jms.MessageCreatedStrategy":
return applicationContext.getBean(ref,
org.apache.camel.component.jms.MessageCreatedStrategy.class);
+ case
"org.apache.camel.component.jms.MessageListenerContainerFactory": return
applicationContext.getBean(ref,
org.apache.camel.component.jms.MessageListenerContainerFactory.class);
+ case "org.apache.camel.component.jms.QueueBrowseStrategy": return
applicationContext.getBean(ref,
org.apache.camel.component.jms.QueueBrowseStrategy.class);
+ case "org.apache.camel.component.jms.TemporaryQueueResolver":
return applicationContext.getBean(ref,
org.apache.camel.component.jms.TemporaryQueueResolver.class);
+ case "org.apache.camel.spi.HeaderFilterStrategy": return
applicationContext.getBean(ref,
org.apache.camel.spi.HeaderFilterStrategy.class);
+ case "org.springframework.transaction.PlatformTransactionManager":
return applicationContext.getBean(ref,
org.springframework.transaction.PlatformTransactionManager.class);
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git
a/components-starter/camel-activemq6-starter/src/main/resources/META-INF/LICENSE.txt
b/components-starter/camel-activemq6-starter/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 00000000000..6b0b1270ff0
--- /dev/null
+++
b/components-starter/camel-activemq6-starter/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
+
diff --git
a/components-starter/camel-activemq6-starter/src/main/resources/META-INF/NOTICE.txt
b/components-starter/camel-activemq6-starter/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 00000000000..2e215bf2e6b
--- /dev/null
+++
b/components-starter/camel-activemq6-starter/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Apache Camel distribution. ==
+ =========================================================================
+
+ This product includes software developed by
+ The Apache Software Foundation (http://www.apache.org/).
+
+ Please read the different LICENSE files present in the licenses directory of
+ this distribution.
diff --git
a/components-starter/camel-activemq6-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
b/components-starter/camel-activemq6-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000000..94137e6eb3c
--- /dev/null
+++
b/components-starter/camel-activemq6-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+org.apache.camel.component.activemq6.springboot.ActiveMQComponentConverter
+org.apache.camel.component.activemq6.springboot.ActiveMQComponentAutoConfiguration
diff --git a/components-starter/pom.xml b/components-starter/pom.xml
index d6883366b37..f50644924ac 100644
--- a/components-starter/pom.xml
+++ b/components-starter/pom.xml
@@ -105,6 +105,7 @@
<modules>
<module>camel-activemq-starter</module>
+ <module>camel-activemq6-starter</module>
<module>camel-amqp-starter</module>
<module>camel-arangodb-starter</module>
<module>camel-as2-starter</module>
diff --git a/tooling/camel-spring-boot-bom/pom.xml
b/tooling/camel-spring-boot-bom/pom.xml
index 515daaf6722..44ebbece7d0 100644
--- a/tooling/camel-spring-boot-bom/pom.xml
+++ b/tooling/camel-spring-boot-bom/pom.xml
@@ -38,6 +38,11 @@
<artifactId>camel-activemq-starter</artifactId>
<version>4.7.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-activemq6-starter</artifactId>
+ <version>4.7.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-amqp-starter</artifactId>
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml
b/tooling/camel-spring-boot-dependencies/pom.xml
index abdb1672e5d..44e07569af3 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -282,6 +282,11 @@
<artifactId>camel-activemq-starter</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-activemq6-starter</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-amqp-starter</artifactId>
@@ -2082,6 +2087,11 @@
<artifactId>camel-activemq</artifactId>
<version>4.7.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-activemq6</artifactId>
+ <version>4.7.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-allcomponents</artifactId>