You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/08/05 17:19:40 UTC

[camel] 01/03: CAMEL-15377: camel-jms - Add back transactedInOut option

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ffe0d1beec83dc8b4832eda509429fc65af4184c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 5 18:21:56 2020 +0200

    CAMEL-15377: camel-jms - Add back transactedInOut option
---
 .../component/jms/JmsComponentConfigurer.java      |  5 ++
 .../camel/component/jms/JmsEndpointConfigurer.java |  5 ++
 .../org/apache/camel/component/jms/jms.json        |  2 +
 .../camel-jms/src/main/docs/jms-component.adoc     |  6 +-
 .../apache/camel/component/jms/JmsComponent.java   | 13 +++-
 .../camel/component/jms/JmsConfiguration.java      | 54 +++++++++++---
 .../apache/camel/component/jms/JmsEndpoint.java    |  9 ++-
 .../component/dsl/JmsComponentBuilderFactory.java  | 14 ++++
 .../endpoint/dsl/JmsEndpointBuilderFactory.java    | 82 ++++++++++++++++++++++
 9 files changed, 175 insertions(+), 15 deletions(-)

diff --git a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
index 25317da..27b8c29 100644
--- a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
+++ b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
@@ -193,6 +193,8 @@ public class JmsComponentConfigurer extends PropertyConfigurerSupport implements
         case "timetolive":
         case "timeToLive": getOrCreateConfiguration(target).setTimeToLive(property(camelContext, long.class, value)); return true;
         case "transacted": getOrCreateConfiguration(target).setTransacted(property(camelContext, boolean.class, value)); return true;
+        case "transactedinout":
+        case "transactedInOut": getOrCreateConfiguration(target).setTransactedInOut(property(camelContext, boolean.class, value)); return true;
         case "transactionmanager":
         case "transactionManager": getOrCreateConfiguration(target).setTransactionManager(property(camelContext, org.springframework.transaction.PlatformTransactionManager.class, value)); return true;
         case "transactionname":
@@ -303,6 +305,7 @@ public class JmsComponentConfigurer extends PropertyConfigurerSupport implements
         answer.put("testConnectionOnStartup", boolean.class);
         answer.put("timeToLive", long.class);
         answer.put("transacted", boolean.class);
+        answer.put("transactedInOut", boolean.class);
         answer.put("transactionManager", org.springframework.transaction.PlatformTransactionManager.class);
         answer.put("transactionName", java.lang.String.class);
         answer.put("transactionTimeout", int.class);
@@ -486,6 +489,8 @@ public class JmsComponentConfigurer extends PropertyConfigurerSupport implements
         case "timetolive":
         case "timeToLive": return getOrCreateConfiguration(target).getTimeToLive();
         case "transacted": return getOrCreateConfiguration(target).isTransacted();
+        case "transactedinout":
+        case "transactedInOut": return getOrCreateConfiguration(target).isTransactedInOut();
         case "transactionmanager":
         case "transactionManager": return getOrCreateConfiguration(target).getTransactionManager();
         case "transactionname":
diff --git a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
index f95346c..794ca50 100644
--- a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
+++ b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
@@ -184,6 +184,8 @@ public class JmsEndpointConfigurer extends PropertyConfigurerSupport implements
         case "timetolive":
         case "timeToLive": target.getConfiguration().setTimeToLive(property(camelContext, long.class, value)); return true;
         case "transacted": target.getConfiguration().setTransacted(property(camelContext, boolean.class, value)); return true;
+        case "transactedinout":
+        case "transactedInOut": target.getConfiguration().setTransactedInOut(property(camelContext, boolean.class, value)); return true;
         case "transactionmanager":
         case "transactionManager": target.getConfiguration().setTransactionManager(property(camelContext, org.springframework.transaction.PlatformTransactionManager.class, value)); return true;
         case "transactionname":
@@ -293,6 +295,7 @@ public class JmsEndpointConfigurer extends PropertyConfigurerSupport implements
         answer.put("testConnectionOnStartup", boolean.class);
         answer.put("timeToLive", long.class);
         answer.put("transacted", boolean.class);
+        answer.put("transactedInOut", boolean.class);
         answer.put("transactionManager", org.springframework.transaction.PlatformTransactionManager.class);
         answer.put("transactionName", java.lang.String.class);
         answer.put("transactionTimeout", int.class);
@@ -474,6 +477,8 @@ public class JmsEndpointConfigurer extends PropertyConfigurerSupport implements
         case "timetolive":
         case "timeToLive": return target.getConfiguration().getTimeToLive();
         case "transacted": return target.getConfiguration().isTransacted();
+        case "transactedinout":
+        case "transactedInOut": return target.getConfiguration().isTransactedInOut();
         case "transactionmanager":
         case "transactionManager": return target.getConfiguration().getTransactionManager();
         case "transactionname":
diff --git a/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json b/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
index 1a125e1..4f2334d 100644
--- a/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
+++ b/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
@@ -113,6 +113,7 @@
     "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
     "transacted": { "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "property", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode" },
     "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is n [...]
     "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
     "transactionName": { "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
@@ -211,6 +212,7 @@
     "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
     "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
     "transacted": { "kind": "parameter", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "parameter", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode" },
     "lazyCreateTransactionManager": { "kind": "parameter", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is  [...]
     "transactionManager": { "kind": "parameter", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
     "transactionName": { "kind": "parameter", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction 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 bb35dae..b852efb 100644
--- a/components/camel-jms/src/main/docs/jms-component.adoc
+++ b/components/camel-jms/src/main/docs/jms-component.adoc
@@ -186,7 +186,7 @@ about these properties by consulting the relevant Spring documentation.
 
 
 // component options: START
-The JMS component supports 95 options, which are listed below.
+The JMS component supports 96 options, which are listed below.
 
 
 
@@ -284,6 +284,7 @@ The JMS component supports 95 options, which are listed below.
 | *password* (security) | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *username* (security) | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *transacted* (transaction) | Specifies whether to use transacted mode | false | boolean
+| *transactedInOut* (transaction) | Specifies whether InOut operations (request reply) default to using transacted mode | false | boolean
 | *lazyCreateTransactionManager* (transaction) | If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true. | true | boolean
 | *transactionManager* (transaction) | The Spring transaction manager to use. |  | PlatformTransactionManager
 | *transactionName* (transaction) | The name of the transaction to use. |  | String
@@ -328,7 +329,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (94 parameters):
+=== Query Parameters (95 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -424,6 +425,7 @@ with the following path and query parameters:
 | *password* (security) | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *username* (security) | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *transacted* (transaction) | Specifies whether to use transacted mode | false | boolean
+| *transactedInOut* (transaction) | Specifies whether InOut operations (request reply) default to using transacted mode | false | boolean
 | *lazyCreateTransactionManager* (transaction) | If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true. | true | boolean
 | *transactionManager* (transaction) | The Spring transaction manager to use. |  | PlatformTransactionManager
 | *transactionName* (transaction) | The name of the transaction to use. |  | String
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
index 3103a32..a09de14 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
@@ -131,6 +131,7 @@ public class JmsComponent extends HeaderFilterStrategyComponent {
         JmsConfiguration configuration = new JmsConfiguration(connectionFactory);
         configuration.setTransactionManager(transactionManager);
         configuration.setTransacted(true);
+        configuration.setTransactedInOut(true);
         return jmsComponent(configuration);
     }
 
@@ -609,8 +610,16 @@ public class JmsComponent extends HeaderFilterStrategyComponent {
         return configuration.isTransacted();
     }
 
-    public void setTransacted(boolean consumerTransacted) {
-        configuration.setTransacted(consumerTransacted);
+    public void setTransacted(boolean transacted) {
+        configuration.setTransacted(transacted);
+    }
+
+    public boolean isTransactedInOut() {
+        return configuration.isTransactedInOut();
+    }
+
+    public void setTransactedInOut(boolean transacted) {
+        configuration.setTransactedInOut(transacted);
     }
 
     public boolean isLazyCreateTransactionManager() {
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
index 04851e9..504e55b 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
@@ -248,6 +248,9 @@ public class JmsConfiguration implements Cloneable {
     @UriParam(label = "transaction",
             description = "Specifies whether to use transacted mode")
     private boolean transacted;
+    @UriParam(label = "transaction",
+            description = "Specifies whether InOut operations (request reply) default to using transacted mode")
+    private boolean transactedInOut;
     @UriParam(defaultValue = "true", label = "transaction,advanced",
             description = "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.")
     private boolean lazyCreateTransactionManager = true;
@@ -644,13 +647,18 @@ public class JmsConfiguration implements Cloneable {
                 jmsTemplate.setTimeToLive(ttl);
             }
 
-            if (acknowledgementMode >= 0) {
-                jmsTemplate.setSessionAcknowledgeMode(acknowledgementMode);
-            } else if (acknowledgementModeName != null) {
-                jmsTemplate.setSessionAcknowledgeModeName(acknowledgementModeName);
+            jmsTemplate.setSessionTransacted(transactedInOut);
+            if (transactedInOut) {
+                jmsTemplate.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
             } else {
-                // default to AUTO
-                jmsTemplate.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
+                if (acknowledgementMode >= 0) {
+                    jmsTemplate.setSessionAcknowledgeMode(acknowledgementMode);
+                } else if (acknowledgementModeName != null) {
+                    jmsTemplate.setSessionAcknowledgeModeName(acknowledgementModeName);
+                } else {
+                    // default to AUTO
+                    jmsTemplate.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
+                }
             }
         }
         return answer;
@@ -1362,8 +1370,36 @@ public class JmsConfiguration implements Cloneable {
     /**
      * Specifies whether to use transacted mode
      */
-    public void setTransacted(boolean consumerTransacted) {
-        this.transacted = consumerTransacted;
+    public void setTransacted(boolean transacted) {
+        this.transacted = transacted;
+    }
+
+    /**
+     * Specifies whether InOut operations (request reply) default to using transacted mode.
+     *
+     * If this flag is set to true, then Spring JmsTemplate will have
+     * sessionTransacted set to true, and the acknowledgeMode as transacted
+     * on the JmsTemplate used for InOut operations.
+     *
+     * Note from Spring JMS: that within a JTA transaction, the parameters passed to
+     * createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context,
+     * the container makes its own decisions on these values. Analogously, these
+     * parameters are not taken into account within a locally managed transaction
+     * either, since Spring JMS operates on an existing JMS Session in this case.
+     * <p>Setting this flag to true will use a short local JMS transaction
+     * when running outside of a managed transaction, and a synchronized local
+     * JMS transaction in case of a managed transaction (other than an XA
+     * transaction) being present. This has the effect of a local JMS
+     * transaction being managed alongside the main transaction (which might
+     * be a native JDBC transaction), with the JMS transaction committing
+     * right after the main transaction.
+     */
+    public boolean isTransactedInOut() {
+        return transactedInOut;
+    }
+
+    public void setTransactedInOut(boolean transactedInOut) {
+        this.transactedInOut = transactedInOut;
     }
 
     public boolean isLazyCreateTransactionManager() {
@@ -1382,7 +1418,7 @@ public class JmsConfiguration implements Cloneable {
     }
 
     /**
-     * If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) (cannot be read/mapped),
+     * If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) cannot be read/mapped,
      * then set this text as the message body instead so the message can be processed
      * (the cause of the poison are already stored as exception on the Exchange).
      * This can be turned off by setting eagerPoisonBody=false.
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index 76e2c10..448d570 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
@@ -761,6 +761,11 @@ public class JmsEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
     }
 
     @ManagedAttribute
+    public boolean isTransactedInOut() {
+        return getConfiguration().isTransactedInOut();
+    }
+
+    @ManagedAttribute
     public boolean isLazyCreateTransactionManager() {
         return getConfiguration().isLazyCreateTransactionManager();
     }
@@ -1002,8 +1007,8 @@ public class JmsEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
     }
 
     @ManagedAttribute
-    public void setTransacted(boolean consumerTransacted) {
-        getConfiguration().setTransacted(consumerTransacted);
+    public void setTransacted(boolean transacted) {
+        getConfiguration().setTransacted(transacted);
     }
 
     @ManagedAttribute
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
index c41437a..5ec686d 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
@@ -1499,6 +1499,19 @@ public interface JmsComponentBuilderFactory {
             return this;
         }
         /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsComponentBuilder transactedInOut(boolean transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
+        /**
          * If true, Camel will create a JmsTransactionManager, if there is no
          * transactionManager injected when option transacted=true.
          * 
@@ -1665,6 +1678,7 @@ public interface JmsComponentBuilderFactory {
             case "password": getOrCreateConfiguration((JmsComponent) component).setPassword((java.lang.String) value); return true;
             case "username": getOrCreateConfiguration((JmsComponent) component).setUsername((java.lang.String) value); return true;
             case "transacted": getOrCreateConfiguration((JmsComponent) component).setTransacted((boolean) value); return true;
+            case "transactedInOut": getOrCreateConfiguration((JmsComponent) component).setTransactedInOut((boolean) value); return true;
             case "lazyCreateTransactionManager": getOrCreateConfiguration((JmsComponent) component).setLazyCreateTransactionManager((boolean) value); return true;
             case "transactionManager": getOrCreateConfiguration((JmsComponent) component).setTransactionManager((org.springframework.transaction.PlatformTransactionManager) value); return true;
             case "transactionName": getOrCreateConfiguration((JmsComponent) component).setTransactionName((java.lang.String) value); return true;
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
index 222fc25..8513812 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
@@ -651,6 +651,34 @@ public interface JmsEndpointBuilderFactory {
             doSetProperty("transacted", transacted);
             return this;
         }
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsEndpointConsumerBuilder transactedInOut(
+                boolean transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsEndpointConsumerBuilder transactedInOut(
+                String transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
     }
 
     /**
@@ -2774,6 +2802,34 @@ public interface JmsEndpointBuilderFactory {
             doSetProperty("transacted", transacted);
             return this;
         }
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsEndpointProducerBuilder transactedInOut(
+                boolean transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsEndpointProducerBuilder transactedInOut(
+                String transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
     }
 
     /**
@@ -4347,6 +4403,32 @@ public interface JmsEndpointBuilderFactory {
             doSetProperty("transacted", transacted);
             return this;
         }
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsEndpointBuilder transactedInOut(boolean transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default JmsEndpointBuilder transactedInOut(String transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
     }
 
     /**