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/22 09:41:12 UTC

svn commit: r521152 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/builder/ camel-core/src/test/java/org/apache/camel/builder/ camel-spring/src/main/java/org/apache/camel/spring/ camel-spring/src/main/resources/org/apache/camel/s...

Author: chirino
Date: Thu Mar 22 01:41:08 2007
New Revision: 521152

URL: http://svn.apache.org/viewvc?view=rev&rev=521152
Log:
More enhancements to the CamelBeanDefinitionParser.
 - It can now continue building off child elements 
 - It can now automatically add an builder action as a result of reaching the end of an element
 - interceptor configuration is now working
 

Added:
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/MyInterceptorProcessor.java
    activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalActionException.java
      - copied, changed from r521138, activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalRouteException.java
Removed:
    activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalRouteException.java
Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Fluent.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/FromBuilder.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/InterceptorBuilder.java
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
    activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/BuilderAction.java
    activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java
    activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/MethodInfo.java
    activemq/camel/trunk/camel-spring/src/main/resources/org/apache/camel/spring/camel-1.0.xsd
    activemq/camel/trunk/camel-spring/src/test/java/org/apache/camel/spring/SpringRouteBuilderTest.java
    activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/examples.xml
    activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/spring_route_builder_test.xml

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Fluent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Fluent.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Fluent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Fluent.java Thu Mar 22 01:41:08 2007
@@ -27,4 +27,23 @@
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
 public @interface Fluent {
+	
+	/**
+	 * Used to change the default element name of the action.
+	 * @return
+	 */
+	String value() default "";
+	
+	/** 
+	 * Should nested elements be evaluated against the current builder.
+	 * @return
+	 */
+	boolean nestedActions() default false;
+
+	/** 
+	 * Should this method be called at the end of the evaluating the 
+	 * element.
+	 * @return
+	 */
+	boolean callOnElementEnd() default false;
 }

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/FromBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/FromBuilder.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/FromBuilder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/FromBuilder.java Thu Mar 22 01:41:08 2007
@@ -207,7 +207,7 @@
         return this;
     }
     
-    @Fluent
+    @Fluent(nestedActions=true)
     public InterceptorBuilder<E> intercept() {
         InterceptorBuilder<E> answer = new InterceptorBuilder<E>(this);
         addProcessBuilder(answer);

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/InterceptorBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/InterceptorBuilder.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/InterceptorBuilder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/InterceptorBuilder.java Thu Mar 22 01:41:08 2007
@@ -36,12 +36,14 @@
 	public InterceptorBuilder(FromBuilder<E> parent) {
         this.parent = parent;
 	}
-
-	public InterceptorBuilder<E> add(InterceptorProcessor<E> intercept) {
-		intercepts.add(intercept);
+	
+	@Fluent("interceptor")
+	public InterceptorBuilder<E> add(@FluentArg("ref") InterceptorProcessor<E> interceptor) {
+		intercepts.add(interceptor);
 		return this;
 	}
 	
+	@Fluent(callOnElementEnd=true)
     public FromBuilder<E> target() {
         this.target = new FromBuilder<E>(parent);
         return target;

Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/MyInterceptorProcessor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/MyInterceptorProcessor.java?view=auto&rev=521152
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/MyInterceptorProcessor.java (added)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/MyInterceptorProcessor.java Thu Mar 22 01:41:08 2007
@@ -0,0 +1,15 @@
+/**
+ * 
+ */
+package org.apache.camel.builder;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.processor.InterceptorProcessor;
+
+public class MyInterceptorProcessor extends InterceptorProcessor<Exchange> {
+	public void onExchange(Exchange exchange) {
+		System.out.println("START of onExchange: "+exchange);
+		next.onExchange(exchange);
+		System.out.println("END of onExchange: "+exchange);
+	}
+}
\ No newline at end of file

Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java Thu Mar 22 01:41:08 2007
@@ -16,25 +16,23 @@
  */
 package org.apache.camel.builder;
 
-import junit.framework.TestCase;
-import org.apache.camel.builder.RouteBuilder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.TestSupport;
 import org.apache.camel.processor.ChoiceProcessor;
-import org.apache.camel.processor.SendProcessor;
+import org.apache.camel.processor.DeadLetterChannel;
 import org.apache.camel.processor.FilterProcessor;
 import org.apache.camel.processor.InterceptorProcessor;
+import org.apache.camel.processor.MulticastProcessor;
 import org.apache.camel.processor.RecipientList;
+import org.apache.camel.processor.SendProcessor;
 import org.apache.camel.processor.Splitter;
-import org.apache.camel.processor.DeadLetterChannel;
-import org.apache.camel.processor.MulticastProcessor;
-import org.apache.camel.TestSupport;
-import org.apache.camel.Processor;
-import org.apache.camel.Exchange;
-import org.apache.camel.Endpoint;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 /**
  * @version $Revision$
@@ -42,8 +40,8 @@
 public class RouteBuilderTest extends TestSupport {
 	
 	protected Processor<Exchange> myProcessor = new MyProcessor();    	
-	private InterceptorProcessor<Exchange> interceptor1;
-	private InterceptorProcessor<Exchange> interceptor2;
+	protected InterceptorProcessor<Exchange> interceptor1;
+	protected InterceptorProcessor<Exchange> interceptor2;
     
 	protected RouteBuilder<Exchange> buildSimpleRoute() {
 		// START SNIPPET: e1
@@ -246,13 +244,7 @@
         };
 
         // START SNIPPET: e7        
-        interceptor2 = new InterceptorProcessor<Exchange>() {
-        	public void onExchange(Exchange exchange) {
-        		System.out.println("START of onExchange: "+exchange);
-        		next.onExchange(exchange);
-        		System.out.println("END of onExchange: "+exchange);
-        	}
-        };
+        interceptor2 = new MyInterceptorProcessor();
 
         RouteBuilder<Exchange> builder = new RouteBuilder<Exchange>() {
             public void configure() {

Modified: activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/BuilderAction.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/BuilderAction.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/BuilderAction.java (original)
+++ activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/BuilderAction.java Thu Mar 22 01:41:08 2007
@@ -54,4 +54,8 @@
 	public String getName() {
 		return methodInfo.getName();
 	}
+
+	public MethodInfo getMethodInfo() {
+		return methodInfo;
+	}
 }

Modified: activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java (original)
+++ activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanDefinitionParser.java Thu Mar 22 01:41:08 2007
@@ -3,7 +3,6 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -39,7 +38,12 @@
 		if (childElements != null && childElements.size() > 0) {
 			for (int i = 0; i < childElements.size(); ++i) {
 				Element routeElement = (Element) childElements.get(i);
-				BuilderStatement statement = parseRouteElement(routeElement);
+
+				ArrayList<BuilderAction> actions = new ArrayList<BuilderAction>();
+				Class type = parseBuilderElement(routeElement, RouteBuilder.class, actions);
+				BuilderStatement statement = new BuilderStatement();
+				statement.setReturnType(type);
+				statement.setActions(actions);
 				routes.add(statement);
 			}
 		}
@@ -50,30 +54,56 @@
 
 	/**
 	 * Use reflection to figure out what is the valid next element.
-	 * 
+	 * @param builder TODO
 	 * @param routeElement
+	 * 
 	 * @return
 	 */
-	private BuilderStatement parseRouteElement(Element element) {
-		BuilderStatement rc = new BuilderStatement();
-		Class currentBuilder = RouteBuilder.class;
-
+	private Class parseBuilderElement(Element element, Class<RouteBuilder> builder, ArrayList<BuilderAction> actions) {
+		Class currentBuilder = builder;
 		NodeList childElements = element.getChildNodes();
-		ArrayList<BuilderAction> actions = new ArrayList<BuilderAction>(childElements.getLength());
-		if (childElements != null && childElements.getLength() > 0) {
-			Element previousElement = null;
-			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, previousElement);
-					previousElement = (Element) node;
+		Element previousElement = null;
+		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, previousElement);
+				previousElement = (Element) node;
+				BuilderAction action = actions.get(actions.size()-1);
+				
+				if( action.getMethodInfo().methodAnnotation.nestedActions() ) {
+					currentBuilder = parseBuilderElement((Element) node, currentBuilder, actions);
+				} else {
+					// Make sure the there are no child elements.
+					NodeList nl = node.getChildNodes();
+					for (int j = 0; j < nl.getLength(); ++j) {
+						if( nl.item(j).getNodeType() == Node.ELEMENT_NODE ) {
+							throw new IllegalArgumentException("The element "+node.getLocalName()+" should not have any child elements.");
+						}
+					}
 				}
+				
 			}
 		}
-
-		rc.setReturnType(currentBuilder);
-		rc.setActions(actions);
-		return rc;
+		
+		// Add the builder actions that are annotated with @Fluent(callOnElementEnd=true) 
+		if( currentBuilder!=null ) {
+			Method[] methods = currentBuilder.getMethods();
+			for (int i = 0; i < methods.length; i++) {
+				Method method = methods[i];
+				Fluent annotation = method.getAnnotation(Fluent.class);
+				if( annotation!=null && annotation.callOnElementEnd() ) {
+					
+					if( method.getParameterTypes().length > 0 ) {
+						throw new RuntimeException("Only methods with no parameters can annotated with @Fluent(callOnElementEnd=true): "+method); 
+					}
+					
+					MethodInfo methodInfo = new MethodInfo(method, annotation, new LinkedHashMap<String, Class>(), new LinkedHashMap<String, FluentArg>());
+					actions.add(new BuilderAction(methodInfo, new HashMap<String, Object>()));
+					currentBuilder = method.getReturnType();
+				}
+			}
+		}
+		return currentBuilder;
 	}
 
 	private Class parseAction(Class currentBuilder, ArrayList<BuilderAction> actions, Element element, Element previousElement) {
@@ -83,7 +113,7 @@
 		// Get a list of method names that match the action.
 		ArrayList<MethodInfo> methods = findFluentMethodsWithName(currentBuilder, element.getLocalName());
 		if (methods.isEmpty()) {
-			throw new IllegalRouteException(actionName, previousElement == null ? null : previousElement.getLocalName());
+			throw new IllegalActionException(actionName, previousElement == null ? null : previousElement.getLocalName());
 		}
 
 		// Pick the best method out of the list. Sort by argument length. Pick
@@ -103,7 +133,7 @@
 		MethodInfo match = null;
 		match = findMethodMatch(methods, attributeArguments.keySet(), elementArguments.keySet());
 		if (match == null)
-			throw new IllegalRouteException(actionName, previousElement == null ? null : previousElement.getLocalName());
+			throw new IllegalActionException(actionName, previousElement == null ? null : previousElement.getLocalName());
 
 		// Move element arguments into the attributeArguments map if needed. 
 		Set<String> parameterNames = new HashSet<String>(match.parameters.keySet());
@@ -137,10 +167,16 @@
 				return new RuntimeBeanReference(ref);
 			}
 			
-			BuilderStatement statement = parseRouteElement(element);
+			ArrayList<BuilderAction> actions = new ArrayList<BuilderAction>();
+			Class type = parseBuilderElement(element, RouteBuilder.class, actions);
+			BuilderStatement statement = new BuilderStatement();
+			statement.setReturnType(type);
+			statement.setActions(actions);
+			
 			if( !clazz.isAssignableFrom( statement.getReturnType() ) ) {
 				throw new IllegalStateException("Builder does not produce object of expected type: "+clazz.getName());
 			}
+			
 			return statement;
 		}
 	}
@@ -152,7 +188,7 @@
 			// attributes
 			boolean miss = false;
 			for (String key : attributeNames) {
-				FluentArg arg = method.annotations.get(key);
+				FluentArg arg = method.parameterAnnotations.get(key);
 				if (arg == null || !arg.attribute()) {
 					miss = true;
 					break;
@@ -176,7 +212,7 @@
 				}
 				// We only want to use the first child elements as arguments,
 				// once we don't match, we can stop looking.
-				FluentArg arg = method.annotations.get(key);
+				FluentArg arg = method.parameterAnnotations.get(key);
 				if (arg == null || !arg.element()) {
 					break;
 				}
@@ -261,13 +297,15 @@
 		Method[] methods = clazz.getMethods();
 		for (int i = 0; i < methods.length; i++) {
 			Method method = methods[i];
-			if (name.equals(method.getName())) {
-
-				if (!method.isAnnotationPresent(Fluent.class)) {
-					List<Annotation> l = Arrays.asList(method.getAnnotations());
-					System.out.println(l);
-					continue;
-				}
+			if (!method.isAnnotationPresent(Fluent.class)) {
+				continue;
+			}
+			
+			// Use the fluent supplied name for the action, or the method name if not set.
+			Fluent fluentAnnotation = method.getAnnotation(Fluent.class);
+			if ( StringUtils.hasText(fluentAnnotation.value()) ? 
+					name.equals(fluentAnnotation.value()) :
+					name.equals(method.getName()) ) {
 
 				LinkedHashMap<String, Class> map = new LinkedHashMap<String, Class>();
 				LinkedHashMap<String, FluentArg> amap = new LinkedHashMap<String, FluentArg>();
@@ -285,7 +323,7 @@
 
 				// If all the parameters were annotated...
 				if (parameters.length == map.size()) {
-					rc.add(new MethodInfo(method, map, amap));
+					rc.add(new MethodInfo(method, fluentAnnotation, map, amap));
 				}
 			}
 		}

Copied: activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalActionException.java (from r521138, activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalRouteException.java)
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalActionException.java?view=diff&rev=521152&p1=activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalRouteException.java&r1=521138&p2=activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalActionException.java&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalRouteException.java (original)
+++ activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/IllegalActionException.java Thu Mar 22 01:41:08 2007
@@ -1,12 +1,12 @@
 package org.apache.camel.spring;
 
-public class IllegalRouteException extends IllegalArgumentException {
+public class IllegalActionException extends IllegalArgumentException {
 
 	private static final long serialVersionUID = -2166507687211986107L;
 	private final String actionName;
 	private final String previousAction;
 
-	public IllegalRouteException(String actionName, String previousAction) {
+	public IllegalActionException(String actionName, String previousAction) {
 		super("Illegal route.");
 		this.actionName = actionName;
 		this.previousAction = previousAction;

Modified: activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/MethodInfo.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/MethodInfo.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/MethodInfo.java (original)
+++ activemq/camel/trunk/camel-spring/src/main/java/org/apache/camel/spring/MethodInfo.java Thu Mar 22 01:41:08 2007
@@ -6,17 +6,21 @@
 import java.lang.reflect.Method;
 import java.util.LinkedHashMap;
 
+import org.apache.camel.builder.Fluent;
 import org.apache.camel.builder.FluentArg;
 
 public class MethodInfo {
+	
 	final Method method;
+	final Fluent methodAnnotation;
 	final LinkedHashMap<String, Class> parameters;
-	final LinkedHashMap<String, FluentArg> annotations;
+	final LinkedHashMap<String, FluentArg> parameterAnnotations;
 	
-	public MethodInfo(Method method, LinkedHashMap<String, Class> parameters, LinkedHashMap<String, FluentArg> annotations) {
+	public MethodInfo(Method method, Fluent fluentAnnotation, LinkedHashMap<String, Class> parameters, LinkedHashMap<String, FluentArg> annotations) {
 		this.method=method;
+		this.methodAnnotation = fluentAnnotation;
 		this.parameters=parameters;
-		this.annotations = annotations;
+		this.parameterAnnotations = annotations;
 	}
 
 	public String getName() {

Modified: activemq/camel/trunk/camel-spring/src/main/resources/org/apache/camel/spring/camel-1.0.xsd
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/main/resources/org/apache/camel/spring/camel-1.0.xsd?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/main/resources/org/apache/camel/spring/camel-1.0.xsd (original)
+++ activemq/camel/trunk/camel-spring/src/main/resources/org/apache/camel/spring/camel-1.0.xsd Thu Mar 22 01:41:08 2007
@@ -35,7 +35,6 @@
       </xs:sequence>
     </xs:complexType>
   </xs:element>
-  
   <xs:element name="from">
     <xs:complexType>
       <xs:attribute name="endpoint" type="xs:NMTOKEN"/>
@@ -53,7 +52,7 @@
   </xs:element>
   <xs:element name="interceptor">
     <xs:complexType>
-      <xs:attribute name="interceptor" use="required"/>
+      <xs:attribute name="ref" use="required"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="choice">

Modified: activemq/camel/trunk/camel-spring/src/test/java/org/apache/camel/spring/SpringRouteBuilderTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/test/java/org/apache/camel/spring/SpringRouteBuilderTest.java?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/test/java/org/apache/camel/spring/SpringRouteBuilderTest.java (original)
+++ activemq/camel/trunk/camel-spring/src/test/java/org/apache/camel/spring/SpringRouteBuilderTest.java Thu Mar 22 01:41:08 2007
@@ -20,6 +20,7 @@
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.builder.RouteBuilderTest;
+import org.apache.camel.processor.InterceptorProcessor;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
@@ -69,8 +70,11 @@
 	
 	@Override
 	protected RouteBuilder<Exchange> buildRouteWithInterceptor() {
-		// TODO Auto-generated method stub
-		return super.buildRouteWithInterceptor();
+		interceptor1 = (InterceptorProcessor<Exchange>) ctx.getBean("interceptor1");
+		interceptor2 = (InterceptorProcessor<Exchange>) ctx.getBean("interceptor2");
+		RouteBuilder<Exchange> builder = (RouteBuilder<Exchange>) ctx.getBean("buildRouteWithInterceptor");
+		assertNotNull(builder);
+		return builder;
 	}
 	
 	@Override

Modified: activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/examples.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/examples.xml?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/examples.xml (original)
+++ activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/examples.xml Thu Mar 22 01:41:08 2007
@@ -50,7 +50,7 @@
 
        <route>
          <from uri="queue:a"/>
-         <process ref="#myProcessor"/>
+         <process ref="myProcessor"/>
        </route>
 
        <route>
@@ -73,12 +73,12 @@
        <route>
          <from uri="queue:a"/>
          <intercept>
-         	<interceptor interceptor="#myInterceptor"/>
-         	<interceptor interceptor="#myInterceptor"/>
+             <interceptor ref="interceptor1"/>
+             <interceptor ref="#interceptor2"/>
          </intercept>
          <intercept>
-         	<interceptor interceptor="#myInterceptor"/>
-         	<interceptor interceptor="#myInterceptor"/>
+             <interceptor ref="#interceptor1"/>
+             <interceptor ref="interceptor2"/>
          </intercept>
          <to uri="queue:b"/>
        </route>

Modified: activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/spring_route_builder_test.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/spring_route_builder_test.xml?view=diff&rev=521152&r1=521151&r2=521152
==============================================================================
--- activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/spring_route_builder_test.xml (original)
+++ activemq/camel/trunk/camel-spring/src/test/resources/org/apache/camel/spring/spring_route_builder_test.xml Thu Mar 22 01:41:08 2007
@@ -66,17 +66,17 @@
               .add(interceptor2)
            .target().to("queue:d");
      -->
+    <bean id="interceptor1" class="org.apache.camel.builder.MyInterceptorProcessor"/>
+    <bean id="interceptor2" class="org.apache.camel.builder.MyInterceptorProcessor"/>     
     <routeBuilder id="buildRouteWithInterceptor" xmlns="http://activemq.apache.org/camel/schema/camel-1.0.xsd">
-       <!-- 
        <route>
          <from uri="queue:a"/>
          <intercept>
-             <s:bean id="interceptor1" class="some.InterceptorProcessor"/>
-             <s:bean id="interceptor2" class="some.InterceptorProcessor"/>
+             <interceptor ref="#interceptor1"/>
+             <interceptor ref="#interceptor2"/>
          </intercept>
-         <to uri="queue:b"/>
+         <to uri="queue:d"/>
        </route>
-        -->
     </routeBuilder>
 
     <!--