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 2009/06/24 11:31:55 UTC
svn commit: r787958 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/processor/validation/
components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/
Author: davsclaus
Date: Wed Jun 24 09:31:54 2009
New Revision: 787958
URL: http://svn.apache.org/viewvc?rev=787958&view=rev
Log:
CAMEL-1753: Added useDom option to validator component. Fixed unit test of camel-msv as it requires to use Dom.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/DefaultValidationErrorHandler.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatorErrorHandler.java
camel/trunk/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/DefaultValidationErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/DefaultValidationErrorHandler.java?rev=787958&r1=787957&r2=787958&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/DefaultValidationErrorHandler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/DefaultValidationErrorHandler.java Wed Jun 24 09:31:54 2009
@@ -18,8 +18,7 @@
import java.util.ArrayList;
import java.util.List;
-
-import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.Result;
import javax.xml.validation.Schema;
import org.xml.sax.SAXException;
@@ -72,7 +71,7 @@
return errors.isEmpty() && fatalErrors.isEmpty();
}
- public void handleErrors(Exchange exchange, Schema schema, SAXResult result) throws ValidationException {
+ public void handleErrors(Exchange exchange, Schema schema, Result result) throws ValidationException {
if (!isValid()) {
throw new SchemaValidationException(exchange, schema, fatalErrors, errors, warnings);
}
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=787958&r1=787957&r2=787958&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 Wed Jun 24 09:31:54 2009
@@ -21,7 +21,10 @@
import java.net.URL;
import javax.xml.XMLConstants;
+import javax.xml.transform.Result;
import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.sax.SAXSource;
import javax.xml.validation.Schema;
@@ -48,12 +51,21 @@
private URL schemaUrl;
private File schemaFile;
private ValidatorErrorHandler errorHandler = new DefaultValidationErrorHandler();
+ private boolean useDom;
public void process(Exchange exchange) throws Exception {
Schema schema = getSchema();
Validator validator = schema.newValidator();
- Source source = exchange.getIn().getBody(SAXSource.class);
+ Source source;
+ Result result;
+ if (useDom) {
+ source = exchange.getIn().getBody(DOMSource.class);
+ result = new DOMResult();
+ } else {
+ source = exchange.getIn().getBody(SAXSource.class);
+ result = new SAXResult();
+ }
if (source == null) {
throw new NoXmlBodyValidationException(exchange);
}
@@ -63,7 +75,6 @@
ValidatorErrorHandler handler = errorHandler.getClass().newInstance();
validator.setErrorHandler(handler);
- SAXResult result = new SAXResult();
validator.validate(source, result);
handler.handleErrors(exchange, schema, result);
@@ -142,6 +153,20 @@
this.errorHandler = errorHandler;
}
+ public boolean isUseDom() {
+ return useDom;
+ }
+
+ /**
+ * Sets whether DOMSource and DOMResult should be used, or
+ * SaxSource and SaxResult.
+ *
+ * @param useDom true to use DOM otherwise Sax is used
+ */
+ public void setUseDom(boolean useDom) {
+ this.useDom = useDom;
+ }
+
// Implementation methods
// -----------------------------------------------------------------------
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatorErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatorErrorHandler.java?rev=787958&r1=787957&r2=787958&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatorErrorHandler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatorErrorHandler.java Wed Jun 24 09:31:54 2009
@@ -16,7 +16,7 @@
*/
package org.apache.camel.processor.validation;
-import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.Result;
import javax.xml.validation.Schema;
import org.xml.sax.ErrorHandler;
@@ -44,5 +44,5 @@
* @param result the result
* @throws ValidationException is thrown in case of validatation errors
*/
- void handleErrors(Exchange exchange, Schema schema, SAXResult result) throws ValidationException;
+ void handleErrors(Exchange exchange, Schema schema, Result result) throws ValidationException;
}
Modified: camel/trunk/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java?rev=787958&r1=787957&r2=787958&view=diff
==============================================================================
--- camel/trunk/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java (original)
+++ camel/trunk/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java Wed Jun 24 09:31:54 2009
@@ -49,6 +49,8 @@
protected void configureValidator(SpringValidator validator, String uri, String remaining, Map parameters) throws Exception {
validator.setSchemaLanguage(XMLConstants.RELAXNG_NS_URI);
validator.setSchemaFactory(getSchemaFactory());
+ // must use Dom for Msv to work
+ validator.setUseDom(true);
super.configureValidator(validator, uri, remaining, parameters);
}
}