Author: janstey Date: Tue Nov 22 15:09:40 2011 New Revision: 1205032 URL: http://svn.apache.org/viewvc?rev=1205032&view=rev Log: CAMEL-4689 - Add back fail-fast behavior of camel-xslt. Keep new behavior of checking for XSLT via header.
Removed: camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltFromHeaderTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/InvalidXsltFileTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltFileNotFoundTest.java camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonInvalidXsltFileTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java?rev=1205032&r1=1205031&r2=1205032&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java Tue Nov 22 15:09:40 2011 @@ -48,9 +48,7 @@ public class XsltEndpoint extends Proces this.xslt = xslt; this.resourceUri = resourceUri; this.cacheStylesheet = cacheStylesheet; - - // load stylesheet on first exchange - clearCachedStylesheet(); + loadResource(xslt, resourceUri); } @ManagedOperation(description = "Clears the cached XSLT stylesheet, forcing to re-load the stylesheet on next request") @@ -88,7 +86,7 @@ public class XsltEndpoint extends Proces XsltEndpoint newEndpoint = findOrCreateEndpoint(getEndpointUri(), newResourceUri); newEndpoint.onExchange(exchange); return; - } else { + } else { if (!cacheStylesheet || cacheCleared) { loadResource(xslt, resourceUri); } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/InvalidXsltFileTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/InvalidXsltFileTest.java?rev=1205032&r1=1205031&r2=1205032&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/InvalidXsltFileTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/InvalidXsltFileTest.java Tue Nov 22 15:09:40 2011 @@ -16,31 +16,36 @@ */ package org.apache.camel.component.xslt; -import javax.xml.transform.TransformerConfigurationException; - -import org.apache.camel.CamelExecutionException; -import org.apache.camel.ContextTestSupport; +import org.apache.camel.CamelContext; +import org.apache.camel.FailedToCreateRouteException; +import org.apache.camel.ResolveEndpointFailedException; +import org.apache.camel.TestSupport; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.impl.DefaultCamelContext; /** * */ -public class InvalidXsltFileTest extends ContextTestSupport { +public class InvalidXsltFileTest extends TestSupport { public void testInvalidStylesheet() throws Exception { try { - template.sendBody("direct:a", "foo"); + RouteBuilder builder = createRouteBuilder(); + CamelContext context = new DefaultCamelContext(); + context.addRoutes(builder); + context.start(); + fail("Should have thrown an exception due XSL compilation error"); - } catch (CamelExecutionException e) { + } catch (FailedToCreateRouteException e) { // expected - assertIsInstanceOf(TransformerConfigurationException.class, e.getCause()); - } + assertIsInstanceOf(ResolveEndpointFailedException.class, e.getCause()); + } } protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { - from("direct:a").to("xslt:org/apache/camel/component/xslt/invalid.xsl"); + from("seda:a").to("xslt:org/apache/camel/component/xslt/invalid.xsl"); } }; } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltFileNotFoundTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltFileNotFoundTest.java?rev=1205032&r1=1205031&r2=1205032&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltFileNotFoundTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltFileNotFoundTest.java Tue Nov 22 15:09:40 2011 @@ -17,30 +17,39 @@ package org.apache.camel.component.xslt; import java.io.FileNotFoundException; +import javax.xml.transform.TransformerConfigurationException; -import org.apache.camel.CamelExecutionException; -import org.apache.camel.ContextTestSupport; +import org.apache.camel.CamelContext; +import org.apache.camel.FailedToCreateRouteException; +import org.apache.camel.ResolveEndpointFailedException; +import org.apache.camel.TestSupport; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.impl.DefaultCamelContext; /** * */ -public class XsltFileNotFoundTest extends ContextTestSupport { +public class XsltFileNotFoundTest extends TestSupport { public void testNoXsltFile() throws Exception { try { - template.sendBody("direct:a", "foo"); + RouteBuilder builder = createRouteBuilder(); + CamelContext context = new DefaultCamelContext(); + context.addRoutes(builder); + context.start(); + fail("Should have thrown an exception due XSLT file not found"); - } catch (CamelExecutionException e) { + } catch (FailedToCreateRouteException e) { // expected - assertIsInstanceOf(FileNotFoundException.class, e.getCause()); + assertIsInstanceOf(ResolveEndpointFailedException.class, e.getCause()); + assertIsInstanceOf(FileNotFoundException.class, e.getCause().getCause()); } } protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { - from("direct:a").to("xslt:org/apache/camel/component/xslt/notfound.xsl"); + from("seda:a").to("xslt:org/apache/camel/component/xslt/notfound.xsl"); } }; } Modified: camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonInvalidXsltFileTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonInvalidXsltFileTest.java?rev=1205032&r1=1205031&r2=1205032&view=diff ============================================================================== --- camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonInvalidXsltFileTest.java (original) +++ camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonInvalidXsltFileTest.java Tue Nov 22 15:09:40 2011 @@ -16,30 +16,31 @@ */ package org.apache.camel.component.xslt; -import java.io.FileNotFoundException; - -import javax.xml.transform.TransformerConfigurationException; - -import org.apache.camel.CamelExecutionException; +import org.apache.camel.CamelContext; +import org.apache.camel.FailedToCreateRouteException; +import org.apache.camel.ResolveEndpointFailedException; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.test.junit4.CamelTestSupport; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.TestSupport; import org.junit.Test; -public class SaxonInvalidXsltFileTest extends CamelTestSupport { +public class SaxonInvalidXsltFileTest extends TestSupport { @Test public void testInvalidStylesheet() throws Exception { try { - template.requestBody("seda:a", "foo"); + RouteBuilder builder = createRouteBuilder(); + CamelContext context = new DefaultCamelContext(); + context.addRoutes(builder); + context.start(); + fail("Should have thrown an exception due XSL compilation error"); - } catch (CamelExecutionException e) { + } catch (FailedToCreateRouteException e) { // expected - Class<?> clazz = e.getCause().getClass(); - assertTrue("Not an expected exception type", clazz == TransformerConfigurationException.class || clazz == FileNotFoundException.class); + assertIsInstanceOf(ResolveEndpointFailedException.class, e.getCause()); } } - @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { @@ -47,4 +48,5 @@ public class SaxonInvalidXsltFileTest ex } }; } + }