You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ap...@apache.org on 2025/11/06 09:17:29 UTC
(camel) 01/02: CAMEL-22578 - Deprecate Camel stomp component
This is an automated email from the ASF dual-hosted git repository.
apupier pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 68df95d3d73feec1c18ae6603338c265e95ade10
Author: Aurélien Pupier <ap...@ibm.com>
AuthorDate: Wed Nov 5 15:12:41 2025 +0100
CAMEL-22578 - Deprecate Camel stomp component
with artemis 2.43+, the tests are no more passing altogether (but
passing one by one). So kept a single one during the deprecation phase.
The stomp protocol and the client implementation didn't had any updates
in 10 years
Signed-off-by: Aurélien Pupier <ap...@ibm.com>
---
.../org/apache/camel/catalog/components/stomp.json | 2 +-
components/camel-stomp/pom.xml | 2 +-
.../org/apache/camel/component/stomp/stomp.json | 2 +-
.../services/org/apache/camel/component.properties | 2 +-
.../camel-stomp/src/main/docs/stomp-component.adoc | 5 +++--
.../apache/camel/component/stomp/StompComponent.java | 1 +
.../camel/component/stomp/StompConfiguration.java | 1 +
.../apache/camel/component/stomp/StompConsumer.java | 1 +
.../apache/camel/component/stomp/StompEndpoint.java | 1 +
.../apache/camel/component/stomp/StompProducer.java | 1 +
.../stomp/StompConsumerHeaderFilterStrategyTest.java | 2 ++
.../camel/component/stomp/StompConsumerTest.java | 2 ++
.../camel/component/stomp/StompConsumerUriTest.java | 2 ++
.../camel/component/stomp/StompCustomHeadersTest.java | 2 ++
.../component/stomp/StompGlobalSslConsumerTest.java | 2 ++
.../camel/component/stomp/StompProducerTest.java | 2 ++
.../camel/component/stomp/StompSslConsumerTest.java | 2 ++
.../ROOT/pages/camel-4x-upgrade-guide-4_17.adoc | 18 ++++++++++++++++++
.../camel/builder/endpoint/StaticEndpointBuilders.java | 2 ++
.../endpoint/dsl/StompEndpointBuilderFactory.java | 2 ++
20 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/stomp.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/stomp.json
index 95e157e0fce3..87c0d9f33eda 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/stomp.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/stomp.json
@@ -4,7 +4,7 @@
"name": "stomp",
"title": "Stomp",
"description": "Send and receive messages to\/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.",
- "deprecated": false,
+ "deprecated": true,
"firstVersion": "2.12.0",
"label": "messaging",
"javaType": "org.apache.camel.component.stomp.StompComponent",
diff --git a/components/camel-stomp/pom.xml b/components/camel-stomp/pom.xml
index 76c1ea26a5dd..f36f1e23e625 100644
--- a/components/camel-stomp/pom.xml
+++ b/components/camel-stomp/pom.xml
@@ -29,7 +29,7 @@
<artifactId>camel-stomp</artifactId>
<packaging>jar</packaging>
- <name>Camel :: Stomp</name>
+ <name>Camel :: Stomp (Deprecated)</name>
<description>Camel Stomp client</description>
<properties>
diff --git a/components/camel-stomp/src/generated/resources/META-INF/org/apache/camel/component/stomp/stomp.json b/components/camel-stomp/src/generated/resources/META-INF/org/apache/camel/component/stomp/stomp.json
index 95e157e0fce3..87c0d9f33eda 100644
--- a/components/camel-stomp/src/generated/resources/META-INF/org/apache/camel/component/stomp/stomp.json
+++ b/components/camel-stomp/src/generated/resources/META-INF/org/apache/camel/component/stomp/stomp.json
@@ -4,7 +4,7 @@
"name": "stomp",
"title": "Stomp",
"description": "Send and receive messages to\/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.",
- "deprecated": false,
+ "deprecated": true,
"firstVersion": "2.12.0",
"label": "messaging",
"javaType": "org.apache.camel.component.stomp.StompComponent",
diff --git a/components/camel-stomp/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-stomp/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index 3292fdc74a5f..9604e20bf4b7 100644
--- a/components/camel-stomp/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-stomp/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -3,5 +3,5 @@ components=stomp
groupId=org.apache.camel
artifactId=camel-stomp
version=4.17.0-SNAPSHOT
-projectName=Camel :: Stomp
+projectName=Camel :: Stomp (Deprecated)
projectDescription=Camel Stomp client
diff --git a/components/camel-stomp/src/main/docs/stomp-component.adoc b/components/camel-stomp/src/main/docs/stomp-component.adoc
index 966eb37d998e..70cec3d079dc 100644
--- a/components/camel-stomp/src/main/docs/stomp-component.adoc
+++ b/components/camel-stomp/src/main/docs/stomp-component.adoc
@@ -1,10 +1,11 @@
-= Stomp Component
+= Stomp Component (deprecated)
:doctitle: Stomp
:shortname: stomp
:artifactid: camel-stomp
:description: Send and receive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
:since: 2.12
-:supportlevel: Stable
+:supportlevel: Stable-deprecated
+:deprecated: *deprecated*
:tabs-sync-option:
:component-header: Both producer and consumer are supported
//Manually maintained attributes
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
index bcd861703b31..b8a478a74a32 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
@@ -26,6 +26,7 @@ import org.apache.camel.support.DefaultHeaderFilterStrategy;
import org.apache.camel.support.HeaderFilterStrategyComponent;
@Component("stomp")
+@Deprecated(since = "4.17")
public class StompComponent extends HeaderFilterStrategyComponent implements SSLContextParametersAware {
@Metadata(label = "advanced")
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
index 05a37e7aab8b..8fb36871de5c 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
@@ -25,6 +25,7 @@ import org.apache.camel.spi.UriParams;
import org.apache.camel.support.jsse.SSLContextParameters;
@UriParams
+@Deprecated(since = "4.17")
public class StompConfiguration implements Cloneable {
@UriParam(defaultValue = "tcp://localhost:61613")
@Metadata(required = true)
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java
index 7dc993bae615..b471b6bcddc5 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java
@@ -22,6 +22,7 @@ import org.apache.camel.Processor;
import org.apache.camel.support.DefaultConsumer;
import org.fusesource.hawtbuf.AsciiBuffer;
+@Deprecated(since = "4.17")
public class StompConsumer extends DefaultConsumer {
AsciiBuffer id;
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
index 5df6d24ee66e..3d5fc7dd607a 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
@@ -60,6 +60,7 @@ import static org.fusesource.stomp.client.Constants.UNSUBSCRIBE;
*/
@UriEndpoint(firstVersion = "2.12.0", scheme = "stomp", title = "Stomp", syntax = "stomp:destination",
category = { Category.MESSAGING })
+@Deprecated(since = "4.17")
public class StompEndpoint extends DefaultEndpoint
implements AsyncEndpoint, HeaderFilterStrategyAware, EndpointServiceLocation {
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompProducer.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompProducer.java
index 0a225888b21b..5cc6fcc63dbe 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompProducer.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompProducer.java
@@ -21,6 +21,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.support.DefaultAsyncProducer;
+@Deprecated(since = "4.17")
public class StompProducer extends DefaultAsyncProducer implements Processor {
private final StompEndpoint stompEndpoint;
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerHeaderFilterStrategyTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerHeaderFilterStrategyTest.java
index 1ad97bf1dfdc..a9d7a5ab0b84 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerHeaderFilterStrategyTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerHeaderFilterStrategyTest.java
@@ -25,6 +25,7 @@ import org.apache.camel.support.DefaultHeaderFilterStrategy;
import org.fusesource.stomp.client.BlockingConnection;
import org.fusesource.stomp.client.Stomp;
import org.fusesource.stomp.codec.StompFrame;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.testcontainers.shaded.org.awaitility.Awaitility;
@@ -35,6 +36,7 @@ import static org.fusesource.stomp.client.Constants.MESSAGE_ID;
import static org.fusesource.stomp.client.Constants.SEND;
@DisabledIfSystemProperty(named = "ci.env.name", matches = ".*", disabledReason = "Flaky on Github CI")
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompConsumerHeaderFilterStrategyTest extends StompBaseTest {
@BindToRegistry("customHeaderFilterStrategy")
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerTest.java
index eff4291eba6d..931830be3cfc 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerTest.java
@@ -23,6 +23,7 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.fusesource.stomp.client.BlockingConnection;
import org.fusesource.stomp.client.Stomp;
import org.fusesource.stomp.codec.StompFrame;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.fusesource.hawtbuf.UTF8Buffer.utf8;
@@ -30,6 +31,7 @@ import static org.fusesource.stomp.client.Constants.DESTINATION;
import static org.fusesource.stomp.client.Constants.MESSAGE_ID;
import static org.fusesource.stomp.client.Constants.SEND;
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompConsumerTest extends StompBaseTest {
@Test
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerUriTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerUriTest.java
index c9cf1fc63415..a487c0495a47 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerUriTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompConsumerUriTest.java
@@ -23,6 +23,7 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.fusesource.stomp.client.BlockingConnection;
import org.fusesource.stomp.client.Stomp;
import org.fusesource.stomp.codec.StompFrame;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.fusesource.hawtbuf.UTF8Buffer.utf8;
@@ -30,6 +31,7 @@ import static org.fusesource.stomp.client.Constants.DESTINATION;
import static org.fusesource.stomp.client.Constants.MESSAGE_ID;
import static org.fusesource.stomp.client.Constants.SEND;
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompConsumerUriTest extends StompBaseTest {
@Test
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompCustomHeadersTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompCustomHeadersTest.java
index cdaaec21810f..5d561b4b66a3 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompCustomHeadersTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompCustomHeadersTest.java
@@ -20,10 +20,12 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompCustomHeadersTest extends StompBaseTest {
@Test
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
index 54e95f270d31..a064c5da4a08 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
@@ -19,7 +19,9 @@ package org.apache.camel.component.stomp;
import org.apache.camel.CamelContext;
import org.apache.camel.SSLContextParametersAware;
import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.Disabled;
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompGlobalSslConsumerTest extends StompConsumerTest {
@Override
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompProducerTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompProducerTest.java
index 3588f5eb372d..8d6e00a59bb6 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompProducerTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompProducerTest.java
@@ -27,6 +27,7 @@ import org.fusesource.hawtbuf.AsciiBuffer;
import org.fusesource.stomp.client.BlockingConnection;
import org.fusesource.stomp.client.Stomp;
import org.fusesource.stomp.codec.StompFrame;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +38,7 @@ import static org.fusesource.stomp.client.Constants.SUBSCRIBE;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompProducerTest extends StompBaseTest {
private static final Logger LOG = LoggerFactory.getLogger(StompProducerTest.class);
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompSslConsumerTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompSslConsumerTest.java
index 2a76596b6866..14a26b48c5c4 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompSslConsumerTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompSslConsumerTest.java
@@ -17,7 +17,9 @@
package org.apache.camel.component.stomp;
import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.Disabled;
+@Disabled("Starting with Artmis 2.43, test can be played only one by one")
public class StompSslConsumerTest extends StompConsumerTest {
@Override
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
new file mode 100644
index 000000000000..03e5dd2ba617
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
@@ -0,0 +1,18 @@
+= Apache Camel 4.x Upgrade Guide
+
+This document is for helping you upgrade your Apache Camel application
+from Camel 4.x to 4.y. For example, if you are upgrading Camel 4.0 to 4.2, then you should follow the guides
+from both 4.0 to 4.1 and 4.1 to 4.2.
+
+[NOTE]
+====
+https://github.com/apache/camel-upgrade-recipes/[The Camel Upgrade Recipes project] provides automated assistance for some common migration tasks.
+Note that manual migration is still required.
+See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details.
+====
+
+== Upgrading Camel 4.16 to 4.17
+
+=== Component deprecation
+
+The component stomp is deprecated. The protocol and the used implementation has not received updates in the last ten years and tests started to fail with Artemis 2.43.
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 280854998f30..ae8887fc493a 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -14880,6 +14880,7 @@ public class StaticEndpointBuilders {
* @param path destination
* @return the dsl builder
*/
+ @Deprecated
public static StompEndpointBuilderFactory.StompEndpointBuilder stomp(String path) {
return stomp("stomp", path);
}
@@ -14902,6 +14903,7 @@ public class StaticEndpointBuilders {
* @param path destination
* @return the dsl builder
*/
+ @Deprecated
public static StompEndpointBuilderFactory.StompEndpointBuilder stomp(String componentName, String path) {
return StompEndpointBuilderFactory.endpointBuilder(componentName, path);
}
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/StompEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/StompEndpointBuilderFactory.java
index aad79e9af38a..35e3f93f0c27 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/StompEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/StompEndpointBuilderFactory.java
@@ -775,6 +775,7 @@ public interface StompEndpointBuilderFactory {
* @param path destination
* @return the dsl builder
*/
+ @Deprecated
default StompEndpointBuilder stomp(String path) {
return StompEndpointBuilderFactory.endpointBuilder("stomp", path);
}
@@ -797,6 +798,7 @@ public interface StompEndpointBuilderFactory {
* @param path destination
* @return the dsl builder
*/
+ @Deprecated
default StompEndpointBuilder stomp(String componentName, String path) {
return StompEndpointBuilderFactory.endpointBuilder(componentName, path);
}