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

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

commit 392acab47965d481a9e36a2b1df4306ae290626f
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Apr 11 07:03:47 2022 +0200

    CAMEL-16834: error handler in DSL model
---
 .../apache/camel/jta/JtaTransactionErrorHandler.java    | 13 -------------
 .../java/org/apache/camel/jta/JtaTransactionPolicy.java | 12 ++++++++++++
 .../camel/spring/spi/SpringTransactionPolicy.java       | 17 ++++++++++++++++-
 .../spring/spi/TransactionErrorHandlerReifier.java      | 11 -----------
 4 files changed, 28 insertions(+), 25 deletions(-)

diff --git 
a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionErrorHandler.java
 
b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionErrorHandler.java
index 1d6c48cb414..dd3542e8894 100644
--- 
a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionErrorHandler.java
+++ 
b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionErrorHandler.java
@@ -24,11 +24,8 @@ import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
-import org.apache.camel.builder.JtaTransactionErrorHandlerBuilder;
-import 
org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
 import org.apache.camel.processor.errorhandler.RedeliveryErrorHandler;
 import org.apache.camel.processor.errorhandler.RedeliveryPolicy;
-import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
 import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.ErrorHandler;
 import org.slf4j.Logger;
@@ -41,16 +38,6 @@ import org.slf4j.LoggerFactory;
  */
 public class JtaTransactionErrorHandler extends RedeliveryErrorHandler {
 
-    static {
-        // register camel-jta as transaction error handler (both builder and 
definition)
-        
ErrorHandlerReifier.registerReifier(JtaTransactionErrorHandlerBuilder.class,
-                (route, errorHandlerFactory) -> new 
JtaTransactionErrorHandlerReifier(
-                        route, (JtaTransactionErrorHandlerDefinition) 
errorHandlerFactory));
-        
ErrorHandlerReifier.registerReifier(JtaTransactionErrorHandlerDefinition.class,
-                (route, errorHandlerFactory) -> new 
JtaTransactionErrorHandlerReifier(
-                        route, (JtaTransactionErrorHandlerDefinition) 
errorHandlerFactory));
-    }
-
     private static final Logger LOG = 
LoggerFactory.getLogger(JtaTransactionErrorHandler.class);
     private final JtaTransactionPolicy transactionPolicy;
     private final LoggingLevel rollbackLoggingLevel;
diff --git 
a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
 
b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
index e8672e11531..855818b0f9b 100644
--- 
a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
+++ 
b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
@@ -21,12 +21,14 @@ import org.apache.camel.NamedNode;
 import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.builder.JtaTransactionErrorHandlerBuilder;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
 import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
 import 
org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
+import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
 import org.apache.camel.spi.TransactedPolicy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,6 +41,16 @@ import org.slf4j.LoggerFactory;
  */
 public abstract class JtaTransactionPolicy implements TransactedPolicy {
 
+    static {
+        // register camel-jta as transaction error handler (both builder and 
definition)
+        
ErrorHandlerReifier.registerReifier(JtaTransactionErrorHandlerBuilder.class,
+                (route, errorHandlerFactory) -> new 
JtaTransactionErrorHandlerReifier(
+                        route, (JtaTransactionErrorHandlerDefinition) 
errorHandlerFactory));
+        
ErrorHandlerReifier.registerReifier(JtaTransactionErrorHandlerDefinition.class,
+                (route, errorHandlerFactory) -> new 
JtaTransactionErrorHandlerReifier(
+                        route, (JtaTransactionErrorHandlerDefinition) 
errorHandlerFactory));
+    }
+
     private static final Logger LOG = 
LoggerFactory.getLogger(JtaTransactionPolicy.class);
 
     public interface Runnable {
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
index 3611d689b62..a0ba6d41273 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
@@ -21,10 +21,13 @@ import org.apache.camel.NamedNode;
 import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.builder.SpringTransactionErrorHandlerBuilder;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
 import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import 
org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
+import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
 import org.apache.camel.spi.TransactedPolicy;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
@@ -36,12 +39,23 @@ import 
org.springframework.transaction.support.TransactionTemplate;
  * Spring transaction policy when using spring based transactions.
  */
 public class SpringTransactionPolicy implements TransactedPolicy {
+
     private static final Logger LOG = 
LoggerFactory.getLogger(SpringTransactionPolicy.class);
     private TransactionTemplate template;
     private String name;
     private String propagationBehaviorName;
     private PlatformTransactionManager transactionManager;
 
+    static {
+        // register camel-spring as transaction error handler (both builder 
and definition)
+        
ErrorHandlerReifier.registerReifier(SpringTransactionErrorHandlerBuilder.class,
+                (route, errorHandlerFactory) -> new 
TransactionErrorHandlerReifier(
+                        route, (SpringTransactionErrorHandlerDefinition) 
errorHandlerFactory));
+        
ErrorHandlerReifier.registerReifier(SpringTransactionErrorHandlerDefinition.class,
+                (route, errorHandlerFactory) -> new 
TransactionErrorHandlerReifier(
+                        route, (SpringTransactionErrorHandlerDefinition) 
errorHandlerFactory));
+    }
+
     /**
      * Default constructor for easy spring configuration.
      */
@@ -99,8 +113,9 @@ public class SpringTransactionPolicy implements 
TransactedPolicy {
             if (builder != null) {
                 LOG.debug("The ErrorHandlerBuilder configured is not a 
TransactionErrorHandlerBuilder: {}", builder);
             } else {
-                LOG.debug("No ErrorHandlerBuilder configured, will use default 
TransactionErrorHandlerBuilder settings");
+                LOG.debug("No ErrorHandlerBuilder configured, will use default 
LegacyTransactionErrorHandlerBuilder settings");
             }
+            // use legacy transaction to also support camel-spring-xml
             LegacyTransactionErrorHandlerBuilder txBuilder = new 
LegacyTransactionErrorHandlerBuilder();
             txBuilder.setTransactionTemplate(getTransactionTemplate());
             txBuilder.setSpringTransactionPolicy(this);
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerReifier.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerReifier.java
index 70937602c9f..46f51834bf8 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerReifier.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerReifier.java
@@ -24,7 +24,6 @@ import org.apache.camel.LoggingLevel;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.Route;
-import org.apache.camel.builder.SpringTransactionErrorHandlerBuilder;
 import org.apache.camel.model.RedeliveryPolicyDefinition;
 import 
org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
 import org.apache.camel.model.errorhandler.TransactionErrorHandlerDefinition;
@@ -44,16 +43,6 @@ import static 
org.apache.camel.model.TransactedDefinition.PROPAGATION_REQUIRED;
 
 public class TransactionErrorHandlerReifier extends 
ErrorHandlerReifier<SpringTransactionErrorHandlerDefinition> {
 
-    static {
-        // register camel-spring as transaction error handler (both builder 
and definition)
-        
ErrorHandlerReifier.registerReifier(SpringTransactionErrorHandlerBuilder.class,
-                (route, errorHandlerFactory) -> new 
TransactionErrorHandlerReifier(
-                        route, (SpringTransactionErrorHandlerDefinition) 
errorHandlerFactory));
-        
ErrorHandlerReifier.registerReifier(SpringTransactionErrorHandlerDefinition.class,
-                (route, errorHandlerFactory) -> new 
TransactionErrorHandlerReifier(
-                        route, (SpringTransactionErrorHandlerDefinition) 
errorHandlerFactory));
-    }
-
     private static final Logger LOG = 
LoggerFactory.getLogger(TransactionErrorHandlerReifier.class);
 
     public TransactionErrorHandlerReifier(Route route, 
SpringTransactionErrorHandlerDefinition definition) {

Reply via email to