Author: davsclaus
Date: Thu Oct 29 11:58:42 2009
New Revision: 830906

URL: http://svn.apache.org/viewvc?rev=830906&view=rev
Log:
CAMEL-2109: Added routeId to specific set a route id as it knows how to 
traverse up the parents to find the route definition.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RouteIdTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=830906&r1=830905&r2=830906&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
 Thu Oct 29 11:58:42 2009
@@ -640,6 +640,26 @@
     }
 
     /**
+     * Set the route id for this route
+     *
+     * @param id  the route id
+     * @return the builder
+     */
+    @SuppressWarnings("unchecked")
+    public Type routeId(String id) {
+        ProcessorDefinition def = this;
+        // drill to the top
+        while (def.getParent() != null) {
+            def = def.getParent();
+        }
+        if (def instanceof RouteDefinition) {
+            RouteDefinition route = (RouteDefinition) def;
+            route.setId(id);
+        }
+        return (Type) this;
+    }
+
+    /**
      * <a href="http://camel.apache.org/multicast.html";>Multicast EIP:</a>
      * Multicasts messages to all its child outputs; so that each processor and
      * destination gets a copy of the original message to avoid the processors

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java?rev=830906&r1=830905&r2=830906&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
 Thu Oct 29 11:58:42 2009
@@ -207,6 +207,17 @@
     }
 
     /**
+     * Set the route id for this route
+     *
+     * @param id  the route id
+     * @return the builder
+     */
+    public RouteDefinition routeId(String id) {
+        setId(id);
+        return this;
+    }
+
+    /**
      * Disable stream caching for this route.
      */
     public RouteDefinition noStreamCaching() {

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RouteIdTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RouteIdTest.java?rev=830906&r1=830905&r2=830906&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RouteIdTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RouteIdTest.java
 Thu Oct 29 11:58:42 2009
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.processor;
 
+import java.io.IOException;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 
@@ -53,8 +55,11 @@
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").id("myCoolRoute")
-                    
.onException(Exception.class).handled(true).to("mock:error").end()
+                
onException(Exception.class).handled(true).to("mock:error").end();
+
+                from("direct:start")
+                    
.onException(IOException.class).maximumRedeliveries(5).end()
+                    .routeId("myCoolRoute")
                     .choice()
                         .when(body().contains("Kabom")).throwException(new 
IllegalArgumentException("Damn"))
                     .otherwise()


Reply via email to