You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/11/29 11:59:52 UTC
svn commit: r599376 - in /activemq/camel/trunk:
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/util/
components/camel-spring/src/main/java/org/apache/camel/component/xslt/
Author: jstrachan
Date: Thu Nov 29 02:59:52 2007
New Revision: 599376
URL: http://svn.apache.org/viewvc?rev=599376&view=rev
Log:
made it easier to configure the XSLT component by specifying the XmlConverter; or by referring to a named converter in the registry - for more background see http://www.nabble.com/Camel%2BSM-question-tf4874073s12049.html#a14022549
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=599376&r1=599375&r2=599376&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Thu Nov 29 02:59:52 2007
@@ -27,6 +27,7 @@
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.spi.Injector;
+import org.apache.camel.spi.Registry;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.URISupport;
@@ -180,5 +181,38 @@
public <T> T newInstance(Class<T> beanType) {
return getCamelContext().getInjector().newInstance(beanType);
}
+
+ /**
+ * Look up the given named bean in the {@link Registry} on the
+ * {@link CamelContext}
+ */
+ public Object lookup(String name) {
+ return getCamelContext().getRegistry().lookup(name);
+ }
+
+ /**
+ * Look up the given named bean of the given type in the {@link Registry} on the
+ * {@link CamelContext}
+ */
+ public <T> T lookup(String name, Class<T> beanType) {
+ return getCamelContext().getRegistry().lookup(name, beanType);
+ }
+
+ /**
+ * Look up the given named bean in the {@link Registry} on the
+ * {@link CamelContext} or throws
+ */
+ public Object mandatoryLookup(String name) {
+ return CamelContextHelper.mandatoryLookup(getCamelContext(), name);
+ }
+
+ /**
+ * Look up the given named bean of the given type in the {@link Registry} on the
+ * {@link CamelContext}
+ */
+ public <T> T mandatoryLookup(String name, Class<T> beanType) {
+ return CamelContextHelper.mandatoryLookup(getCamelContext(), name, beanType);
+ }
+
}
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java?rev=599376&r1=599375&r2=599376&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java Thu Nov 29 02:59:52 2007
@@ -23,6 +23,7 @@
import org.apache.camel.NoSuchEndpointException;
import org.apache.camel.spi.Injector;
import org.apache.camel.spi.Language;
+import org.apache.camel.spi.Registry;
import static org.apache.camel.util.ObjectHelper.notNull;
/**
@@ -85,6 +86,42 @@
}
/**
+ * Look up the given named bean in the {@link Registry} on the
+ * {@link CamelContext}
+ */
+ public static Object lookup(CamelContext context, String name) {
+ return context.getRegistry().lookup(name);
+ }
+
+ /**
+ * Look up the given named bean of the given type in the {@link Registry} on the
+ * {@link CamelContext}
+ */
+ public static <T> T lookup(CamelContext context, String name, Class<T> beanType) {
+ return context.getRegistry().lookup(name, beanType);
+ }
+
+ /**
+ * Look up the given named bean in the {@link Registry} on the
+ * {@link CamelContext} or throws
+ */
+ public static Object mandatoryLookup(CamelContext context, String name) {
+ Object answer = lookup(context, name);
+ notNull(answer, "registry entry called " + name);
+ return answer;
+ }
+
+ /**
+ * Look up the given named bean of the given type in the {@link Registry} on the
+ * {@link CamelContext}
+ */
+ public static <T> T mandatoryLookup(CamelContext context, String name, Class<T> beanType) {
+ T answer = lookup(context, name, beanType);
+ notNull(answer, "registry entry called " + name + " of type " + beanType.getName());
+ return answer;
+ }
+
+ /**
* Resolves the given language name into a {@link Language} or throws an exception if it could not be converted
*
* @param camelContext
@@ -116,5 +153,4 @@
}
return expression;
}
-
}
Modified: activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java?rev=599376&r1=599375&r2=599376&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java (original)
+++ activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java Thu Nov 29 02:59:52 2007
@@ -23,6 +23,7 @@
import org.apache.camel.Exchange;
import org.apache.camel.builder.xml.XsltBuilder;
import org.apache.camel.component.ResourceBasedComponent;
+import org.apache.camel.converter.jaxp.XmlConverter;
import org.apache.camel.impl.ProcessorEndpoint;
import org.springframework.core.io.Resource;
@@ -33,6 +34,15 @@
* @version $Revision: 1.1 $
*/
public class XsltComponent extends ResourceBasedComponent {
+ private XmlConverter xmlConverter;
+
+ public XmlConverter getXmlConverter() {
+ return xmlConverter;
+ }
+
+ public void setXmlConverter(XmlConverter xmlConverter) {
+ this.xmlConverter = xmlConverter;
+ }
protected Endpoint<Exchange> createEndpoint(String uri, String remaining, Map parameters) throws Exception {
Resource resource = resolveMandatoryResource(remaining);
@@ -40,6 +50,20 @@
LOG.debug(this + " using schema resource: " + resource);
}
XsltBuilder xslt = newInstance(XsltBuilder.class);
+
+ // lets allow the converter to be configured
+ XmlConverter converter = null;
+ String converterName = (String) parameters.remove("converter");
+ if (converterName != null) {
+ converter = mandatoryLookup(converterName, XmlConverter.class);
+ }
+ if (converter == null) {
+ converter = getXmlConverter();
+ }
+ if (converter != null) {
+ xslt.setConverter(converter);
+ }
+
xslt.setTransformerInputStream(resource.getInputStream());
configureXslt(xslt, uri, remaining, parameters);
return new ProcessorEndpoint(uri, this, xslt);