This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch jms-header in repository https://gitbox.apache.org/repos/asf/camel.git
commit 9a68378a300bdf08dd9184a9edb52104dc2e6444 Author: Claus Ibsen <[email protected]> AuthorDate: Sat Sep 14 16:21:13 2024 +0200 CAMEL-21221: camel-jms - Should default filter out Camel headers like other components --- .../apache/camel/catalog/components/activemq.json | 2 +- .../apache/camel/catalog/components/activemq6.json | 2 +- .../org/apache/camel/catalog/components/amqp.json | 2 +- .../org/apache/camel/catalog/components/jms.json | 2 +- .../apache/camel/component/activemq/activemq.json | 2 +- .../camel/component/activemq6/activemq6.json | 2 +- .../org/apache/camel/component/amqp/amqp.json | 2 +- .../org/apache/camel/component/jms/jms.json | 2 +- .../camel-jms/src/main/docs/jms-component.adoc | 30 +++++++++++++++------- ...gy.java => ClassicJmsHeaderFilterStrategy.java} | 10 +++++--- .../apache/camel/component/jms/JmsConstants.java | 6 +++-- .../component/jms/JmsHeaderFilterStrategy.java | 2 ++ .../component/jms/JmsHeaderFilteringTest.java | 12 ++++----- .../JmsRouteWithDefaultKeyFormatStrategyTest.java | 4 +-- .../JmsStreamMessageTypeNoStreamCachingTest.java | 8 +++++- .../component/jms/JmsStreamMessageTypeTest.java | 7 ++++- .../FileRouteJmsKeepLastModifiedIT.java | 12 +++++++++ .../jms/integration/FileRouteJmsPreMoveIT.java | 12 +++++++++ .../jms/integration/FileRouteToJmsToFileIT.java | 12 +++++++++ .../integration/issues/JmsFilenameHeaderIT.java | 13 ++++++++++ .../jms/issues/JmsBeanMethodHeaderTest.java | 12 +++++++++ .../ROOT/pages/camel-4x-upgrade-guide-4_9.adoc | 4 +++ .../endpoint/dsl/AMQPEndpointBuilderFactory.java | 2 +- .../dsl/ActiveMQ6EndpointBuilderFactory.java | 2 +- .../dsl/ActiveMQEndpointBuilderFactory.java | 2 +- .../endpoint/dsl/JmsEndpointBuilderFactory.java | 2 +- 26 files changed, 132 insertions(+), 36 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json index a62c078901f..10114953c3e 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json @@ -154,7 +154,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json index 46a2bc092fb..97cd983f182 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json @@ -154,7 +154,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/amqp.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/amqp.json index f393203954e..e6b36534203 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/amqp.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/amqp.json @@ -150,7 +150,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jms.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jms.json index fe91a069ba6..52b5cb0913c 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jms.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jms.json @@ -149,7 +149,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json b/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json index a62c078901f..10114953c3e 100644 --- a/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json +++ b/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json @@ -154,7 +154,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json b/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json index 46a2bc092fb..97cd983f182 100644 --- a/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json +++ b/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json @@ -154,7 +154,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/components/camel-amqp/src/generated/resources/META-INF/org/apache/camel/component/amqp/amqp.json b/components/camel-amqp/src/generated/resources/META-INF/org/apache/camel/component/amqp/amqp.json index f393203954e..e6b36534203 100644 --- a/components/camel-amqp/src/generated/resources/META-INF/org/apache/camel/component/amqp/amqp.json +++ b/components/camel-amqp/src/generated/resources/META-INF/org/apache/camel/component/amqp/amqp.json @@ -150,7 +150,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/components/camel-jms/src/generated/resources/META-INF/org/apache/camel/component/jms/jms.json b/components/camel-jms/src/generated/resources/META-INF/org/apache/camel/component/jms/jms.json index fe91a069ba6..52b5cb0913c 100644 --- a/components/camel-jms/src/generated/resources/META-INF/org/apache/camel/component/jms/jms.json +++ b/components/camel-jms/src/generated/resources/META-INF/org/apache/camel/component/jms/jms.json @@ -149,7 +149,7 @@ "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" }, "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" }, "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" }, - "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } + "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" } }, "properties": { "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" }, diff --git a/components/camel-jms/src/main/docs/jms-component.adoc b/components/camel-jms/src/main/docs/jms-component.adoc index 9d2e5b2563d..cf46194f4ee 100644 --- a/components/camel-jms/src/main/docs/jms-component.adoc +++ b/components/camel-jms/src/main/docs/jms-component.adoc @@ -164,13 +164,6 @@ valid Java identifiers. One benefit of doing this is that you can then use your headers inside a JMS Selector (whose SQL92 syntax mandates Java identifier syntax for headers). -A simple strategy for mapping header names is used by default. The -strategy is to replace any dots and hyphens in the header name as shown -below and to reverse the replacement when the header name is restored -from a JMS message sent over the wire. What does this mean? No more -losing method names to invoke on a bean component, no more losing the -filename header for the File Component, and so on. - The current header name strategy for accepting header names in Camel is as follows: @@ -179,8 +172,27 @@ Camel consume the message * Hyphen is replaced by `\_HYPHEN_` and the replacement is reversed when Camel consumes the message -You can configure many different properties on the JMS endpoint, which -map to properties on the `JMSConfiguration` object. + +Camel comes with two implementations of `HeaderFilterStrategy`: + +- `org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy` - classic strategy used until Camel 4.8. +- `org.apache.camel.component.jms.JmsHeaderFilterStrategy` - newer default strategy from Camel 4.9 onwards. + +==== ClassicJmsHeaderFilterStrategy + +A classic strategy for mapping header names is used in Camel 4.8 or older. + +This strategy also includes Camel internal headers such as `CamelFileName` and `CamelBeanMethodName` +which means that you can send Camel messages over JMS to another Camel instance and preserve +this information. However, this also means that JMS messages contains properties with `Camel...` keys. +This is not desirable always, and therefore we changed default from Camel 4.9 onwards. + +NOTE: You can always configure a custom `HeaderFilterStrategy` to remove all `Camel...` headers in Camel 4.8 or older. + +==== JmsHeaderFilterStrategy + +The new default strategy from Camel 4.9 onwards behaves similar to other components, where `Camel...` +headers are removed, and only allowing explicit end user headers. [WARNING] ==== diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/ClassicJmsHeaderFilterStrategy.java similarity index 79% copy from components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java copy to components/camel-jms/src/main/java/org/apache/camel/component/jms/ClassicJmsHeaderFilterStrategy.java index dd6ee5787ee..956213e80cc 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/ClassicJmsHeaderFilterStrategy.java @@ -18,13 +18,17 @@ package org.apache.camel.component.jms; import org.apache.camel.support.DefaultHeaderFilterStrategy; -public class JmsHeaderFilterStrategy extends DefaultHeaderFilterStrategy { +/** + * The classic {@link org.apache.camel.spi.HeaderFilterStrategy} which includes Camel specific headers with the JMS + * component. This strategy should only be used if you rely on this old behavior. + */ +public class ClassicJmsHeaderFilterStrategy extends DefaultHeaderFilterStrategy { - public JmsHeaderFilterStrategy() { + public ClassicJmsHeaderFilterStrategy() { this(false); } - public JmsHeaderFilterStrategy(boolean includeAllJMSXProperties) { + public ClassicJmsHeaderFilterStrategy(boolean includeAllJMSXProperties) { if (!includeAllJMSXProperties) { initialize(); } diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConstants.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConstants.java index e23b2af3575..b23adfdd3ad 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConstants.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConstants.java @@ -59,12 +59,14 @@ public final class JmsConstants { public static final String JMS_HEADER_XUSER_ID = "JMSXUserID"; @Metadata(description = "The message type.", javaType = "org.apache.camel.component.jms.JmsMessageType") public static final String JMS_MESSAGE_TYPE = "CamelJmsMessageType"; - public static final String JMS_DELIVERY_MODE = "CamelJmsDeliveryMode"; @Metadata(label = "producer", description = "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", - javaType = "long", defaultValue = "20_000") + javaType = "long", defaultValue = "20000") public static final String JMS_REQUEST_TIMEOUT = "CamelJmsRequestTimeout"; + // temporary header for delivery mode when preserver message qos is enabled + public static final String JMS_DELIVERY_MODE = "CamelJmsDeliveryMode"; + private JmsConstants() { // utility class } diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java index dd6ee5787ee..9937a1d8cee 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsHeaderFilterStrategy.java @@ -25,6 +25,8 @@ public class JmsHeaderFilterStrategy extends DefaultHeaderFilterStrategy { } public JmsHeaderFilterStrategy(boolean includeAllJMSXProperties) { + setOutFilterStartsWith(DefaultHeaderFilterStrategy.CAMEL_FILTER_STARTS_WITH); + setInFilterStartsWith(DefaultHeaderFilterStrategy.CAMEL_FILTER_STARTS_WITH); if (!includeAllJMSXProperties) { initialize(); } diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java index 16cb37a344e..40c2cd90767 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java @@ -61,8 +61,8 @@ public class JmsHeaderFilteringTest extends AbstractJMSTest { errors.expectedMessageCount(0); template.send(testQueueEndpointA, ExchangePattern.InOnly, exchange -> { - exchange.getIn().setHeader("org.apache.camel.jms", 10000); - exchange.getIn().setHeader("org.apache.camel.test.jms", 20000); + exchange.getIn().setHeader("org.foo.jms", 10000); + exchange.getIn().setHeader("org.foo.test.jms", 20000); exchange.getIn().setHeader("testheader", 1020); exchange.getIn().setHeader("anotherheader", 1030); exchange.getIn().setHeader("JMSXAppID", "myApp"); @@ -132,10 +132,10 @@ public class JmsHeaderFilteringTest extends AbstractJMSTest { assertNull(message.getJmsMessage().getObjectProperty("anotherheader")); // notice dots are replaced by '_DOT_' when it is copied to the jms message properties - assertEquals(10000, message.getJmsMessage().getObjectProperty("org_DOT_apache_DOT_camel_DOT_jms")); + assertEquals(10000, message.getJmsMessage().getObjectProperty("org_DOT_foo_DOT_jms")); // like testheader, org.apache.camel.test.jms will be filtered by the "in" filter - assertEquals(20000, message.getJmsMessage().getObjectProperty("org_DOT_apache_DOT_camel_DOT_test_DOT_jms")); + assertEquals(20000, message.getJmsMessage().getObjectProperty("org_DOT_foo_DOT_test_DOT_jms")); // should be filtered by default assertNull(message.getJmsMessage().getStringProperty("JMSXAppID")); @@ -157,10 +157,10 @@ public class JmsHeaderFilteringTest extends AbstractJMSTest { assertNull(exchange.getIn().getHeader("anotherheader")); // it should not been filtered out - assertEquals(10000, exchange.getIn().getHeader("org.apache.camel.jms")); + assertEquals(10000, exchange.getIn().getHeader("org.foo.jms")); // filtered out by "in" filter - assertNull(exchange.getIn().getHeader("org_DOT_apache_DOT_camel_DOT_test_DOT_jms")); + assertNull(exchange.getIn().getHeader("org_DOT_foo_DOT_test_DOT_jms")); // should be filtered by default assertNull(exchange.getIn().getHeader("JMSXAppID")); diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java index 4366ed4e941..5b26c93bf06 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java @@ -84,12 +84,12 @@ public class JmsRouteWithDefaultKeyFormatStrategyTest extends AbstractJMSTest { mock.expectedBodiesReceived("Hello World"); mock.expectedHeaderReceived("foo", "cheese"); mock.expectedHeaderReceived("Content-Type", "text/plain"); - mock.expectedHeaderReceived("org.apache.camel.MyKey", "foo"); + mock.expectedHeaderReceived("org.foo.MyKey", "foo"); Map<String, Object> headers = new HashMap<>(); headers.put("foo", "cheese"); headers.put("Content-Type", "text/plain"); - headers.put("org.apache.camel.MyKey", "foo"); + headers.put("org.foo.MyKey", "foo"); template.sendBodyAndHeaders("direct:start", "Hello World", headers); diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java index 70f29f21f2a..d404cbd4f1b 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java @@ -40,6 +40,7 @@ import org.junit.jupiter.params.provider.ValueSource; import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf; import static org.apache.camel.test.junit5.TestSupport.deleteDirectory; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; @ResourceLock("src/test/data") public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest { @@ -91,15 +92,20 @@ public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest { Object body = getMockEndpoint("mock:resultJmsStreamMessageTypeNoStreamCachingTest").getReceivedExchanges().get(0) .getIn().getBody(); StreamMessageInputStream is = assertIsInstanceOf(StreamMessageInputStream.class, body); + assertNotNull(is); // no more bytes should be available on the input stream assertEquals(0, is.available()); // assert on the content of input versus output file String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, baseFile); + + String targetName + = FileUtil.stripPath(new File("target/stream/JmsStreamMessageTypeNoStreamCachingTest/out/").list()[0]); + String dstContent = context.getTypeConverter().mandatoryConvertTo(String.class, - new File("target/stream/JmsStreamMessageTypeNoStreamCachingTest/out/", filename)); + new File("target/stream/JmsStreamMessageTypeNoStreamCachingTest/out/", targetName)); assertEquals(srcContent, dstContent, "both the source and destination files should have the same content"); } diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java index cd0cab83610..9832d207005 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java @@ -40,6 +40,7 @@ import org.junit.jupiter.params.provider.ValueSource; import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf; import static org.apache.camel.test.junit5.TestSupport.deleteDirectory; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * This test cannot run in parallel: it reuses the same path for different test iterations @@ -88,12 +89,16 @@ public class JmsStreamMessageTypeTest extends AbstractJMSTest { Object body = getMockEndpoint("mock:result").getReceivedExchanges().get(0).getIn().getBody(); InputStream is = assertIsInstanceOf(InputStream.class, body); + assertNotNull(is); // assert on the content of input versus output file String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, new File("src/test/data/", filename)); + + String targetName = FileUtil.stripPath(new File("target/stream/JmsStreamMessageTypeTest/out/").list()[0]); + String dstContent = context.getTypeConverter().mandatoryConvertTo(String.class, - new File("target/stream/JmsStreamMessageTypeTest/out/", filename)); + new File("target/stream/JmsStreamMessageTypeTest/out/", targetName)); assertEquals(srcContent, dstContent, "both the source and destination files should have the same content"); } diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsKeepLastModifiedIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsKeepLastModifiedIT.java index 068e5b77055..babd844399e 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsKeepLastModifiedIT.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsKeepLastModifiedIT.java @@ -19,12 +19,16 @@ package org.apache.camel.component.jms.integration; import java.io.File; import java.util.concurrent.TimeUnit; +import jakarta.jms.ConnectionFactory; + import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.AbstractJMSTest; +import org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy; +import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.infra.core.CamelContextExtension; import org.apache.camel.test.infra.core.DefaultCamelContextExtension; @@ -93,6 +97,14 @@ public class FileRouteJmsKeepLastModifiedIT extends AbstractJMSTest { return camelContextExtension; } + @Override + protected JmsComponent buildComponent(ConnectionFactory connectionFactory) { + JmsComponent amq = super.buildComponent(connectionFactory); + // need to use the classic header filter + amq.setHeaderFilterStrategy(new ClassicJmsHeaderFilterStrategy()); + return amq; + } + @BeforeEach void setUpRequirements() { context = camelContextExtension.getContext(); diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsPreMoveIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsPreMoveIT.java index bf811abe868..64455cf9aef 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsPreMoveIT.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteJmsPreMoveIT.java @@ -16,12 +16,16 @@ */ package org.apache.camel.component.jms.integration; +import jakarta.jms.ConnectionFactory; + import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.AbstractJMSTest; +import org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy; +import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.infra.core.CamelContextExtension; import org.apache.camel.test.infra.core.DefaultCamelContextExtension; @@ -87,6 +91,14 @@ public class FileRouteJmsPreMoveIT extends AbstractJMSTest { return camelContextExtension; } + @Override + protected JmsComponent buildComponent(ConnectionFactory connectionFactory) { + JmsComponent amq = super.buildComponent(connectionFactory); + // need to use the classic header filter + amq.setHeaderFilterStrategy(new ClassicJmsHeaderFilterStrategy()); + return amq; + } + @BeforeEach void setUpRequirements() { context = camelContextExtension.getContext(); diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteToJmsToFileIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteToJmsToFileIT.java index 9edb311faa1..a3dc32bb594 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteToJmsToFileIT.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/FileRouteToJmsToFileIT.java @@ -18,6 +18,8 @@ package org.apache.camel.component.jms.integration; import java.io.File; +import jakarta.jms.ConnectionFactory; + import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; @@ -25,6 +27,8 @@ import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.NotifyBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.AbstractJMSTest; +import org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy; +import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.infra.core.CamelContextExtension; import org.apache.camel.test.infra.core.DefaultCamelContextExtension; @@ -88,6 +92,14 @@ public class FileRouteToJmsToFileIT extends AbstractJMSTest { return camelContextExtension; } + @Override + protected JmsComponent buildComponent(ConnectionFactory connectionFactory) { + JmsComponent amq = super.buildComponent(connectionFactory); + // need to use the classic header filter + amq.setHeaderFilterStrategy(new ClassicJmsHeaderFilterStrategy()); + return amq; + } + @BeforeEach void setUpRequirements() { context = camelContextExtension.getContext(); diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/issues/JmsFilenameHeaderIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/issues/JmsFilenameHeaderIT.java index 9cf60eeb87c..09db709ee80 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/issues/JmsFilenameHeaderIT.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/issues/JmsFilenameHeaderIT.java @@ -18,12 +18,16 @@ package org.apache.camel.component.jms.integration.issues; import java.io.File; +import jakarta.jms.ConnectionFactory; + import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.AbstractJMSTest; +import org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy; +import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.infra.core.CamelContextExtension; import org.apache.camel.test.infra.core.DefaultCamelContextExtension; @@ -88,4 +92,13 @@ public class JmsFilenameHeaderIT extends AbstractJMSTest { template = camelContextExtension.getProducerTemplate(); consumer = camelContextExtension.getConsumerTemplate(); } + + @Override + protected JmsComponent buildComponent(ConnectionFactory connectionFactory) { + JmsComponent amq = super.buildComponent(connectionFactory); + // need to use the classic header filter + amq.setHeaderFilterStrategy(new ClassicJmsHeaderFilterStrategy()); + return amq; + } + } diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java index 19e62242015..26c4d821cca 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.jms.issues; +import jakarta.jms.ConnectionFactory; + import org.apache.camel.BindToRegistry; import org.apache.camel.Body; import org.apache.camel.CamelContext; @@ -25,6 +27,8 @@ import org.apache.camel.ExchangePattern; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.AbstractJMSTest; +import org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy; +import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.infra.core.CamelContextExtension; import org.apache.camel.test.infra.core.DefaultCamelContextExtension; @@ -131,6 +135,14 @@ public class JmsBeanMethodHeaderTest extends AbstractJMSTest { return camelContextExtension; } + @Override + protected JmsComponent buildComponent(ConnectionFactory connectionFactory) { + JmsComponent amq = super.buildComponent(connectionFactory); + // need to use the classic header filter + amq.setHeaderFilterStrategy(new ClassicJmsHeaderFilterStrategy()); + return amq; + } + @BeforeEach void setUpRequirements() { context = camelContextExtension.getContext(); diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc index 0676fd139c7..867639fe171 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc @@ -13,6 +13,10 @@ to an `Integer` value. === camel-jms +The camel-jms component has changed its default `HeaderFilterStrategy` to also remove any `Camel...` headers, +to act similar to other Camel components. If the old classic behavior is needed then you can configure the `JmsComponent` to use `org.apache.camel.component.jms.ClassicJmsHeaderFilterStrategy` +as header filter strategy which is the old implementation. + Added `int limit` as parameter to the `browse` method in `org.apache.camel.component.jms.QueueBrowseStrategy`. === camel-hashicorp-vault properties function diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java index 31d073bddaa..b3e1965d54d 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java @@ -7275,7 +7275,7 @@ public interface AMQPEndpointBuilderFactory { * * The option is a: {@code long} type. * - * Default: 20_000 + * Default: 20000 * Group: producer * * @return the name of the header {@code JmsRequestTimeout}. diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java index d4868580ec6..7176016f1fe 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java @@ -7324,7 +7324,7 @@ public interface ActiveMQ6EndpointBuilderFactory { * * The option is a: {@code long} type. * - * Default: 20_000 + * Default: 20000 * Group: producer * * @return the name of the header {@code JmsRequestTimeout}. diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java index 962768c93e3..6dbda20c917 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java @@ -7324,7 +7324,7 @@ public interface ActiveMQEndpointBuilderFactory { * * The option is a: {@code long} type. * - * Default: 20_000 + * Default: 20000 * Group: producer * * @return the name of the header {@code JmsRequestTimeout}. diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java index 00796321f34..810e0d871c9 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java @@ -7275,7 +7275,7 @@ public interface JmsEndpointBuilderFactory { * * The option is a: {@code long} type. * - * Default: 20_000 + * Default: 20000 * Group: producer * * @return the name of the header {@code JmsRequestTimeout}.
