CAMEL-7744: xslt allow to configure custom error listener.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fd97b75f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fd97b75f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fd97b75f Branch: refs/heads/master Commit: fd97b75f423e29f10b92fed6bcabc8ce2c43a7f6 Parents: 5e15108 Author: Claus Ibsen <davscl...@apache.org> Authored: Mon Aug 25 14:42:25 2014 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Mon Aug 25 14:56:35 2014 +0200 ---------------------------------------------------------------------- .../apache/camel/builder/xml/XsltBuilder.java | 20 +++++++++++++++++--- .../camel/component/xslt/XsltComponent.java | 8 +++++++- 2 files changed, 24 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fd97b75f/camel-core/src/main/java/org/apache/camel/builder/xml/XsltBuilder.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/builder/xml/XsltBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/xml/XsltBuilder.java index 908bd8f..944e214 100644 --- a/camel-core/src/main/java/org/apache/camel/builder/xml/XsltBuilder.java +++ b/camel-core/src/main/java/org/apache/camel/builder/xml/XsltBuilder.java @@ -252,8 +252,14 @@ public class XsltBuilder implements Processor { setAllowStAX(true); return this; } - - + + /** + * Used for caching {@link Transformer}s. + * <p/> + * By default no caching is in use. + * + * @param numberToCache the maximum number of transformers to cache + */ public XsltBuilder transformerCacheSize(int numberToCache) { if (numberToCache > 0) { transformers = new ArrayBlockingQueue<Transformer>(numberToCache); @@ -263,7 +269,15 @@ public class XsltBuilder implements Processor { return this; } - // Properties + /** + * Uses a custom {@link javax.xml.transform.ErrorListener}. + */ + public XsltBuilder errorListener(ErrorListener errorListener) { + setErrorListener(errorListener); + return this; + } + + // Properties // ------------------------------------------------------------------------- public Map<String, Object> getParameters() { http://git-wip-us.apache.org/repos/asf/camel/blob/fd97b75f/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java index 5c7adde..095cdb2 100644 --- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java +++ b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java @@ -17,6 +17,7 @@ package org.apache.camel.component.xslt; import java.util.Map; +import javax.xml.transform.ErrorListener; import javax.xml.transform.TransformerFactory; import javax.xml.transform.URIResolver; @@ -129,9 +130,14 @@ public class XsltComponent extends UriEndpointComponent { String output = getAndRemoveParameter(parameters, "output", String.class); configureOutput(xslt, output); - Integer cs = getAndRemoveParameter(parameters, "transformerCacheSize", Integer.class, Integer.valueOf(0)); + Integer cs = getAndRemoveParameter(parameters, "transformerCacheSize", Integer.class, 0); xslt.transformerCacheSize(cs); + ErrorListener errorListener = getAndRemoveParameter(parameters, "errorListener", ErrorListener.class); + if (errorListener != null) { + xslt.errorListener(errorListener); + } + // default to use the cache option from the component if the endpoint did not have the contentCache parameter boolean cache = getAndRemoveParameter(parameters, "contentCache", Boolean.class, contentCache);