You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/03/18 09:48:19 UTC
svn commit: r924670 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/processor/validation/
camel-core/src/test/java/org/apache/camel/processor/
components/camel-spring/src/main/java/org/apache/camel/component/
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()
*/