diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/paho.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/paho.json
index 56f38a7d9a905..2e6dc982d8731 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/paho.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/paho.json
@@ -4,7 +4,7 @@
"name": "paho",
"title": "Paho",
"description": "Communicate with MQTT message brokers using Eclipse Paho MQTT Client.",
- "deprecated": false,
+ "deprecated": true,
"firstVersion": "2.16.0",
"label": "messaging,iot",
"javaType": "org.apache.camel.component.paho.PahoComponent",
diff --git a/components/camel-paho/pom.xml b/components/camel-paho/pom.xml
index 2c402aef56d34..fb21d3a150369 100644
--- a/components/camel-paho/pom.xml
+++ b/components/camel-paho/pom.xml
@@ -29,7 +29,7 @@
camel-paho
jar
- Camel :: Paho
+ Camel :: Paho (deprecated)
Camel Eclipse Paho support
diff --git a/components/camel-paho/src/generated/resources/META-INF/org/apache/camel/component/paho/paho.json b/components/camel-paho/src/generated/resources/META-INF/org/apache/camel/component/paho/paho.json
index 56f38a7d9a905..2e6dc982d8731 100644
--- a/components/camel-paho/src/generated/resources/META-INF/org/apache/camel/component/paho/paho.json
+++ b/components/camel-paho/src/generated/resources/META-INF/org/apache/camel/component/paho/paho.json
@@ -4,7 +4,7 @@
"name": "paho",
"title": "Paho",
"description": "Communicate with MQTT message brokers using Eclipse Paho MQTT Client.",
- "deprecated": false,
+ "deprecated": true,
"firstVersion": "2.16.0",
"label": "messaging,iot",
"javaType": "org.apache.camel.component.paho.PahoComponent",
diff --git a/components/camel-paho/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-paho/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index 277a05a8ca3e1..a00e3827f5f2b 100644
--- a/components/camel-paho/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-paho/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -3,5 +3,5 @@ components=paho
groupId=org.apache.camel
artifactId=camel-paho
version=4.21.0-SNAPSHOT
-projectName=Camel :: Paho
+projectName=Camel :: Paho (deprecated)
projectDescription=Camel Eclipse Paho support
diff --git a/components/camel-paho/src/main/docs/paho-component.adoc b/components/camel-paho/src/main/docs/paho-component.adoc
index 4de11d1c20abc..b21d646e0de22 100644
--- a/components/camel-paho/src/main/docs/paho-component.adoc
+++ b/components/camel-paho/src/main/docs/paho-component.adoc
@@ -1,10 +1,11 @@
-= Paho Component
+= Paho Component (deprecated)
:doctitle: Paho
:shortname: paho
:artifactid: camel-paho
:description: Communicate with MQTT message brokers using Eclipse Paho MQTT Client.
:since: 2.16
-: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-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java
index 4c5eeff6aea14..02674d5e0de6b 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java
@@ -29,6 +29,7 @@
* Component to integrate with the Eclipse Paho MQTT library.
*/
@Component("paho")
+@Deprecated(since = "4.21")
public class PahoComponent extends DefaultComponent {
@Metadata
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConfiguration.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConfiguration.java
index be743a609969d..92ddea3598a2b 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConfiguration.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConfiguration.java
@@ -27,6 +27,7 @@
import org.apache.camel.spi.UriParams;
@UriParams
+@Deprecated(since = "4.21")
public class PahoConfiguration implements Cloneable {
@UriParam
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java
index f1641514d6e2f..7b4b8fb2585a6 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java
@@ -21,6 +21,7 @@
/**
* Constants to use when working with Paho component.
*/
+@Deprecated(since = "4.21")
public final class PahoConstants {
/**
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConsumer.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConsumer.java
index 2cfcfe1c526bc..4bde73ec28e85 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConsumer.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConsumer.java
@@ -31,6 +31,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated(since = "4.21")
public class PahoConsumer extends DefaultConsumer {
private static final Logger LOG = LoggerFactory.getLogger(PahoConsumer.class);
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
index 359ae006f5ab9..48773c9848a26 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
@@ -41,6 +41,7 @@
*/
@UriEndpoint(firstVersion = "2.16.0", scheme = "paho", title = "Paho", category = { Category.MESSAGING, Category.IOT },
syntax = "paho:topic", headersClass = PahoConstants.class)
+@Deprecated(since = "4.21")
public class PahoEndpoint extends DefaultEndpoint implements EndpointServiceLocation {
// Configuration members
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
index 08ee8970dccc6..fd99b33e0ddd3 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
@@ -20,6 +20,7 @@
import org.apache.camel.support.DefaultMessage;
import org.eclipse.paho.client.mqttv3.MqttMessage;
+@Deprecated(since = "4.21")
public class PahoMessage extends DefaultMessage {
private transient MqttMessage mqttMessage;
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoPersistence.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoPersistence.java
index 54e7687f5b9b0..d1569e4a8ea3d 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoPersistence.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoPersistence.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.paho;
+@Deprecated(since = "4.21")
public enum PahoPersistence {
FILE,
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java
index 22f2cc4397b09..f54fba544f427 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java
@@ -28,6 +28,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated(since = "4.21")
public class PahoProducer extends DefaultAsyncProducer {
private static final Logger LOG = LoggerFactory.getLogger(PahoProducer.class);
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java
index 74e05e20fa196..01c59d06a06b6 100644
--- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java
@@ -31,6 +31,7 @@
* endpoint and its producer to service dynamic requests.
*/
@SendDynamic("paho")
+@Deprecated(since = "4.21")
public class PahoSendDynamicAware extends ServiceSupport implements SendDynamicAware {
private CamelContext camelContext;
diff --git a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoManualAcksTest.java b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoManualAcksTest.java
index f289cc1971b2a..bc57095791be4 100644
--- a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoManualAcksTest.java
+++ b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoManualAcksTest.java
@@ -26,8 +26,11 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.extension.RegisterExtension;
+@DisabledIfSystemProperty(named = "ci.env.name", matches = ".*",
+ disabledReason = "Started to be very flaky on CI and component is now deprecated")
public class PahoManualAcksTest extends PahoTestSupport {
@Order(2)
@RegisterExtension
diff --git a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoOverrideTopicTest.java b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoOverrideTopicTest.java
index 903a787163556..afd95f30e47e4 100644
--- a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoOverrideTopicTest.java
+++ b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoOverrideTopicTest.java
@@ -25,8 +25,11 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.extension.RegisterExtension;
+@DisabledIfSystemProperty(named = "ci.env.name", matches = ".*",
+ disabledReason = "Started to be very flaky on CI and component is now deprecated")
public class PahoOverrideTopicTest extends PahoTestSupport {
@Order(2)
diff --git a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDSendDynamicTest.java b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDSendDynamicTest.java
index e694417e90f3b..f246719b27d6c 100644
--- a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDSendDynamicTest.java
+++ b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDSendDynamicTest.java
@@ -24,10 +24,13 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.extension.RegisterExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
+@DisabledIfSystemProperty(named = "ci.env.name", matches = ".*",
+ disabledReason = "Started to be very flaky on CI and component is now deprecated")
public class PahoToDSendDynamicTest extends PahoTestSupport {
@Order(2)
diff --git a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDTest.java b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDTest.java
index 6d208b1a8483b..2db2fdded22e6 100644
--- a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDTest.java
+++ b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoToDTest.java
@@ -24,8 +24,11 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.extension.RegisterExtension;
+@DisabledIfSystemProperty(named = "ci.env.name", matches = ".*",
+ disabledReason = "Started to be very flaky on CI and component is now deprecated")
public class PahoToDTest extends PahoTestSupport {
@Order(2)
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc
index 46a19e9348fb0..a964c535f2f23 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc
@@ -18,7 +18,7 @@ See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details.
The library used for Camel Grok component has been migrated from no more maintained `io.krakens:java-grok` to its fork `io.github.whatap:java-grok`.
It implies small differences listed https://github.com/whatap/java-grok#what-is-different-from-iokrakensjava-grok[here].
-=== camel-core
+=== camel-coreand camel-paho-mqtt5 are
The `camel-api` module now has an optional dependency on `org.jspecify:jspecify` for null safety annotations
(`@NullMarked`, `@Nullable`). The dependency is `true`, so it is not pulled transitively
@@ -508,3 +508,8 @@ The component camel-irc is deprecated. The library used had no stable release si
=== Deprecation of camel-iec-60870
The component camel-iec-60870 is deprecated. The library used to implement it NeoScada is no more maintained since 2021. There are no alternatives in Java with compatible license.
+
+=== Deprecation of camel-paho
+
+The components camel-paho is deprecated. There were no new release since 2020 of the Java client, last non-regulatory commit was in 2022.
+
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 5dc5608e89dd5..a5db916ace59d 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
@@ -13052,6 +13052,7 @@ public static OptaPlannerEndpointBuilderFactory.OptaPlannerEndpointBuilder optap
* @param path topic
* @return the dsl builder
*/
+ @Deprecated
public static PahoEndpointBuilderFactory.PahoEndpointBuilder paho(String path) {
return paho("paho", path);
}
@@ -13073,6 +13074,7 @@ public static PahoEndpointBuilderFactory.PahoEndpointBuilder paho(String path) {
* @param path topic
* @return the dsl builder
*/
+ @Deprecated
public static PahoEndpointBuilderFactory.PahoEndpointBuilder paho(String componentName, String path) {
return PahoEndpointBuilderFactory.endpointBuilder(componentName, path);
}
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PahoEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PahoEndpointBuilderFactory.java
index a69812ee77078..e0a147c1b5abc 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PahoEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PahoEndpointBuilderFactory.java
@@ -2975,6 +2975,7 @@ public interface PahoBuilders {
*
* @return the dsl builder for the headers' name.
*/
+ @Deprecated
default PahoHeaderNameBuilder paho() {
return PahoHeaderNameBuilder.INSTANCE;
}
@@ -2994,6 +2995,7 @@ default PahoHeaderNameBuilder paho() {
* @param path topic
* @return the dsl builder
*/
+ @Deprecated
default PahoEndpointBuilder paho(String path) {
return PahoEndpointBuilderFactory.endpointBuilder("paho", path);
}
@@ -3015,6 +3017,7 @@ default PahoEndpointBuilder paho(String path) {
* @param path topic
* @return the dsl builder
*/
+ @Deprecated
default PahoEndpointBuilder paho(String componentName, String path) {
return PahoEndpointBuilderFactory.endpointBuilder(componentName, path);
}