Author: dkulp
Date: Mon Sep 19 21:11:22 2011
New Revision: 1172823

URL: http://svn.apache.org/viewvc?rev=1172823&view=rev
Log:
Merged revisions 1159528 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1159528 | davsclaus | 2011-08-19 03:52:45 -0400 (Fri, 19 Aug 2011) | 1 line
  
  CAMEL-4353: Improved error message if using transacted in the DSL and TX 
manager could not be found. Now we fail fast with detailed exception.
........

Added:
    
camel/branches/camel-2.8.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/JavaDslTransactedNoTXManagerTest.java
      - copied unchanged from r1159528, 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/JavaDslTransactedNoTXManagerTest.java
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java
    
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java?rev=1172823&r1=1172822&r2=1172823&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java
 (original)
+++ 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java
 Mon Sep 19 21:11:22 2011
@@ -31,7 +31,7 @@ public class NoSuchBeanException extends
     }
 
     public NoSuchBeanException(String name, String type) {
-        super("No bean could be found in the registry for: " + name + " of 
type: " + type);
+        super("No bean could be found in the registry" + (name != null ? " 
for: " + name : "") + " of type: " + type);
         this.name = name;
     }
 

Modified: 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java?rev=1172823&r1=1172822&r2=1172823&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
 (original)
+++ 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
 Mon Sep 19 21:11:22 2011
@@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlAttr
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.apache.camel.NoSuchBeanException;
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.processor.WrapProcessor;
@@ -191,6 +192,7 @@ public class TransactedDefinition extend
             answer = routeContext.lookup(PROPAGATION_REQUIRED, 
TransactedPolicy.class);
         }
 
+        // this logic only applies if we are a transacted policy
         // still no policy found then try lookup the platform transaction 
manager and use it as policy
         if (answer == null && type == TransactedPolicy.class) {
             Class tmClazz = 
routeContext.getCamelContext().getClassResolver().resolveClass("org.springframework.transaction.PlatformTransactionManager");
@@ -220,16 +222,15 @@ public class TransactedDefinition extend
                         ObjectHelper.invokeMethod(method, txPolicy, 
transactionManager);
                         return txPolicy;
                     } else {
-                        LOG.warn("Cannot create a transacted policy as 
camel-spring.jar is not on the classpath!");
+                        // camel-spring is missing on the classpath
+                        throw new RuntimeCamelException("Cannot create a 
transacted policy as camel-spring.jar is not on the classpath!");
                     }
                 } else {
-                    if (LOG.isDebugEnabled()) {
-                        if (maps.isEmpty()) {
-                            LOG.debug("No PlatformTransactionManager found in 
registry.");
-                        } else {
-                            LOG.debug("Found {} PlatformTransactionManager in 
registry. "
-                                    + "Cannot determine which one to use. 
Please configure a TransactionTemplate on the policy", maps.size());
-                        }
+                    if (maps.isEmpty()) {
+                        throw new NoSuchBeanException(null, 
"PlatformTransactionManager");
+                    } else {
+                        throw new IllegalArgumentException("Found " + 
maps.size() + " PlatformTransactionManager in registry. "
+                                + "Cannot determine which one to use. Please 
configure a TransactionTemplate on the transacted policy.");
                     }
                 }
             }


Reply via email to