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.git


The following commit(s) were added to refs/heads/main by this push:
     new 44654560d4c5 CAMEL-23032: camel-nats - Add AckPolicy so messages can 
be retried when NACK due to routing failure. Fix infra-nats to run nats broker 
with jetstream enabled.
44654560d4c5 is described below

commit 44654560d4c55e7e20fc5e236fe210952619f026
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Feb 26 15:30:56 2026 +0100

    CAMEL-23032: camel-nats - Add AckPolicy so messages can be retried when 
NACK due to routing failure. Fix infra-nats to run nats broker with jetstream 
enabled.
---
 .../generated/resources/org/apache/camel/catalog/components/nats.json | 4 ++--
 .../resources/META-INF/org/apache/camel/component/nats/nats.json      | 4 ++--
 .../main/java/org/apache/camel/component/nats/NatsConfiguration.java  | 2 +-
 .../component/nats/jetstream/NatsJetstreamConsumerMaxDeliverIT.java   | 2 +-
 .../component/nats/jetstream/NatsJetstreamConsumerRedeliveryIT.java   | 2 +-
 .../camel/builder/component/dsl/NatsComponentBuilderFactory.java      | 2 +-
 .../apache/camel/builder/endpoint/dsl/NatsEndpointBuilderFactory.java | 4 ++--
 7 files changed, 10 insertions(+), 10 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/nats.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/nats.json
index 91bcdd9ce121..938518bc3adc 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/nats.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/nats.json
@@ -41,7 +41,7 @@
     "requestCleanupInterval": { "index": 14, "kind": "property", 
"displayName": "Request Cleanup Interval", "group": "common", "label": 
"common", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": "org.apache.camel.component.nats.NatsConfiguration", 
"configurationField": "configuration", "description": "Interval to clean up 
cancelled\/timed out requests." },
     "servers": { "index": 15, "kind": "property", "displayName": "Servers", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "URLs to one or more NAT servers. Use comma to 
separate URLs when specifying multiple servers." },
     "verbose": { "index": 16, "kind": "property", "displayName": "Verbose", 
"group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Whether or not running in verbose mode" },
-    "ackPolicy": { "index": 17, "kind": "property", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "none", "all", 
"explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messag [...]
+    "ackPolicy": { "index": 17, "kind": "property", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "None", "All", 
"Explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "Explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messag [...]
     "ackWait": { "index": 18, "kind": "property", "displayName": "Ack Wait", 
"group": "consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "After a message is delivered to a consumer, 
the server waits 30 seconds (default) for an acknowledgement [...]
     "bridgeErrorHandler": { "index": 19, "kind": "property", "displayName": 
"Bridge Error Handler", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Allows for bridging the consumer to the Camel routing Error Handler, which 
mean any exceptions (if possible) occurred while the Camel consumer is trying 
to pickup incoming messages, or the lik [...]
     "durableName": { "index": 20, "kind": "property", "displayName": "Durable 
Name", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Sets the name to assign to the JetStream 
durable consumer. Setting this value makes the consumer durable. Th [...]
@@ -94,7 +94,7 @@
     "requestCleanupInterval": { "index": 14, "kind": "parameter", 
"displayName": "Request Cleanup Interval", "group": "common", "label": 
"common", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": "org.apache.camel.component.nats.NatsConfiguration", 
"configurationField": "configuration", "description": "Interval to clean up 
cancelled\/timed out requests." },
     "servers": { "index": 15, "kind": "parameter", "displayName": "Servers", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "URLs to one or more NAT servers. Use comma to 
separate URLs when specifying multiple servers." },
     "verbose": { "index": 16, "kind": "parameter", "displayName": "Verbose", 
"group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Whether or not running in verbose mode" },
-    "ackPolicy": { "index": 17, "kind": "parameter", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "none", "all", 
"explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messa [...]
+    "ackPolicy": { "index": 17, "kind": "parameter", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "None", "All", 
"Explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "Explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messa [...]
     "ackWait": { "index": 18, "kind": "parameter", "displayName": "Ack Wait", 
"group": "consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "After a message is delivered to a consumer, 
the server waits 30 seconds (default) for an acknowledgemen [...]
     "durableName": { "index": 19, "kind": "parameter", "displayName": "Durable 
Name", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Sets the name to assign to the JetStream 
durable consumer. Setting this value makes the consumer durable. T [...]
     "maxDeliver": { "index": 20, "kind": "parameter", "displayName": "Max 
Deliver", "group": "consumer", "label": "consumer", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Maximum number of attempts to deliver a 
message from Nats to a consumer. Once MaxDeliver is reached, the NATS server 
sto [...]
diff --git 
a/components/camel-nats/src/generated/resources/META-INF/org/apache/camel/component/nats/nats.json
 
b/components/camel-nats/src/generated/resources/META-INF/org/apache/camel/component/nats/nats.json
index 91bcdd9ce121..938518bc3adc 100644
--- 
a/components/camel-nats/src/generated/resources/META-INF/org/apache/camel/component/nats/nats.json
+++ 
b/components/camel-nats/src/generated/resources/META-INF/org/apache/camel/component/nats/nats.json
@@ -41,7 +41,7 @@
     "requestCleanupInterval": { "index": 14, "kind": "property", 
"displayName": "Request Cleanup Interval", "group": "common", "label": 
"common", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": "org.apache.camel.component.nats.NatsConfiguration", 
"configurationField": "configuration", "description": "Interval to clean up 
cancelled\/timed out requests." },
     "servers": { "index": 15, "kind": "property", "displayName": "Servers", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "URLs to one or more NAT servers. Use comma to 
separate URLs when specifying multiple servers." },
     "verbose": { "index": 16, "kind": "property", "displayName": "Verbose", 
"group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Whether or not running in verbose mode" },
-    "ackPolicy": { "index": 17, "kind": "property", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "none", "all", 
"explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messag [...]
+    "ackPolicy": { "index": 17, "kind": "property", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "None", "All", 
"Explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "Explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messag [...]
     "ackWait": { "index": 18, "kind": "property", "displayName": "Ack Wait", 
"group": "consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "After a message is delivered to a consumer, 
the server waits 30 seconds (default) for an acknowledgement [...]
     "bridgeErrorHandler": { "index": 19, "kind": "property", "displayName": 
"Bridge Error Handler", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Allows for bridging the consumer to the Camel routing Error Handler, which 
mean any exceptions (if possible) occurred while the Camel consumer is trying 
to pickup incoming messages, or the lik [...]
     "durableName": { "index": 20, "kind": "property", "displayName": "Durable 
Name", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Sets the name to assign to the JetStream 
durable consumer. Setting this value makes the consumer durable. Th [...]
@@ -94,7 +94,7 @@
     "requestCleanupInterval": { "index": 14, "kind": "parameter", 
"displayName": "Request Cleanup Interval", "group": "common", "label": 
"common", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": "org.apache.camel.component.nats.NatsConfiguration", 
"configurationField": "configuration", "description": "Interval to clean up 
cancelled\/timed out requests." },
     "servers": { "index": 15, "kind": "parameter", "displayName": "Servers", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "URLs to one or more NAT servers. Use comma to 
separate URLs when specifying multiple servers." },
     "verbose": { "index": 16, "kind": "parameter", "displayName": "Verbose", 
"group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Whether or not running in verbose mode" },
-    "ackPolicy": { "index": 17, "kind": "parameter", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "none", "all", 
"explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messa [...]
+    "ackPolicy": { "index": 17, "kind": "parameter", "displayName": "Ack 
Policy", "group": "consumer", "label": "consumer", "required": false, "type": 
"enum", "javaType": "io.nats.client.api.AckPolicy", "enum": [ "None", "All", 
"Explicit" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "Explicit", "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Acknowledgement mode. none = Messa [...]
     "ackWait": { "index": 18, "kind": "parameter", "displayName": "Ack Wait", 
"group": "consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "After a message is delivered to a consumer, 
the server waits 30 seconds (default) for an acknowledgemen [...]
     "durableName": { "index": 19, "kind": "parameter", "displayName": "Durable 
Name", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Sets the name to assign to the JetStream 
durable consumer. Setting this value makes the consumer durable. T [...]
     "maxDeliver": { "index": 20, "kind": "parameter", "displayName": "Max 
Deliver", "group": "consumer", "label": "consumer", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.nats.NatsConfiguration", "configurationField": 
"configuration", "description": "Maximum number of attempts to deliver a 
message from Nats to a consumer. Once MaxDeliver is reached, the NATS server 
sto [...]
diff --git 
a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConfiguration.java
 
b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConfiguration.java
index 7db5daccdca7..fee6e509fe4b 100644
--- 
a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConfiguration.java
+++ 
b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConfiguration.java
@@ -75,7 +75,7 @@ public class NatsConfiguration implements Cloneable {
     private boolean replyToDisabled;
     @UriParam(label = "consumer")
     private String maxMessages;
-    @UriParam(label = "consumer", defaultValue = "explicit", enums = 
"none,all,explicit")
+    @UriParam(label = "consumer", defaultValue = "Explicit", enums = 
"None,All,Explicit")
     private AckPolicy ackPolicy;
     @UriParam(label = "consumer", defaultValue = "30000")
     private long ackWait = 30000;
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerMaxDeliverIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerMaxDeliverIT.java
index 558fd69efd30..85763e440a6f 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerMaxDeliverIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerMaxDeliverIT.java
@@ -62,7 +62,7 @@ public class NatsJetstreamConsumerMaxDeliverIT extends 
NatsITSupport {
             @Override
             public void configure() {
                 String uri
-                        = 
"nats:mytopic2?jetstreamEnabled=true&jetstreamName=mystream2&jetstreamAsync=false&durableName=camel2&pullSubscription=false&ackPolicy=explicit&nackWait=10&maxDeliver=3";
+                        = 
"nats:mytopic2?jetstreamEnabled=true&jetstreamName=mystream2&jetstreamAsync=false&durableName=camel2&pullSubscription=false&nackWait=10&maxDeliver=3";
 
                 from("direct:send")
                         // when running full test suite then send can fail due 
to nats server setup/teardown
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerRedeliveryIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerRedeliveryIT.java
index b72e96b7af36..7bb41acaaa3f 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerRedeliveryIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/jetstream/NatsJetstreamConsumerRedeliveryIT.java
@@ -63,7 +63,7 @@ public class NatsJetstreamConsumerRedeliveryIT extends 
NatsITSupport {
             @Override
             public void configure() {
                 String uri
-                        = 
"nats:mytopic2?jetstreamEnabled=true&jetstreamName=mystream2&jetstreamAsync=false&durableName=camel2&pullSubscription=false&ackPolicy=explicit&nackWait=10";
+                        = 
"nats:mytopic2?jetstreamEnabled=true&jetstreamName=mystream2&jetstreamAsync=false&durableName=camel2&pullSubscription=false&nackWait=10";
 
                 from("direct:send")
                         // when running full test suite then send can fail due 
to nats server setup/teardown
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NatsComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NatsComponentBuilderFactory.java
index dd6bf8b64a5c..b78c037b7c72 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NatsComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NatsComponentBuilderFactory.java
@@ -358,7 +358,7 @@ public interface NatsComponentBuilderFactory {
          * The option is a:
          * &lt;code&gt;io.nats.client.api.AckPolicy&lt;/code&gt; type.
          * 
-         * Default: explicit
+         * Default: Explicit
          * Group: consumer
          * 
          * @param ackPolicy the value to set
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NatsEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NatsEndpointBuilderFactory.java
index 4b9f9b7de854..004f94329b6b 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NatsEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NatsEndpointBuilderFactory.java
@@ -519,7 +519,7 @@ public interface NatsEndpointBuilderFactory {
          * 
          * The option is a: <code>io.nats.client.api.AckPolicy</code> type.
          * 
-         * Default: explicit
+         * Default: Explicit
          * Group: consumer
          * 
          * @param ackPolicy the value to set
@@ -545,7 +545,7 @@ public interface NatsEndpointBuilderFactory {
          * The option will be converted to a
          * <code>io.nats.client.api.AckPolicy</code> type.
          * 
-         * Default: explicit
+         * Default: Explicit
          * Group: consumer
          * 
          * @param ackPolicy the value to set

Reply via email to