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

Reply via email to