Author: davsclaus
Date: Sat Jul  5 05:18:56 2008
New Revision: 674187

URL: http://svn.apache.org/viewvc?rev=674187&view=rev
Log:
CAMEL-668: Spring friendly configuration of transactional policy (ups needed to 
support the propogation name also)

Modified:
    
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java

Modified: 
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java?rev=674187&r1=674186&r2=674187&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
 (original)
+++ 
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
 Sat Jul  5 05:18:56 2008
@@ -31,6 +31,8 @@
 public class SpringTransactionPolicy<E> implements Policy<E> {
     private static final transient Log LOG = 
LogFactory.getLog(SpringTransactionPolicy.class);
     private TransactionTemplate template;
+    private String propagationBehaviorName;
+    private PlatformTransactionManager transactionManager;
 
     /**
      * Default constructor for easy spring configuration.
@@ -55,6 +57,12 @@
     }
 
     public TransactionTemplate getTemplate() {
+        if (template == null) {
+            template = new TransactionTemplate(transactionManager);
+            if (propagationBehaviorName != null) {
+                template.setPropagationBehaviorName(propagationBehaviorName);
+            }
+        }
         return template;
     }
 
@@ -62,13 +70,20 @@
         this.template = template;
     }
 
-    /**
-     * Sets the transaction manager to use creating and also setting indirectly
-     * the transaction template.
-     */
     public void setTransactionManager(PlatformTransactionManager 
transactionManager) {
-        TransactionTemplate template = new 
TransactionTemplate(transactionManager);
-        setTemplate(template);
+        this.transactionManager = transactionManager;
+    }
+
+    public PlatformTransactionManager getTransactionManager() {
+        return transactionManager;
+    }
+
+    public void setPropagationBehaviorName(String propagationBehaviorName) {
+        this.propagationBehaviorName = propagationBehaviorName;
     }
 
+    public String getPropagationBehaviorName() {
+        return propagationBehaviorName;
+    }
+    
 }


Reply via email to