This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 2358fd799c Add ActiveMQ 6 extension
2358fd799c is described below
commit 2358fd799c6d6d81a5d47da7c3fba00420319b93
Author: Gaƫlle Fournier <[email protected]>
AuthorDate: Wed Nov 12 15:45:36 2025 +0100
Add ActiveMQ 6 extension
Closes #6104
---
catalog/pom.xml | 13 ++
.../modules/ROOT/examples/components/activemq6.yml | 13 ++
docs/modules/ROOT/nav.adoc | 1 +
.../ROOT/pages/reference/extensions/activemq6.adoc | 86 +++++++++++
extensions/activemq6/deployment/pom.xml | 67 +++++++++
.../activemq6/deployment/ActiveMQ6Processor.java | 141 ++++++++++++++++++
extensions/activemq6/pom.xml | 39 +++++
extensions/activemq6/runtime/pom.xml | 109 ++++++++++++++
.../runtime/src/main/doc/limitations.adoc | 2 +
.../activemq6/runtime/src/main/doc/usage.adoc | 9 ++
.../activemq6/graal/ActiveMQSubstitutions.java | 43 ++++++
.../activemq6/graal/SpringJMSSubstitutions.java | 89 ++++++++++++
.../main/resources/META-INF/quarkus-extension.yaml | 33 +++++
extensions/pom.xml | 1 +
.../scheme/MessagingComponentSchemeProducer.java | 2 +
integration-tests/activemq6/pom.xml | 161 +++++++++++++++++++++
.../it/ActiveMQConnectionFactoryProducer.java | 47 ++++++
.../component/activemq6/it/ActiveMQ6IT.java | 24 +++
.../component/activemq6/it/ActiveMQ6Test.java | 31 ++++
integration-tests/pom.xml | 1 +
poms/bom/pom.xml | 15 ++
poms/bom/src/main/generated/flattened-full-pom.xml | 15 ++
.../src/main/generated/flattened-reduced-pom.xml | 15 ++
.../generated/flattened-reduced-verbose-pom.xml | 15 ++
tooling/scripts/test-categories.yaml | 1 +
25 files changed, 973 insertions(+)
diff --git a/catalog/pom.xml b/catalog/pom.xml
index 64d3fc1a68..72490109e7 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -97,6 +97,19 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-amqp</artifactId>
diff --git a/docs/modules/ROOT/examples/components/activemq6.yml
b/docs/modules/ROOT/examples/components/activemq6.yml
new file mode 100644
index 0000000000..a525071c6b
--- /dev/null
+++ b/docs/modules/ROOT/examples/components/activemq6.yml
@@ -0,0 +1,13 @@
+# Do not edit directly!
+# This file was generated by
camel-quarkus-maven-plugin:update-extension-doc-page
+cqArtifactId: camel-quarkus-activemq6
+cqArtifactIdBase: activemq6
+cqNativeSupported: true
+cqStatus: Stable
+cqDeprecated: false
+cqJvmSince: 3.30.0
+cqNativeSince: 3.30.0
+cqCamelPartName: activemq6
+cqCamelPartTitle: ActiveMQ 6.x
+cqCamelPartDescription: Send messages to (or consume from) Apache ActiveMQ
6.x. This component extends the Camel JMS component.
+cqExtensionPageTitle: ActiveMQ 6.x
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index ab3d33d919..1bd411c685 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -54,6 +54,7 @@
*** xref:reference/extensions/aws-secrets-manager.adoc[AWS Secrets Manager]
*** xref:reference/extensions/aws-xray.adoc[AWS XRay]
*** xref:reference/extensions/activemq.adoc[ActiveMQ]
+*** xref:reference/extensions/activemq6.adoc[ActiveMQ 6.x]
*** xref:reference/extensions/arangodb.adoc[ArangoDb]
*** xref:reference/extensions/asterisk.adoc[Asterisk]
*** xref:reference/extensions/atom.adoc[Atom]
diff --git a/docs/modules/ROOT/pages/reference/extensions/activemq6.adoc
b/docs/modules/ROOT/pages/reference/extensions/activemq6.adoc
new file mode 100644
index 0000000000..a6e02b1618
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/activemq6.adoc
@@ -0,0 +1,86 @@
+// Do not edit directly!
+// This file was generated by
camel-quarkus-maven-plugin:update-extension-doc-page
+[id="extensions-activemq6"]
+= ActiveMQ 6.x
+:linkattrs:
+:cq-artifact-id: camel-quarkus-activemq6
+:cq-native-supported: true
+:cq-status: Stable
+:cq-status-deprecation: Stable
+:cq-description: Send messages to (or consume from) Apache ActiveMQ 6.x. This
component extends the Camel JMS component.
+:cq-deprecated: false
+:cq-jvm-since: 3.30.0
+:cq-native-since: 3.30.0
+
+ifeval::[{doc-show-badges} == true]
+[.badges]
+[.badge-key]##JVM since##[.badge-supported]##3.30.0## [.badge-key]##Native
since##[.badge-supported]##3.30.0##
+endif::[]
+
+Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends
the Camel JMS component.
+
+[id="extensions-activemq6-whats-inside"]
+== What's inside
+
+* xref:{cq-camel-components}::activemq6-component.adoc[ActiveMQ 6.x
component], URI syntax: `activemq6:destinationType:destinationName`
+
+Please refer to the above link for usage and configuration details.
+
+[id="extensions-activemq6-maven-coordinates"]
+== Maven coordinates
+
+https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-activemq6[Create
a new project with this extension on {link-quarkus-code-generator},
window="_blank"]
+
+Or add the coordinates to your existing project:
+
+[source,xml]
+----
+<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6</artifactId>
+</dependency>
+----
+ifeval::[{doc-show-user-guide-link} == true]
+Check the xref:user-guide/index.adoc[User guide] for more information about
writing Camel Quarkus applications.
+endif::[]
+
+[id="extensions-activemq6-usage"]
+== Usage
+[id="extensions-activemq6-usage-message-mapping-with-org-w3c-dom-node"]
+=== Message mapping with `org.w3c.dom.Node`
+
+The Camel ActiveMQ component supports message mapping between
`jakarta.jms.Message` and `org.apache.camel.Message`. When wanting to convert a
Camel message body type of `org.w3c.dom.Node`,
+you must ensure that the `camel-quarkus-xml-jaxp` extension is present on the
classpath.
+
+[id="extensions-activemq6-usage-native-mode-support-for-jakarta-jms-objectmessage"]
+=== Native mode support for jakarta.jms.ObjectMessage
+
+When sending JMS message payloads as `jakarta.jms.ObjectMessage`, you must
annotate the relevant classes to be registered for serialization with
`@RegisterForReflection(serialization = true)`.
+Note that this extension automatically sets
`quarkus.camel.native.reflection.serialization-enabled = true` for you. Refer
to the xref:user-guide/native-mode.adoc#serialization[native mode user guide]
for more information.
+
+
+[id="extensions-activemq6-camel-quarkus-limitations"]
+== Camel Quarkus limitations
+
+ActiveMQ https://activemq.apache.org/selectors.html[XPath selectors] are
disabled in native mode as the functionality depends on `activemq-broker`. This
dependency
+is excluded from the dependency tree, since none of the ActiveMQ broker
functionality is supported in native mode.
+
+
+[id="extensions-activemq6-ssl-in-native-mode"]
+== SSL in native mode
+
+This extension auto-enables SSL support in native mode. Hence you do not need
to add
+`quarkus.ssl.native=true` to your `application.properties` yourself. See also
+https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].
+
+[id="extensions-activemq6-transferexception-option-in-native-mode"]
+== transferException option in native mode
+
+To use the `transferException` option in native mode, you must enable support
for object serialization. Refer to the
xref:user-guide/native-mode.adoc#serialization[native mode user guide]
+for more information.
+
+You will also need to enable serialization for the exception classes that you
intend to serialize. For example.
+[source,java]
+----
+@RegisterForReflection(targets = { IllegalStateException.class,
MyCustomException.class }, serialization = true)
+----
diff --git a/extensions/activemq6/deployment/pom.xml
b/extensions/activemq6/deployment/pom.xml
new file mode 100644
index 0000000000..47060daa5b
--- /dev/null
+++ b/extensions/activemq6/deployment/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6-parent</artifactId>
+ <version>3.30.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-activemq6-deployment</artifactId>
+ <name>Camel Quarkus :: ActiveMQ 6.x :: Deployment</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-core-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-jms-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>io.quarkus</groupId>
+
<artifactId>quarkus-extension-processor</artifactId>
+ <version>${quarkus.version}</version>
+ </path>
+ </annotationProcessorPaths>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git
a/extensions/activemq6/deployment/src/main/java/org/apache/camel/quarkus/component/activemq6/deployment/ActiveMQ6Processor.java
b/extensions/activemq6/deployment/src/main/java/org/apache/camel/quarkus/component/activemq6/deployment/ActiveMQ6Processor.java
new file mode 100644
index 0000000000..66c0e7344c
--- /dev/null
+++
b/extensions/activemq6/deployment/src/main/java/org/apache/camel/quarkus/component/activemq6/deployment/ActiveMQ6Processor.java
@@ -0,0 +1,141 @@
+/*
+ * 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.quarkus.component.activemq6.deployment;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.Properties;
+import java.util.stream.Stream;
+
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import org.apache.activemq.transport.Transport;
+import org.apache.activemq.transport.discovery.DiscoveryAgent;
+import org.apache.activemq.util.IdGenerator;
+import org.apache.activemq.wireformat.WireFormatFactory;
+import org.jboss.jandex.ClassInfo;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexView;
+
+class ActiveMQ6Processor {
+
+ private static final String ACTIVEMQ_SERVICE_BASE =
"META-INF/services/org/apache/activemq/";
+ private static final String FEATURE = "camel-activemq6";
+
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
+ }
+
+ @BuildStep
+ ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
+ return new ExtensionSslNativeSupportBuildItem(FEATURE);
+ }
+
+ @BuildStep
+ void reflectiveClasses(
+ CombinedIndexBuildItem combinedIndex,
+ BuildProducer<ReflectiveClassBuildItem> reflectiveClasses) {
+
+ reflectiveClasses.produce(
+ ReflectiveClassBuildItem.builder(
+ java.net.Socket.class.getName(),
+ "sun.security.ssl.SSLSocketImpl",
+
org.apache.activemq.ActiveMQConnectionFactory.class.getName(),
+
org.apache.activemq.ActiveMQPrefetchPolicy.class.getName(),
+ org.apache.activemq.RedeliveryPolicy.class.getName(),
+
org.apache.activemq.blob.BlobTransferPolicy.class.getName(),
+
org.apache.activemq.command.ConsumerInfo.class.getName(),
+
org.apache.activemq.openwire.v9.MarshallerFactory.class.getName(),
+
org.apache.activemq.openwire.v10.MarshallerFactory.class.getName(),
+
org.apache.activemq.openwire.v11.MarshallerFactory.class.getName(),
+
org.apache.activemq.openwire.v12.MarshallerFactory.class.getName())
+ .methods()
+ .build());
+
+ final IndexView index = combinedIndex.getIndex();
+
+ reflectiveClasses.produce(
+ ReflectiveClassBuildItem.builder(
+ Stream.of(Transport.class, WireFormatFactory.class,
DiscoveryAgent.class)
+ .map(DotName::createSimple)
+ .map(index::getAllKnownImplementations)
+ .flatMap(Collection::stream)
+ .map(ClassInfo::name)
+ .map(DotName::toString)
+ .toArray(String[]::new))
+ .methods()
+ .build());
+ }
+
+ @BuildStep
+ void addDependencies(BuildProducer<IndexDependencyBuildItem>
indexDependency) {
+ indexDependency.produce(new
IndexDependencyBuildItem("org.apache.activemq", "activemq-client"));
+ }
+
+ @BuildStep
+ void registerServiceProviders(BuildProducer<ReflectiveClassBuildItem>
reflectiveClass,
+ BuildProducer<NativeImageResourceBuildItem> nativeImage) {
+
+ String[] servicePaths = new String[] {
+ ACTIVEMQ_SERVICE_BASE + "transport/discoveryagent/masterslave",
+ ACTIVEMQ_SERVICE_BASE + "transport/discoveryagent/multicast",
+ ACTIVEMQ_SERVICE_BASE + "transport/discoveryagent/simple",
+ ACTIVEMQ_SERVICE_BASE + "transport/discoveryagent/static",
+ ACTIVEMQ_SERVICE_BASE + "transport/failover",
+ ACTIVEMQ_SERVICE_BASE + "transport/fanout",
+ ACTIVEMQ_SERVICE_BASE + "transport/mock",
+ ACTIVEMQ_SERVICE_BASE + "transport/multicast",
+ ACTIVEMQ_SERVICE_BASE + "transport/nio",
+ ACTIVEMQ_SERVICE_BASE + "transport/nio+ssl",
+ ACTIVEMQ_SERVICE_BASE + "transport/ssl",
+ ACTIVEMQ_SERVICE_BASE + "transport/tcp",
+ ACTIVEMQ_SERVICE_BASE + "transport/udp",
+ ACTIVEMQ_SERVICE_BASE + "wireformat/default",
+ };
+
+ for (String path : servicePaths) {
+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(getServiceClass(path)).methods().build());
+ }
+
+ nativeImage.produce(new NativeImageResourceBuildItem(servicePaths));
+ }
+
+ @BuildStep
+ void
runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem>
runtimeInitializedClass) {
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(IdGenerator.class.getName()));
+ }
+
+ private String getServiceClass(String servicePath) {
+ try (InputStream resource =
ActiveMQ6Processor.class.getClassLoader().getResourceAsStream(servicePath)) {
+ Properties properties = new Properties();
+ properties.load(resource);
+ return properties.getProperty("class");
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+}
diff --git a/extensions/activemq6/pom.xml b/extensions/activemq6/pom.xml
new file mode 100644
index 0000000000..541e7afd82
--- /dev/null
+++ b/extensions/activemq6/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-extensions</artifactId>
+ <version>3.30.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-activemq6-parent</artifactId>
+ <name>Camel Quarkus :: ActiveMQ 6.x</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>deployment</module>
+ <module>runtime</module>
+ </modules>
+</project>
diff --git a/extensions/activemq6/runtime/pom.xml
b/extensions/activemq6/runtime/pom.xml
new file mode 100644
index 0000000000..99faf3e261
--- /dev/null
+++ b/extensions/activemq6/runtime/pom.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6-parent</artifactId>
+ <version>3.30.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-activemq6</artifactId>
+ <name>Camel Quarkus :: ActiveMQ 6.x :: Runtime</name>
+ <description>Send messages to (or consume from) Apache ActiveMQ 6.x. This
component extends the Camel JMS component.</description>
+
+ <properties>
+ <camel.quarkus.jvmSince>3.30.0</camel.quarkus.jvmSince>
+ <camel.quarkus.nativeSince>3.30.0</camel.quarkus.nativeSince>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-jms</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-activemq6</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.graalvm.sdk</groupId>
+ <artifactId>nativeimage</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-extension-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>io.quarkus</groupId>
+
<artifactId>quarkus-extension-processor</artifactId>
+ <version>${quarkus.version}</version>
+ </path>
+ </annotationProcessorPaths>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>full</id>
+ <activation>
+ <property>
+ <name>!quickly</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>update-extension-doc-page</id>
+ <goals>
+ <goal>update-extension-doc-page</goal>
+ </goals>
+ <phase>process-classes</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/extensions/activemq6/runtime/src/main/doc/limitations.adoc
b/extensions/activemq6/runtime/src/main/doc/limitations.adoc
new file mode 100644
index 0000000000..1a8b4f7a60
--- /dev/null
+++ b/extensions/activemq6/runtime/src/main/doc/limitations.adoc
@@ -0,0 +1,2 @@
+ActiveMQ https://activemq.apache.org/selectors.html[XPath selectors] are
disabled in native mode as the functionality depends on `activemq-broker`. This
dependency
+is excluded from the dependency tree, since none of the ActiveMQ broker
functionality is supported in native mode.
diff --git a/extensions/activemq6/runtime/src/main/doc/usage.adoc
b/extensions/activemq6/runtime/src/main/doc/usage.adoc
new file mode 100644
index 0000000000..264d21d7c6
--- /dev/null
+++ b/extensions/activemq6/runtime/src/main/doc/usage.adoc
@@ -0,0 +1,9 @@
+=== Message mapping with `org.w3c.dom.Node`
+
+The Camel ActiveMQ component supports message mapping between
`jakarta.jms.Message` and `org.apache.camel.Message`. When wanting to convert a
Camel message body type of `org.w3c.dom.Node`,
+you must ensure that the `camel-quarkus-xml-jaxp` extension is present on the
classpath.
+
+=== Native mode support for jakarta.jms.ObjectMessage
+
+When sending JMS message payloads as `jakarta.jms.ObjectMessage`, you must
annotate the relevant classes to be registered for serialization with
`@RegisterForReflection(serialization = true)`.
+Note that this extension automatically sets
`quarkus.camel.native.reflection.serialization-enabled = true` for you. Refer
to the xref:user-guide/native-mode.adoc#serialization[native mode user guide]
for more information.
diff --git
a/extensions/activemq6/runtime/src/main/java/org/apache/camel/quarkus/component/activemq6/graal/ActiveMQSubstitutions.java
b/extensions/activemq6/runtime/src/main/java/org/apache/camel/quarkus/component/activemq6/graal/ActiveMQSubstitutions.java
new file mode 100644
index 0000000000..d05addd900
--- /dev/null
+++
b/extensions/activemq6/runtime/src/main/java/org/apache/camel/quarkus/component/activemq6/graal/ActiveMQSubstitutions.java
@@ -0,0 +1,43 @@
+/*
+ * 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.quarkus.component.activemq6.graal;
+
+import com.oracle.svm.core.annotate.Delete;
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.activemq.filter.BooleanExpression;
+import org.apache.activemq.filter.UnaryExpression;
+import org.apache.activemq.filter.XPathExpression;
+
+final class ActiveMQSubstitutions {
+}
+
+@TargetClass(XPathExpression.class)
+@Delete
+final class SubstituteXPathExpression {
+}
+
+@TargetClass(UnaryExpression.class)
+final class SubstituteUnaryExpression {
+
+ @Substitute
+ public static BooleanExpression createXPath(final String xpath) {
+ // The required dependencies to make this work are not on the
classpath by default
+ // Since this appears to be a somewhat niche feature for Camel, it is
not supported in native mode
+ throw new RuntimeException("XPath selectors are not supported in
native mode");
+ }
+}
diff --git
a/extensions/activemq6/runtime/src/main/java/org/apache/camel/quarkus/component/activemq6/graal/SpringJMSSubstitutions.java
b/extensions/activemq6/runtime/src/main/java/org/apache/camel/quarkus/component/activemq6/graal/SpringJMSSubstitutions.java
new file mode 100644
index 0000000000..12d7aa8c78
--- /dev/null
+++
b/extensions/activemq6/runtime/src/main/java/org/apache/camel/quarkus/component/activemq6/graal/SpringJMSSubstitutions.java
@@ -0,0 +1,89 @@
+/*
+ * 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.quarkus.component.activemq6.graal;
+
+import com.oracle.svm.core.annotate.Alias;
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import jakarta.jms.Destination;
+import jakarta.jms.JMSException;
+import jakarta.jms.Message;
+import jakarta.jms.MessageConsumer;
+import jakarta.jms.MessageProducer;
+import jakarta.jms.Session;
+import jakarta.jms.Topic;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.jms.listener.AbstractMessageListenerContainer;
+
+/**
+ * ActiveMQ is tied to JMS 1.1, so we need to disable any code paths in Spring
JMS that try to leverage JMS 2.x APIs
+ */
+final class SpringJMSSubstitutions {
+}
+
+@TargetClass(AbstractMessageListenerContainer.class)
+final class SubstituteAbstractMessageListenerContainer {
+
+ @Alias
+ private String subscriptionName;
+ @Alias
+ private volatile String messageSelector;
+ @Alias
+ private boolean pubSubDomain;
+ @Alias
+ private boolean subscriptionDurable;
+ @Alias
+ private boolean pubSubNoLocal;
+
+ @Substitute
+ protected MessageConsumer createConsumer(Session session, Destination
destination) throws JMSException {
+ // Removes references to JMS 2.0 shared subscriptions
+ if (pubSubDomain && destination instanceof Topic) {
+ if (subscriptionDurable) {
+ return session.createDurableSubscriber(
+ (Topic) destination, subscriptionName,
messageSelector, pubSubNoLocal);
+ } else {
+ return session.createConsumer(destination, messageSelector,
pubSubNoLocal);
+ }
+ } else {
+ return session.createConsumer(destination, messageSelector);
+ }
+ }
+}
+
+@TargetClass(JmsTemplate.class)
+final class SubstituteJmsTemplate {
+
+ @Alias
+ private boolean explicitQosEnabled;
+ @Alias
+ private int deliveryMode;
+ @Alias
+ private int priority;
+ @Alias
+ private long timeToLive;
+
+ @Substitute
+ protected void doSend(MessageProducer producer, Message message) throws
JMSException {
+ // Removes references to JMS 2.0 delivery delay lookup
+ if (explicitQosEnabled) {
+ producer.send(message, deliveryMode, priority, timeToLive);
+ } else {
+ producer.send(message);
+ }
+ }
+}
diff --git
a/extensions/activemq6/runtime/src/main/resources/META-INF/quarkus-extension.yaml
b/extensions/activemq6/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000000..1206704d37
--- /dev/null
+++
b/extensions/activemq6/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,33 @@
+#
+# 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.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+# mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel ActiveMQ 6.x"
+description: "Send messages to (or consume from) Apache ActiveMQ 6.x. This
component extends the Camel JMS component"
+metadata:
+ icon-url:
"https://raw.githubusercontent.com/apache/camel-website/main/antora-ui-camel/src/img/logo-d.svg"
+ sponsor: "Apache Software Foundation"
+ guide:
"https://camel.apache.org/camel-quarkus/latest/reference/extensions/activemq6.html"
+ categories:
+ - "integration"
+ status:
+ - "stable"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 4c998bb89d..ded7406856 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -35,6 +35,7 @@
<modules>
<!-- extensions a..z; do not remove this comment, it is important when
sorting via mvn process-resources -Pformat -->
<module>activemq</module>
+ <module>activemq6</module>
<module>amqp</module>
<module>arangodb</module>
<module>as2</module>
diff --git
a/integration-tests-support/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/util/scheme/MessagingComponentSchemeProducer.java
b/integration-tests-support/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/util/scheme/MessagingComponentSchemeProducer.java
index 1e3e4fc548..43b8c7364f 100644
---
a/integration-tests-support/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/util/scheme/MessagingComponentSchemeProducer.java
+++
b/integration-tests-support/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/util/scheme/MessagingComponentSchemeProducer.java
@@ -45,6 +45,8 @@ public class MessagingComponentSchemeProducer {
// Catalog is hard coded to return the JSON schema for the JMS
component so just assume activemq is the component to work with
if (name.equals("activemq")) {
return new ComponentScheme("activemq");
+ } else if (name.equals("activemq6")) {
+ return new ComponentScheme("activemq6");
}
String json = catalog.componentJSonSchema(name);
diff --git a/integration-tests/activemq6/pom.xml
b/integration-tests/activemq6/pom.xml
new file mode 100644
index 0000000000..ba39635b3f
--- /dev/null
+++ b/integration-tests/activemq6/pom.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-build-parent-it</artifactId>
+ <version>3.30.0-SNAPSHOT</version>
+ <relativePath>../../poms/build-parent-it/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-integration-test-activemq6</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: ActiveMQ 6.x</name>
+ <description>Integration tests for Camel Quarkus ActiveMQ 6.x
extension</description>
+
+ <dependencies>
+ <!-- Messaging extension to test -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6</artifactId>
+ </dependency>
+
+ <!-- Inherit base messaging routes -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+
<artifactId>camel-quarkus-integration-tests-support-messaging-jms</artifactId>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+
<artifactId>camel-quarkus-integration-tests-support-activemq</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.rest-assured</groupId>
+ <artifactId>rest-assured</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>testcontainers</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit4-mock</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Inherit base messaging tests -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+
<artifactId>camel-quarkus-integration-tests-support-messaging-common</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+
<artifactId>camel-quarkus-integration-tests-support-messaging-jms</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>native</id>
+ <activation>
+ <property>
+ <name>native</name>
+ </property>
+ </activation>
+ <properties>
+ <quarkus.native.enabled>true</quarkus.native.enabled>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>virtualDependencies</id>
+ <activation>
+ <property>
+ <name>!noVirtualDependencies</name>
+ </property>
+ </activation>
+ <dependencies>
+ <!-- The following dependencies guarantee that this module is
built after them. You can update them by running `mvn process-resources
-Pformat -N` from the source tree root directory -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
+ <id>skip-testcontainers-tests</id>
+ <activation>
+ <property>
+ <name>skip-testcontainers-tests</name>
+ </property>
+ </activation>
+ <properties>
+ <skipTests>true</skipTests>
+ </properties>
+ </profile>
+ </profiles>
+
+</project>
diff --git
a/integration-tests/activemq6/src/main/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQConnectionFactoryProducer.java
b/integration-tests/activemq6/src/main/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQConnectionFactoryProducer.java
new file mode 100644
index 0000000000..e0dcff4900
--- /dev/null
+++
b/integration-tests/activemq6/src/main/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQConnectionFactoryProducer.java
@@ -0,0 +1,47 @@
+/*
+ * 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.quarkus.component.activemq6.it;
+
+import java.util.Arrays;
+import java.util.Collections;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Singleton;
+import jakarta.jms.ConnectionFactory;
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.camel.quarkus.component.messaging.it.Person;
+import org.apache.camel.support.DefaultExchangeHolder;
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+
+@ApplicationScoped
+public class ActiveMQConnectionFactoryProducer {
+
+ @ConfigProperty(name = "camel.component.activemq6.brokerUrl")
+ String brokerUrl;
+
+ @Singleton
+ @jakarta.enterprise.inject.Produces
+ public ConnectionFactory connectionFactory() {
+ ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory(brokerUrl);
+ factory.setTrustedPackages(Arrays.asList(
+ Collections.class.getPackageName(),
+ DefaultExchangeHolder.class.getPackageName(),
+ IllegalStateException.class.getPackageName(),
+ Person.class.getPackageName()));
+ return factory;
+ }
+}
diff --git
a/integration-tests/activemq6/src/test/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQ6IT.java
b/integration-tests/activemq6/src/test/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQ6IT.java
new file mode 100644
index 0000000000..9748fb1314
--- /dev/null
+++
b/integration-tests/activemq6/src/test/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQ6IT.java
@@ -0,0 +1,24 @@
+/*
+ * 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.quarkus.component.activemq6.it;
+
+import io.quarkus.test.junit.QuarkusIntegrationTest;
+
+@QuarkusIntegrationTest
+class ActiveMQ6IT extends ActiveMQ6Test {
+
+}
diff --git
a/integration-tests/activemq6/src/test/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQ6Test.java
b/integration-tests/activemq6/src/test/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQ6Test.java
new file mode 100644
index 0000000000..c2c5d5d229
--- /dev/null
+++
b/integration-tests/activemq6/src/test/java/org/apache/camel/quarkus/component/activemq6/it/ActiveMQ6Test.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.activemq6.it;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.ResourceArg;
+import io.quarkus.test.junit.QuarkusTest;
+import org.apache.camel.quarkus.messaging.jms.AbstractJmsMessagingTest;
+import org.apache.camel.quarkus.test.support.activemq.ActiveMQTestResource;
+
+@QuarkusTest
+@QuarkusTestResource(initArgs = {
+ @ResourceArg(name = "modules", value = "camel.component.activemq6")
+}, value = ActiveMQTestResource.class)
+class ActiveMQ6Test extends AbstractJmsMessagingTest {
+
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 688b22905e..8b145ead72 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -49,6 +49,7 @@
<!-- extensions a..z; do not remove this comment, it is important when
sorting via mvn process-resources -Pformat -->
<module>activemq</module>
+ <module>activemq6</module>
<module>amqp</module>
<module>arangodb</module>
<module>as2</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index e2cf3e13b2..67f26e81f0 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -129,6 +129,11 @@
<artifactId>camel-activemq</artifactId>
<version>${camel.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-activemq6</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-amqp</artifactId>
@@ -3260,6 +3265,16 @@
<artifactId>camel-quarkus-activemq-deployment</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6-deployment</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-amqp</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml
b/poms/bom/src/main/generated/flattened-full-pom.xml
index 84182bd191..c3f0e72ec7 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -55,6 +55,11 @@
<artifactId>camel-activemq</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.16.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-activemq6</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>4.16.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-amqp</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -3158,6 +3163,16 @@
<artifactId>camel-quarkus-activemq-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.30.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-activemq6</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.30.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-activemq6-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.30.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-quarkus-amqp</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index 9fcf92a576..2581cae22d 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -55,6 +55,11 @@
<artifactId>camel-activemq</artifactId>
<version>4.16.0</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-activemq6</artifactId>
+ <version>4.16.0</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-amqp</artifactId>
@@ -3148,6 +3153,16 @@
<artifactId>camel-quarkus-activemq-deployment</artifactId>
<version>3.30.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6</artifactId>
+ <version>3.30.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-activemq6-deployment</artifactId>
+ <version>3.30.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-amqp</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index 79cfb5c613..046c8da7d5 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -55,6 +55,11 @@
<artifactId>camel-activemq</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.16.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-activemq6</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>4.16.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-amqp</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -3148,6 +3153,16 @@
<artifactId>camel-quarkus-activemq-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.30.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-activemq6</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.30.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>camel-quarkus-activemq6-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>3.30.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-quarkus-amqp</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/tooling/scripts/test-categories.yaml
b/tooling/scripts/test-categories.yaml
index 48445a2215..8d10c2923d 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -157,6 +157,7 @@ group-08:
- zendesk
group-09:
- activemq
+ - activemq6
- amqp
- debug
- ftp