You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2007/03/21 16:31:00 UTC

svn commit: r520915 - in /activemq/camel/trunk/camel-xbean/src: main/java/org/apache/camel/spring/ main/resources/META-INF/ main/resources/META-INF/services/ main/resources/org/ main/resources/org/apache/ main/resources/org/apache/camel/ main/resources...

Author: chirino
Date: Wed Mar 21 08:30:58 2007
New Revision: 520915

URL: http://svn.apache.org/viewvc?view=rev&rev=520915
Log:
Started working on a CamelNamespaceHandler for spring.


Added:
    activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/
    activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java
    activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelNamespaceHandler.java
    activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderAction.java
    activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderFactory.java
    activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderStatement.java
    activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.handlers
    activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.schemas
    activemq/camel/trunk/camel-xbean/src/main/resources/org/
    activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/
    activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/
    activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/spring/
    activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/spring/camel-1.0.xsd
    activemq/camel/trunk/camel-xbean/src/test/ide-resources/
    activemq/camel/trunk/camel-xbean/src/test/ide-resources/log4j.properties
    activemq/camel/trunk/camel-xbean/src/test/java/org/apache/camel/spring/
    activemq/camel/trunk/camel-xbean/src/test/java/org/apache/camel/spring/SpringXMLExtensionTest.java
    activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/spring/
    activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/spring/spring_xml_extension_test.xml
Removed:
    activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/services/
Modified:
    activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/xbean/xbean_route_builder_test.xml

Added: activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java (added)
+++ activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java Wed Mar 21 08:30:58 2007
@@ -0,0 +1,65 @@
+package org.apache.camel.spring;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.util.xml.DomUtils;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class CamelBeanDefinitionParser extends AbstractBeanDefinitionParser {
+
+	protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
+		BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(RouteBuilderFactory.class);
+		
+		List childElements = DomUtils.getChildElementsByTagName(element, "route");
+		ArrayList<RouteBuilderStatement> routes = new ArrayList<RouteBuilderStatement>(childElements.size());
+
+		if (childElements != null && childElements.size() > 0) {
+			for (int i = 0; i < childElements.size(); ++i) {
+				Element routeElement = (Element) childElements.get(i);
+				RouteBuilderStatement def = parseRouteElement(routeElement);
+				routes.add(def);
+			}
+		}
+
+		factory.addPropertyValue("routes", routes);
+		return factory.getBeanDefinition();
+	}
+
+	/** 
+	 * Use reflection to figure out what is the valid next element.
+	 * 
+	 * @param routeElement
+	 * @return
+	 */
+	private RouteBuilderStatement parseRouteElement(Element element) {
+		RouteBuilderStatement rc = new RouteBuilderStatement();
+		Class currentBuilder = RouteBuilder.class;
+		
+		NodeList childElements = element.getChildNodes();
+		ArrayList<RouteBuilderAction> actions = new ArrayList<RouteBuilderAction>(childElements.getLength());
+		if (childElements != null && childElements.getLength() > 0) {
+			for (int i = 0; i < childElements.getLength(); ++i) {
+				Node node = childElements.item(i);
+				if( node.getNodeType() == Node.ELEMENT_NODE ) {
+					currentBuilder = parseAction(currentBuilder, actions, (Element)node);
+				}
+			}
+		}
+		
+		return rc;
+	}
+
+	private Class parseAction(Class currentBuilder, ArrayList<RouteBuilderAction> actions, Element element) {
+		actions.add( new RouteBuilderAction(element.getNodeName()) );
+		return currentBuilder;
+	}
+
+}

Added: activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelNamespaceHandler.java?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelNamespaceHandler.java (added)
+++ activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/CamelNamespaceHandler.java Wed Mar 21 08:30:58 2007
@@ -0,0 +1,11 @@
+package org.apache.camel.spring;
+
+import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
+
+public class CamelNamespaceHandler extends NamespaceHandlerSupport {
+
+	public void init() {
+		 registerBeanDefinitionParser("routeBuilder", new CamelBeanDefinitionParser());    
+	}
+
+}

Added: activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderAction.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderAction.java?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderAction.java (added)
+++ activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderAction.java Wed Mar 21 08:30:58 2007
@@ -0,0 +1,17 @@
+package org.apache.camel.spring;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class RouteBuilderAction {
+
+	private final String name;
+
+	public RouteBuilderAction(String name) {
+		this.name = name;
+	}
+
+	public void create(RouteBuilder builder) {
+		// TODO Auto-generated method stub
+		
+	}
+}

Added: activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderFactory.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderFactory.java?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderFactory.java (added)
+++ activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderFactory.java Wed Mar 21 08:30:58 2007
@@ -0,0 +1,55 @@
+package org.apache.camel.spring;
+
+import java.util.ArrayList;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.beans.factory.FactoryBean;
+
+public class RouteBuilderFactory implements FactoryBean {
+	private ArrayList<RouteBuilderStatement> routes;
+	private boolean singleton;
+
+	class SpringRouteBuilder extends RouteBuilder {
+		private ArrayList<RouteBuilderStatement> routes;
+
+		@Override
+		public void configure() {
+			for (RouteBuilderStatement routeFactory : routes) {
+				routeFactory.create(this);
+			}
+		}
+
+		public ArrayList<RouteBuilderStatement> getRoutes() {
+			return routes;
+		}
+		public void setRoutes(ArrayList<RouteBuilderStatement> routes) {
+			this.routes = routes;
+		}
+	}
+	
+	public Object getObject() throws Exception {
+		SpringRouteBuilder builder = new SpringRouteBuilder();
+		builder.setRoutes(routes);
+		return builder;
+	}
+
+	public Class getObjectType() {
+		return SpringRouteBuilder.class;
+	}
+
+	public boolean isSingleton() {
+		return singleton;
+	}
+	public void setSingleton(boolean singleton) {
+		this.singleton = singleton;
+	}
+
+	public ArrayList<RouteBuilderStatement> getRoutes() {
+		return routes;
+	}
+	public void setRoutes(ArrayList<RouteBuilderStatement> routes) {
+		this.routes = routes;
+	}
+
+
+}

Added: activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderStatement.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderStatement.java?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderStatement.java (added)
+++ activemq/camel/trunk/camel-xbean/src/main/java/org/apache/camel/spring/RouteBuilderStatement.java Wed Mar 21 08:30:58 2007
@@ -0,0 +1,11 @@
+package org.apache.camel.spring;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class RouteBuilderStatement {
+
+	public void create(RouteBuilder builder) {
+		// TODO Auto-generated method stub
+		
+	}
+}

Added: activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.handlers
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.handlers?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.handlers (added)
+++ activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.handlers Wed Mar 21 08:30:58 2007
@@ -0,0 +1 @@
+http\://activemq.apache.org/camel/schema/camel-1.0.xsd=org.apache.camel.spring.CamelNamespaceHandler
\ No newline at end of file

Added: activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.schemas
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.schemas?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.schemas (added)
+++ activemq/camel/trunk/camel-xbean/src/main/resources/META-INF/spring.schemas Wed Mar 21 08:30:58 2007
@@ -0,0 +1 @@
+http\://activemq.apache.org/camel/schema/camel-1.0.xsd=org/apache/camel/spring/camel-1.0.xsd
\ No newline at end of file

Added: activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/spring/camel-1.0.xsd
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/spring/camel-1.0.xsd?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/spring/camel-1.0.xsd (added)
+++ activemq/camel/trunk/camel-xbean/src/main/resources/org/apache/camel/spring/camel-1.0.xsd Wed Mar 21 08:30:58 2007
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema 
+  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+  elementFormDefault="qualified" 
+  attributeFormDefault="unqualified"
+  targetNamespace="http://activemq.apache.org/camel/schema/camel-1.0.xsd" 
+  xmlns:c="http://activemq.apache.org/camel/schema/camel-1.0.xsd"
+  xmlns:s="http://www.springframework.org/schema/beans"
+  >
+ 
+  <xs:import namespace="http://www.springframework.org/schema/beans"/>
+
+  <xs:element name="routeBuilder">
+    <xs:complexType>
+      <xs:complexContent>
+          <xs:extension base="s:identifiedType">
+		      <xs:sequence>
+		        <xs:element maxOccurs="unbounded" ref="c:route"/>
+		      </xs:sequence>
+	      </xs:extension>
+  	  </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="c:from"/>
+        <xs:element minOccurs="0" ref="c:choice"/>
+        <xs:choice minOccurs="0">
+          <xs:element ref="c:filter"/>
+          <xs:element ref="c:intercept"/>
+        </xs:choice>
+        <xs:choice minOccurs="0">
+          <xs:element ref="c:to"/>
+          <xs:element ref="c:processor"/>
+        </xs:choice>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="from">
+    <xs:complexType>
+      <xs:attribute name="uri" use="required" type="xs:NMTOKEN"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="choice">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="c:when"/>
+        <xs:element ref="c:otherwise"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="when">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="c:predicate">
+          <xs:sequence>
+            <xs:element ref="c:to"/>
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="otherwise">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="c:to"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="filter" type="c:predicate"/>
+  <xs:element name="intercept">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="s:bean"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="processor">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="s:bean"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="predicate">
+    <xs:sequence>
+      <xs:element ref="c:predicate"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="predicate">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="c:header"/>
+        <xs:element ref="c:equalTo"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="header">
+    <xs:complexType>
+      <xs:attribute name="name" use="required" type="xs:NCName"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="equalTo">
+    <xs:complexType>
+      <xs:attribute name="value" use="required" type="xs:NCName"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="to">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="c:uri"/>
+      </xs:sequence>
+      <xs:attribute name="uri" type="xs:NMTOKEN"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="uri" type="xs:NMTOKEN"/>
+</xs:schema>

Added: activemq/camel/trunk/camel-xbean/src/test/ide-resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/test/ide-resources/log4j.properties?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/test/ide-resources/log4j.properties (added)
+++ activemq/camel/trunk/camel-xbean/src/test/ide-resources/log4j.properties Wed Mar 21 08:30:58 2007
@@ -0,0 +1,31 @@
+## ------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ------------------------------------------------------------------------
+
+#
+# The logging properties used for eclipse testing, We want to see debug output on the console.
+#
+log4j.rootLogger=INFO, out
+
+#log4j.logger.org.apache.activemq=DEBUG
+log4j.logger.org.apache.camel=DEBUG
+log4j.logger.org.springframework=DEBUG
+
+# CONSOLE appender not used by default
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n

Added: activemq/camel/trunk/camel-xbean/src/test/java/org/apache/camel/spring/SpringXMLExtensionTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/test/java/org/apache/camel/spring/SpringXMLExtensionTest.java?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/test/java/org/apache/camel/spring/SpringXMLExtensionTest.java (added)
+++ activemq/camel/trunk/camel-xbean/src/test/java/org/apache/camel/spring/SpringXMLExtensionTest.java Wed Mar 21 08:30:58 2007
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Revision: 520164 $
+ */
+public class SpringXMLExtensionTest extends TestCase {
+	
+	private ClassPathXmlApplicationContext ctx;
+
+	@Override
+	protected void setUp() throws Exception {
+		ctx = new ClassPathXmlApplicationContext("org/apache/camel/spring/spring_xml_extension_test.xml");
+	}
+
+	@Override
+	protected void tearDown() throws Exception {
+		ctx.close();
+	}
+	
+	public void testSimpleRoute() {
+		RouteBuilder builder = (RouteBuilder) ctx.getBean("testSimpleRoute");
+		assertNotNull(builder);
+	}
+}

Added: activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/spring/spring_xml_extension_test.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/spring/spring_xml_extension_test.xml?view=auto&rev=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/spring/spring_xml_extension_test.xml (added)
+++ activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/spring/spring_xml_extension_test.xml Wed Mar 21 08:30:58 2007
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+   
+    http://www.apache.org/licenses/LICENSE-2.0
+   
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:c="http://activemq.apache.org/camel/schema/camel-1.0.xsd"
+      xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+         http://activemq.apache.org/camel/schema/camel-1.0.xsd http://activemq.apache.org/camel/schema/camel-1.0.xsd">
+
+    <c:routeBuilder id="testSimpleRoute">
+       <c:route>
+         <c:from uri="queue:a"/>
+         <c:to uri="queue:b"/>
+       </c:route>
+       <c:route>
+         <c:from uri="queue:c"/>
+         <c:to uri="queue:d"/>
+       </c:route>
+    </c:routeBuilder>
+
+</beans>
\ No newline at end of file

Modified: activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/xbean/xbean_route_builder_test.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/xbean/xbean_route_builder_test.xml?view=diff&rev=520915&r1=520914&r2=520915
==============================================================================
--- activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/xbean/xbean_route_builder_test.xml (original)
+++ activemq/camel/trunk/camel-xbean/src/test/resources/org/apache/camel/xbean/xbean_route_builder_test.xml Wed Mar 21 08:30:58 2007
@@ -15,14 +15,14 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<beans>
+<s:beans xmlns="http://activemq.apache.org/camel/schema/camel-1.0.xsd" xmlns:s="http://www.springframework.org/schema/beans">
     <!-- Right now this is just ideas of what we wish the xml could look like -->
 
     <!-- 
         from("queue:a").to("queue:b");
         from("queue:c").to("queue:d");
      -->
-    <RouteBuilder id="buildSimpleRoute">
+    <routeBuilder id="buildSimpleRoute" >
        <route>
          <from uri="queue:a"/>
          <to uri="queue:b"/>
@@ -31,25 +31,25 @@
          <from uri="queue:c"/>
          <to uri="queue:d"/>
        </route>
-    </RouteBuilder>
+    </routeBuilder>
     
     <!-- 
         from("queue:a").process(myProcessor);
      -->
-    <RouteBuilder id="buildCustomProcessor">
+    <routeBuilder id="buildCustomProcessor">
        <route>
          <from uri="queue:a"/>
          <processor>
-           <bean id="myProcessor" class="some.Processor"/>
+           <s:bean id="myProcessor" class="some.Processor"/>
          </processor>
        </route>
-    </RouteBuilder>
+    </routeBuilder>
 
 
     <!-- 
         from("queue:a").filter(headerEquals("foo", "bar")).process(myProcessor);
      -->
-    <RouteBuilder id="buildCustomProcessorWithFilter">
+    <routeBuilder id="buildCustomProcessorWithFilter">
        <route>
          <from uri="queue:a"/>
          <filter>
@@ -59,10 +59,10 @@
              </predicate>
          </filter>
          <processor>
-           <bean class="some.Processor"/>
+           <s:bean class="some.Processor"/>
          </processor>
        </route>
-    </RouteBuilder>
+    </routeBuilder>
 
     <!-- 
         from("queue:a")
@@ -71,16 +71,16 @@
               .add(interceptor2)
            .target().to("queue:d");
      -->
-    <RouteBuilder id="buildRouteWithInterceptor">
+    <routeBuilder id="buildRouteWithInterceptor">
        <route>
          <from uri="queue:a"/>
          <intercept>
-             <bean id="interceptor1" class="some.InterceptorProcessor"/>
-             <bean id="interceptor2" class="some.InterceptorProcessor"/>
+             <s:bean id="interceptor1" class="some.InterceptorProcessor"/>
+             <s:bean id="interceptor2" class="some.InterceptorProcessor"/>
          </intercept>
          <to uri="queue:b"/>
        </route>
-    </RouteBuilder>
+    </routeBuilder>
 
     <!-- 
         from("queue:a").choice()
@@ -117,7 +117,7 @@
     <!-- 
         from("queue:a").filter(headerEquals("foo", "bar")).to("queue:b");
      -->
-    <RouteBuilder id="buildSimpleRouteWithHeaderPredicate">
+    <routeBuilder id="buildSimpleRouteWithHeaderPredicate">
        <route>
          <from uri="queue:a"/>
          <filter>
@@ -128,12 +128,12 @@
          </filter>
          <to uri="queue:b"/>
        </route>
-    </RouteBuilder>
+    </routeBuilder>
 
     <!-- 
         from("queue:a").to("queue:tap", "queue:b");
      -->
-    <RouteBuilder id="buildWireTap">
+    <routeBuilder id="buildWireTap">
        <route>
          <from uri="queue:a"/>
          <to>
@@ -141,7 +141,7 @@
             <uri>queue:a</uri>
          </to>
        </route>
-    </RouteBuilder>
+    </routeBuilder>
 
-</beans>
+</s:beans>
 <!-- END SNIPPET: example -->