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);