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."); } } }