Author: davsclaus Date: Thu Mar 18 08:48:19 2010 New Revision: 924670 URL: http://svn.apache.org/viewvc?rev=924670&view=rev Log: CAMEL-2557: Added option useSharedSchema to validation component.
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorNotUseSharedSchemaTest.java - copied, changed from r924321, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedEndpoint.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java?rev=924670&r1=924669&r2=924670&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java Thu Mar 18 08:48:19 2010 @@ -52,9 +52,16 @@ public class ValidatingProcessor impleme private File schemaFile; private ValidatorErrorHandler errorHandler = new DefaultValidationErrorHandler(); private boolean useDom; + private boolean useSharedSchema = true; public void process(Exchange exchange) throws Exception { - Schema schema = getSchema(); + Schema schema; + if (isUseSharedSchema()) { + schema = getSchema(); + } else { + schema = createSchema(); + } + Validator validator = schema.newValidator(); Source source; @@ -88,7 +95,7 @@ public class ValidatingProcessor impleme // Properties // ----------------------------------------------------------------------- - public Schema getSchema() throws IOException, SAXException { + public synchronized Schema getSchema() throws IOException, SAXException { if (schema == null) { schema = createSchema(); } @@ -107,7 +114,7 @@ public class ValidatingProcessor impleme this.schemaLanguage = schemaLanguage; } - public Source getSchemaSource() throws IOException { + public synchronized Source getSchemaSource() throws IOException { if (schemaSource == null) { schemaSource = createSchemaSource(); } @@ -134,7 +141,7 @@ public class ValidatingProcessor impleme this.schemaFile = schemaFile; } - public SchemaFactory getSchemaFactory() { + public synchronized SchemaFactory getSchemaFactory() { if (schemaFactory == null) { schemaFactory = createSchemaFactory(); } @@ -167,6 +174,14 @@ public class ValidatingProcessor impleme this.useDom = useDom; } + public boolean isUseSharedSchema() { + return useSharedSchema; + } + + public void setUseSharedSchema(boolean useSharedSchema) { + this.useSharedSchema = useSharedSchema; + } + // Implementation methods // ----------------------------------------------------------------------- Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorNotUseSharedSchemaTest.java (from r924321, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorNotUseSharedSchemaTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorNotUseSharedSchemaTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java&r1=924321&r2=924670&rev=924670&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorNotUseSharedSchemaTest.java Thu Mar 18 08:48:19 2010 @@ -30,7 +30,7 @@ import org.apache.camel.processor.valida /** * Unit test of ValidatingProcessor. */ -public class ValidatingProcessorTest extends ContextTestSupport { +public class ValidatingProcessorNotUseSharedSchemaTest extends ContextTestSupport { protected ValidatingProcessor validating; @@ -38,6 +38,7 @@ public class ValidatingProcessorTest ext protected void setUp() throws Exception { validating = new ValidatingProcessor(); validating.setSchemaFile(new File("src/test/resources/org/apache/camel/processor/ValidatingProcessor.xsd").getAbsoluteFile()); + validating.setUseSharedSchema(false); super.setUp(); } @@ -57,6 +58,22 @@ public class ValidatingProcessorTest ext assertMockEndpointsSatisfied(); } + public void testValidMessageTwice() throws Exception { + MockEndpoint mock = getMockEndpoint("mock:valid"); + mock.expectedMessageCount(2); + + String xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>" + + "<user xmlns=\"http://foo.com/bar\">" + + " <id>1</id>" + + " <username>davsclaus</username>" + + "</user>"; + + template.sendBody("direct:start", xml); + template.sendBody("direct:start", xml); + + assertMockEndpointsSatisfied(); + } + public void testInvalidMessage() throws Exception { MockEndpoint mock = getMockEndpoint("mock:invalid"); mock.expectedMessageCount(1); @@ -121,4 +138,5 @@ public class ValidatingProcessorTest ext } }; } + } \ No newline at end of file Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java?rev=924670&r1=924669&r2=924670&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java Thu Mar 18 08:48:19 2010 @@ -57,6 +57,22 @@ public class ValidatingProcessorTest ext assertMockEndpointsSatisfied(); } + public void testValidMessageTwice() throws Exception { + MockEndpoint mock = getMockEndpoint("mock:valid"); + mock.expectedMessageCount(2); + + String xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>" + + "<user xmlns=\"http://foo.com/bar\">" + + " <id>1</id>" + + " <username>davsclaus</username>" + + "</user>"; + + template.sendBody("direct:start", xml); + template.sendBody("direct:start", xml); + + assertMockEndpointsSatisfied(); + } + public void testInvalidMessage() throws Exception { MockEndpoint mock = getMockEndpoint("mock:invalid"); mock.expectedMessageCount(1); Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedEndpoint.java?rev=924670&r1=924669&r2=924670&view=diff ============================================================================== --- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedEndpoint.java (original) +++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedEndpoint.java Thu Mar 18 08:48:19 2010 @@ -106,7 +106,7 @@ public abstract class ResourceBasedEndpo } /** - * Sets wether to use resource content cache or not - default is <tt>false</tt>. + * Sets whether to use resource content cache or not - default is <tt>false</tt>. * * @see #getResourceAsInputStream() */