You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2009/09/04 18:48:28 UTC

svn commit: r811485 - in /camel/trunk/components/camel-web/src: main/java/org/apache/camel/web/resources/ main/java/org/apache/camel/web/util/ main/webapp/WEB-INF/ main/webapp/org/apache/camel/web/resources/RoutesResource/ test/java/org/apache/camel/we...

Author: janstey
Date: Fri Sep  4 16:48:20 2009
New Revision: 811485

URL: http://svn.apache.org/viewvc?rev=811485&view=rev
Log:
CAMEL-1392 - Add ability to create routes via the web console and fixed a few other unit test failures.

Thanks to Xueqiang Mi for this.



Added:
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ThrowExceptionDefinitionRenderer.java
Modified:
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RoutesResource.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ErrorHandlerRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ExpressionRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/GroovyRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OnExceptionDefinitionRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OutputDefinitionRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/PredicateRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java
    camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/SendDefinitionRenderer.java
    camel/trunk/components/camel-web/src/main/webapp/WEB-INF/decorators.xml
    camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/create.jsp
    camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/index.jsp
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AOPDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AggregateDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptFromDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptSendToEndpointDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PoolEnrichDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PredicateRendererTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ProcessDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetExchangePatternDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetHeaderDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SortDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SplitDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ThrottleDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/TracingDSLTest.java
    camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/WireTapDSLTest.java

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java Fri Sep  4 16:48:20 2009
@@ -27,6 +27,7 @@
 import java.util.List;
 
 import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -40,12 +41,10 @@
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 
-import com.sun.jersey.api.representation.Form;
 import com.sun.jersey.api.view.Viewable;
 
 import groovy.lang.GroovyClassLoader;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.model.RouteDefinition;
@@ -65,11 +64,11 @@
  * @version $Revision$
  */
 public class RouteResource extends CamelChildResourceSupport {
+    public static final String LANGUAGE_XML = "Xml";
+    public static final String LANGUAGE_GROOVY = "Groovy";
+    public static final String LANGUAGE_RUBY = "Ruby";
+    public static final String LANGUAGE_SCALA = "Scala";
     private static final transient Log LOG = LogFactory.getLog(RouteResource.class);
-    private static final String LANGUAGE_XML = "Xml";
-    private static final String LANGUAGE_GROOVY = "Groovy";
-    private static final String LANGUAGE_RUBY = "Ruby";
-    private static final String LANGUAGE_SCALA = "Scala";
 
     private RouteDefinition route;
     private String error = "";
@@ -175,21 +174,21 @@
     /**
      * Updates a route definition using form encoded data from a web form
      * 
-     * @param formData is the form data POSTed typically from a HTML form with
-     *            the <code>route</code> field used to encode the XML text of
-     *            the new route definition
+     * @param language is the edited language used on this route
+     * @param body is the route definition content POSTed typically from a HTML
+     *            form with the <code>route</code> field
+     * @param edited is a flag to show whether the route have been edited
      */
     @POST
     @Consumes("application/x-www-form-urlencoded")
-    public Response postRouteForm(@Context UriInfo uriInfo, Form formData) throws URISyntaxException {
-        // TODO replace the Form class with an injected bean?
-        String language = formData.getFirst("language", String.class);
-        String body = formData.getFirst("route", String.class);
-        String edited = formData.getFirst("edited", String.class);
+    public Response postRouteForm(@Context UriInfo uriInfo, @FormParam("language") String language, 
+                                  @FormParam("route") String body, @FormParam("edited") String edited)
+        throws URISyntaxException {
 
         if (edited.equals("false")) {
             return Response.seeOther(new URI("/routes")).build();
         }
+        
         if (LOG.isDebugEnabled()) {
             LOG.debug("new Route is: " + body);
         }
@@ -240,9 +239,6 @@
      */
     private Response parseGroovy(String route) {
         try {
-            // store the route definition
-            // File file = storeRoute(route, LANGUAGE_GROOVY);
-
             // load the definition class into a RouteBuilder instance
             GroovyClassLoader classLoader = new GroovyClassLoader();
             Class<?> clazz = classLoader.parseClass(route);
@@ -318,7 +314,8 @@
             File file = storeRoute(route, LANGUAGE_SCALA);
 
             // load the definition class
-
+            //TODO: process the route definition using scala route builder
+            
             return Response.seeOther(new URI("/routes")).build();
 
         } catch (IOException e) {

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RoutesResource.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RoutesResource.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RoutesResource.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RoutesResource.java Fri Sep  4 16:48:20 2009
@@ -17,17 +17,40 @@
 package org.apache.camel.web.resources;
 
 import java.io.IOException;
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Collections;
 import java.util.List;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+import com.sun.jersey.api.view.Viewable;
+
+import groovy.lang.GroovyClassLoader;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RoutesDefinition;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.view.RouteDotGenerator;
+import org.apache.camel.web.util.GroovyRenderer;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * The active routes in Camel which are used to implement one or more <a
@@ -37,7 +60,9 @@
  * @version $Revision$
  */
 public class RoutesResource extends CamelChildResourceSupport {
-
+    private static final transient Log LOG = LogFactory.getLog(RoutesResource.class);
+    private String error = "";
+    
     public RoutesResource(CamelContextResource contextResource) {
         super(contextResource);
     }
@@ -99,11 +124,100 @@
     public RouteStatusResource getRouteStatus(@PathParam("id") String id) {
         RouteResource routeResource = getRoute(id);
         return routeResource.getRouteStatus();
-    }    
+    }
+
+    /**
+     * Creates a new route using form encoded data from a web form
+     * 
+     * @param language is the edited language used on this route
+     * @param body the route definition content
+     */
+    @POST
+    @Consumes("application/x-www-form-urlencoded")
+    public Response postRouteForm(@Context UriInfo uriInfo, @FormParam("language") String language, 
+                                  @FormParam("route") String body) throws URISyntaxException {
+
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("new Route is: " + body);
+        }
+        
+        LOG.info(body);
+        if (body == null) {
+            error = "No Route submitted!";
+        } else if (language.equals(RouteResource.LANGUAGE_XML)) {
+            return parseXml(body);
+        } else if (language.equals(RouteResource.LANGUAGE_GROOVY)) {
+            return parseGroovy(body);
+        }
+        
+        error = "Not supproted language!";
+        return Response.ok(new Viewable("edit", this)).build();
+
+    }
     
     // Properties
     // -------------------------------------------------------------------------
     public List<RouteDefinition> getRoutes() {
         return getRouteDefinitions().getRoutes();
     }
+    
+    public String getError() {
+        return error;
+    }
+    
+    /**
+     * process the route configuration defined in Xml
+     */
+    private Response parseXml(String xml) {
+        try {
+            JAXBContext context = JAXBContext.newInstance(Constants.JAXB_PACKAGES);
+            Unmarshaller unmarshaller = context.createUnmarshaller();
+            Object value = unmarshaller.unmarshal(new StringReader(xml));
+            if (value instanceof RouteDefinition) {
+                RouteDefinition routeDefinition = (RouteDefinition)value;
+                // add the route
+                getCamelContext().addRouteDefinitions(Collections.singletonList(routeDefinition));
+                return Response.seeOther(new URI("/routes")).build();
+            } else {
+                error = "Posted XML is not a route but is of type " + ObjectHelper.className(value);
+            }
+        } catch (JAXBException e) {
+            error = "Failed to parse XML: " + e.getMessage();
+        } catch (Exception e) {
+            error = "Failed to install route: " + e.getMessage();
+        }
+        // lets re-render the form
+        return Response.ok(new Viewable("create", this)).build();
+    }
+
+    /**
+     * process the route configuration defined in Groovy class
+     */
+    private Response parseGroovy(String route) {
+        try {
+            // load the definition class into a RouteBuilder instance
+            GroovyClassLoader classLoader = new GroovyClassLoader();
+            Class<?> clazz = classLoader.parseClass(route);
+            RouteBuilder builder = (RouteBuilder)clazz.newInstance();
+            LOG.info("Loaded builder: " + builder);
+            // add the route builder
+            getCamelContext().addRoutes(builder);
+            return Response.seeOther(new URI("/routes")).build();
+        } catch (IOException e) {
+            // e.printStackTrace();
+            error = "Failed to store the route: " + e.getMessage();
+        } catch (InstantiationException e) {
+            // e.printStackTrace();
+            error = "Failed to instantiate the route: " + e.getMessage();
+        } catch (IllegalAccessException e) {
+            // e.printStackTrace();
+            error = "Failed to instantiate the route: " + e.getMessage();
+        } catch (Exception e) {
+            // e.printStackTrace();
+            error = "Failed to edit the route: " + e.getMessage();
+        }
+        // lets re-render the form
+        return Response.ok(new Viewable("create", this)).build();
+    }
+    
 }

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ErrorHandlerRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ErrorHandlerRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ErrorHandlerRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ErrorHandlerRenderer.java Fri Sep  4 16:48:20 2009
@@ -28,17 +28,18 @@
     private ErrorHandlerRenderer() {
         // Utility class, no public or protected default constructor
     }
-    
+
     public static void render(StringBuilder buffer, ErrorHandlerBuilder errorHandler) {
         if (errorHandler instanceof DeadLetterChannelBuilder) {
             DeadLetterChannelBuilder deadLetter = (DeadLetterChannelBuilder)errorHandler;
             buffer.append("errorHandler(deadLetterChannel(\"").append(deadLetter.getDeadLetterUri()).append("\")");
-            int maxRediliveries = deadLetter.getRedeliveryPolicy().getMaximumRedeliveries();
+
+            // render the redelivery policy
+            RedeliveryPolicy redelivery = deadLetter.getRedeliveryPolicy();
+            int maxRediliveries = redelivery.getMaximumRedeliveries();
             if (maxRediliveries != 0) {
                 buffer.append(".maximumRedeliveries(").append(maxRediliveries).append(")");
             }
-
-            RedeliveryPolicy redelivery = deadLetter.getRedeliveryPolicy();
             long redeliverDelay = redelivery.getRedeliverDelay();
             if (redeliverDelay != 1000) {
                 buffer.append(".redeliverDelay(").append(redeliverDelay).append(")");
@@ -47,6 +48,7 @@
                 buffer.append(".logStackTrace(true)");
             }
 
+            // render the handled policy
             if (deadLetter.getHandledPolicy() != null) {
                 String handledPolicy = deadLetter.getHandledPolicy().toString();
                 if (handledPolicy.equals("false")) {

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ExpressionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ExpressionRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ExpressionRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ExpressionRenderer.java Fri Sep  4 16:48:20 2009
@@ -62,7 +62,20 @@
      * @param buffer
      */
     public static void renderConstant(StringBuilder buffer, ExpressionDefinition expression) {
-        buffer.append(".constant(\"").append(expression.getExpressionValue().toString()).append("\")");
+        renderConstant(buffer, expression.getExpressionValue().toString());
+    }
+
+    /**
+     * Render a constant: constant("")
+     * 
+     * @param expression
+     * @param buffer
+     */
+    public static void renderConstant(StringBuilder buffer, String expression) {
+        if (buffer.toString().endsWith(")")) {
+            buffer.append(".");
+        }
+        buffer.append("constant(\"").append(expression).append("\")");
     }
 
     /**

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/GroovyRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/GroovyRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/GroovyRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/GroovyRenderer.java Fri Sep  4 16:48:20 2009
@@ -96,7 +96,7 @@
         for (RouteDefinition route : routes) {
             renderRoute(buffer, route);
             if (route != routes.get(routes.size() - 1)) {
-                buffer.append(";");
+                buffer.append(";\n");
             }
         }
     }

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OnExceptionDefinitionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OnExceptionDefinitionRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OnExceptionDefinitionRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OnExceptionDefinitionRenderer.java Fri Sep  4 16:48:20 2009
@@ -21,6 +21,7 @@
 
 import org.apache.camel.model.OnExceptionDefinition;
 import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.model.RedeliveryPolicyDefinition;
 
 /**
  *
@@ -28,7 +29,7 @@
 public final class OnExceptionDefinitionRenderer {
     private OnExceptionDefinitionRenderer() {
         // Utility class, no public or protected default constructor
-    }    
+    }
 
     public static void render(StringBuilder buffer, ProcessorDefinition<?> processor) {
         // if not a global onCompletion, add a period
@@ -48,10 +49,34 @@
         }
         buffer.append(")");
 
-        // render handled() dsl
+        // render the redelivery policy
+        if (onException.getRedeliveryPolicy() != null) {
+            RedeliveryPolicyDefinition redelivery = onException.getRedeliveryPolicy();
+            if (redelivery.getMaximumRedeliveries() != null) {
+                int maxRediliveries = redelivery.getMaximumRedeliveries();
+                if (maxRediliveries != 0) {
+                    buffer.append(".maximumRedeliveries(").append(maxRediliveries).append(")");
+                }
+            }
+            if (redelivery.getRedeliveryDelay() != null) {
+                long redeliverDelay = redelivery.getRedeliveryDelay();
+                if (redeliverDelay != 1000) {
+                    buffer.append(".redeliverDelay(").append(redeliverDelay).append(")");
+                }
+            }
+            if (redelivery.getLogStackTrace() != null) {
+                if (redelivery.getLogStackTrace()) {
+                    buffer.append(".logStackTrace(true)");
+                }
+            }
+        }
+
+        // render the handled policy
         if (onException.getHandledPolicy() != null) {
-            String handled = onException.getHandledPolicy().toString();
-            buffer.append(".handled(").append(handled).append(")");
+            String handledPolicy = onException.getHandledPolicy().toString();
+            if (handledPolicy.equals("false")) {
+                buffer.append(".handled(").append(handledPolicy).append(")");
+            }
         }
 
         List<ProcessorDefinition> branches = onException.getOutputs();

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OutputDefinitionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OutputDefinitionRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OutputDefinitionRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/OutputDefinitionRenderer.java Fri Sep  4 16:48:20 2009
@@ -140,15 +140,20 @@
     private static void renderAop(StringBuilder buffer, OutputDefinition out) {
         buffer.append("()");
         AOPDefinition aop = (AOPDefinition)out;
-        if (aop.getBeforeUri() != null && aop.getAfterUri() != null) {
-            buffer.append(".around(\"").append(aop.getBeforeUri());
-            buffer.append("\", \"").append(aop.getAfterUri()).append("\")");
-        } else if (aop.getBeforeUri() != null) {
-            buffer.append(".before(\"").append(aop.getBeforeUri()).append("\")");
+        if (aop.getBeforeUri() != null) {
+            if (aop.getAfterUri() != null) {
+                buffer.append(".around(\"").append(aop.getBeforeUri());
+                buffer.append("\", \"").append(aop.getAfterUri()).append("\")");
+            } else if (aop.getAfterFinallyUri() != null) {
+                buffer.append(".aroundFinally(\"").append(aop.getBeforeUri());
+                buffer.append("\", \"").append(aop.getAfterFinallyUri()).append("\")");
+            } else {
+                buffer.append(".before(\"").append(aop.getBeforeUri()).append("\")");
+            }
         } else if (aop.getAfterUri() != null) {
             buffer.append(".after(\"").append(aop.getAfterUri()).append("\")");
         } else if (aop.getAfterFinallyUri() != null) {
-            buffer.append(".afterFinally(\"").append(aop.getAfterUri()).append("\")");
+            buffer.append(".afterFinally(\"").append(aop.getAfterFinallyUri()).append("\")");
         }
     }
 

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/PredicateRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/PredicateRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/PredicateRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/PredicateRenderer.java Fri Sep  4 16:48:20 2009
@@ -25,7 +25,7 @@
 public final class PredicateRenderer {
     private PredicateRenderer() {
         // Utility class, no public or protected default constructor
-    }    
+    }
 
     public static void render(StringBuilder buffer, Predicate predicate) {
         String pre = predicate.toString();
@@ -46,8 +46,13 @@
 
     public static void render(StringBuilder buffer, String predicate) {
         String left = predicate.substring(0, predicate.indexOf(" "));
-        String operation = predicate.substring(predicate.indexOf(" ") + 1, predicate.lastIndexOf(" "));
-        String right = predicate.substring(predicate.lastIndexOf(" ") + 1);
+        String opAndRight = predicate.substring(left.length() + 1, predicate.length());
+        String operation = opAndRight.substring(0, opAndRight.indexOf(" "));
+        String right = opAndRight.substring(operation.length() + 1, opAndRight.length());
+        if (operation.equals("is") && right.startsWith("not")) {
+            operation = "is not";
+            right = right.substring(4, right.length());
+        }
 
         renderLeft(buffer, left);
         renderOperation(buffer, operation);
@@ -157,7 +162,7 @@
     }
 
     private static void renderOr(StringBuilder buffer, String predicate) {
-     // (predicate1 or predicate2)
+        // (predicate1 or predicate2)
         buffer.append("or(");
         String predicate1 = predicate.substring(1, predicate.indexOf(") or ("));
         String predicate2 = predicate.substring(predicate.indexOf(") or (") + 6, predicate.length() - 1);
@@ -174,6 +179,10 @@
         } else if (right.equals("") || right.equals("null")) {
             // for isNull() and isNotNull()
             return;
+        } else if (right.startsWith("java.")) {
+            // for isInstanceOf(clazz)
+            String className = right.substring(right.lastIndexOf(".") + 1, right.length());
+            buffer.append("(").append(className).append(".class)");
         } else {
             // string -> "string"
             buffer.append("(\"").append(right).append("\")");

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java Fri Sep  4 16:48:20 2009
@@ -35,6 +35,7 @@
 import org.apache.camel.model.RoutingSlipDefinition;
 import org.apache.camel.model.SendDefinition;
 import org.apache.camel.model.ThrottleDefinition;
+import org.apache.camel.model.ThrowExceptionDefinition;
 
 /**
  *
@@ -80,6 +81,8 @@
             SendDefinitionRenderer.render(buffer, processor);
         } else if (processor instanceof ThrottleDefinition) {
             ThrottleDefinitionRenderer.render(buffer, processor);
+        } else if (processor instanceof ThrowExceptionDefinition) {
+            ThrowExceptionDefinitionRenderer.render(buffer, processor);
         } else {
             buffer.append(".").append(processor.getShortName()).append("()");
         }

Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/SendDefinitionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/SendDefinitionRenderer.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/SendDefinitionRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/SendDefinitionRenderer.java Fri Sep  4 16:48:20 2009
@@ -27,14 +27,28 @@
 public final class SendDefinitionRenderer {
     private SendDefinitionRenderer() {
         // Utility class, no public or protected default constructor
-    }    
+    }
 
     public static void render(StringBuilder buffer, ProcessorDefinition<?> processor) {
         buffer.append(".");
         SendDefinition<?> send = (SendDefinition<?>)processor;
-        if (send instanceof WireTapDefinition || send.getPattern() == null) {
-            // for wireTap and to
+        if (send instanceof WireTapDefinition) {
+            // for wireTap
+            buffer.append(send.getShortName());
+            buffer.append("(\"").append(send.getUri());
+            WireTapDefinition wireTap = (WireTapDefinition)send;
+            if (wireTap.getNewExchangeExpression() != null) {
+                String expression = wireTap.getNewExchangeExpression().toString();
+                buffer.append("\", ");
+                ExpressionRenderer.renderConstant(buffer, expression);
+                buffer.append(")");
+            } else {
+                buffer.append("\")");
+            }
+        } else if (send.getPattern() == null) {
+            // for to
             buffer.append(send.getShortName());
+            buffer.append("(\"").append(send.getUri()).append("\")");
         } else {
             // for inOnly and inOut
             if (send.getPattern().name().equals("InOnly")) {
@@ -42,7 +56,7 @@
             } else if (send.getPattern().name().equals("InOut")) {
                 buffer.append("inOut");
             }
+            buffer.append("(\"").append(send.getUri()).append("\")");
         }
-        buffer.append("(\"").append(send.getUri()).append("\")");
     }
 }

Added: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ThrowExceptionDefinitionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ThrowExceptionDefinitionRenderer.java?rev=811485&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ThrowExceptionDefinitionRenderer.java (added)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ThrowExceptionDefinitionRenderer.java Fri Sep  4 16:48:20 2009
@@ -0,0 +1,38 @@
+/**
+ * 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.web.util;
+
+import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.model.ThrowExceptionDefinition;
+
+/**
+ *
+ */
+public final class ThrowExceptionDefinitionRenderer {
+    private ThrowExceptionDefinitionRenderer() {
+        // Utility class, no public or protected default constructor
+    }
+
+    public static void render(StringBuilder buffer, ProcessorDefinition<?> processor) {
+        ThrowExceptionDefinition throwExp = (ThrowExceptionDefinition)processor;
+        buffer.append(".").append(throwExp.getShortName()).append("(");
+        String expName = throwExp.getException().getClass().getSimpleName();
+        String msg = throwExp.getException().getMessage();
+        buffer.append("new ").append(expName).append("(\"").append(msg).append("\"))");
+    }
+}

Modified: camel/trunk/components/camel-web/src/main/webapp/WEB-INF/decorators.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/WEB-INF/decorators.xml?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/WEB-INF/decorators.xml (original)
+++ camel/trunk/components/camel-web/src/main/webapp/WEB-INF/decorators.xml Fri Sep  4 16:48:20 2009
@@ -32,7 +32,7 @@
   <decorator name="printable" page="printable.jsp" />
 
   <decorator name="plain" page="plain.jsp">
-    <pattern>/routes/*/edit</pattern>
+    <!-- <pattern>/routes/*/edit</pattern> -->
   </decorator>
 
 </decorators>

Modified: camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/create.jsp
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/create.jsp?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/create.jsp (original)
+++ camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/create.jsp Fri Sep  4 16:48:20 2009
@@ -7,6 +7,41 @@
   <title>Create New Route</title>
 </head>
 <body>
+<form id="routeForm" action="<c:url value="/routes"/>" method="post">
+<table>
+  <tr>
+    <td>
+      <h2>Create New Route</h2>
+    </td>
+    <td>
+      <input type="submit" value="Save">&nbsp; as &nbsp;<select
+			id="language" name="language">
+			<option value="Xml" selected>Xml</option>
+			<option value="Groovy">Groovy</option>
+			<option value="Ruby">Ruby</option>
+			<option value="Scala">Scala</option>
+		</select>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2"><textarea id="route" name="route"
+			onchange="dojo.byId('edited').value = true;"
+			style="width: 800px; height: 300px; border: 10px solid #ddd; -moz-border-radius: 10px; -webkit-border-radius: 10px;">
+<route xmlns="http://camel.apache.org/schema/spring">
+  <description>This is an example route.</description>
+  <from uri="seda:Some.Endpoint"/>
+  <to uri="seda:Some.Other.Endpoint"/>
+</route>
+			</textarea>
+    </td>
+  </tr>
+</table>
+
+<div class="error">${it.error}</div>
+
+</form>
+
+<!--
 
 <form id="routeForm" action="<c:url value="/routes"/>" method="post">
 <table>
@@ -35,6 +70,7 @@
 
 </form>
 
+-->
 
 </body>
 </html>

Modified: camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/index.jsp
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/index.jsp?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/index.jsp (original)
+++ camel/trunk/components/camel-web/src/main/webapp/org/apache/camel/web/resources/RoutesResource/index.jsp Fri Sep  4 16:48:20 2009
@@ -33,9 +33,14 @@
       </c:if>
       </form>
     </td>
+  </tr>
   </c:forEach>
 </ul>
 </table>
 
+<ul>
+<li><a href='<c:url value="/routes/create"/>'>Create New Route</a>
+</ul>
+
 </body>
 </html>

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AOPDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AOPDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AOPDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AOPDSLTest.java Fri Sep  4 16:48:20 2009
@@ -31,10 +31,8 @@
         assertEquals(dsl, render(dsl));
     }
 
-    @Ignore("Need to fix this test")
     @Test
-    // TODO: fix this test!
-    public void fixmeTestAOPAfterFinally() throws Exception {
+    public void testAOPAfterFinally() throws Exception {
         String dsl = "from(\"direct:start\").aop().afterFinally(\"mock:after\").choice()"
             + ".when(body().isEqualTo(\"Hello World\")).transform(constant(\"Bye World\"))"
             + ".otherwise().transform(constant(\"Kabom the World\")).throwException(new IllegalArgumentException(\"Damn\"))"
@@ -48,14 +46,12 @@
         assertEquals(dsl, render(dsl));
     }
 
-    @Ignore("Need to fix this test")
     @Test
-    // TODO: fix this test!
     public void fixmeTestAOPAroundFinally() throws Exception {
         String dsl = "from(\"direct:start\").aop().aroundFinally(\"mock:before\", \"mock:after\").choice()"
             + ".when(body().isEqualTo(\"Hello World\")).transform(constant(\"Bye World\"))"
             + ".otherwise().transform(constant(\"Kabom the World\")).throwException(new IllegalArgumentException(\"Damn\"))"
-            + ".end()to(\"mock:result\")";
+            + ".end().to(\"mock:result\")";
         assertEquals(dsl, render(dsl));
     }
 
@@ -74,5 +70,4 @@
 
         assertEquals(expected, render(dsl));
     }
-
 }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AggregateDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AggregateDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AggregateDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/AggregateDSLTest.java Fri Sep  4 16:48:20 2009
@@ -20,7 +20,6 @@
 import org.junit.Ignore;
 import org.junit.Test;
 
-
 /**
  * a test case for aggregate DSL
  */
@@ -50,34 +49,31 @@
     public void testAggregateTimeoutOnly() throws Exception {
         String dsl = "from(\"direct:start\").aggregate(header(\"id\")).batchTimeout(3000).batchSize(0).to(\"mock:result\")";
         String expected = "from(\"direct:start\").aggregate().header(\"id\").batchTimeout(3000).batchSize(0).to(\"mock:result\")";
-        
+
         assertEquals(expected, render(dsl));
     }
 
     /**
-     * a route involving a external class: CamelException
-     * 
-     * @throws Exception
-     * TODO: fix this test!
+     * a route involving a external exception class: CamelException
      */
-    @Ignore("Need to fix this test")
     @Test
-    public void fixmeTestAggregateAndOnException() throws Exception {
-        String dsl = "errorHandler(deadLetterChannel(\"mock:error\"));onException(CamelException.class).maximumRedeliveries(2);from(\"direct:start\").aggregate(header(\"id\")).to(\"mock:result\")";
-        assertEquals(dsl, render(dsl));
+    public void testAggregateAndOnException() throws Exception {
+        String dsl = "errorHandler(deadLetterChannel(\"mock:error\"));" + "onException(CamelException.class).maximumRedeliveries(2);"
+                     + "from(\"direct:start\").aggregate(header(\"id\")).to(\"mock:result\")";
+        String expected = "errorHandler(deadLetterChannel(\"mock://error\"));" + "onException(CamelException.class).maximumRedeliveries(2);"
+                          + "from(\"direct:start\").aggregate().header(\"id\").to(\"mock:result\")";
+        assertEquals(expected, render(dsl));
     }
 
     /**
-     * a set of routes that uses aggregate DSL
-     * 
-     * @throws Exception
-     * TODO: fix this test!
+     * a set of routes that use split and aggregate DSL
      */
-    @Ignore("Need to fix this test")
     @Test
     public void fixmeTestAggregateTimerAndTracer() throws Exception {
         String dsl = "from(\"timer://kickoff?period=9999910000\").setHeader(\"id\").constant(\"foo\").setBody().constant(\"a b c\").split(body().tokenize(\" \")).to(\"seda:splitted\");"
-            + "from(\"seda:splitted\").aggregate(header(\"id\")).to(\"mock:result\")";
-        assertEquals(dsl, render(dsl));
+                     + "from(\"seda:splitted\").aggregate(header(\"id\")).to(\"mock:result\")";
+        String expected = "from(\"timer://kickoff?period=9999910000\").setHeader(\"id\").constant(\"foo\").setBody().constant(\"a b c\").split(body().tokenize(\" \")).to(\"seda:splitted\");\n"
+                          + "from(\"seda:splitted\").aggregate().header(\"id\").to(\"mock:result\")";
+        assertEquals(expected, renderRoutes(dsl));
     }
 }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptFromDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptFromDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptFromDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptFromDSLTest.java Fri Sep  4 16:48:20 2009
@@ -49,9 +49,9 @@
         String dsl = "interceptFrom(\"seda:(bar|foo)\").to(\"mock:intercept\");"
             + "from(\"direct:start\").to(\"mock:result\");from(\"seda:bar\").to(\"mock:result\");"
             + "from(\"seda:foo\").to(\"mock:result\");from(\"seda:cheese\").to(\"mock:result\")";
-        String expected = "from(\"direct:start\").to(\"mock:result\");"
-            + "interceptFrom(\"seda:(bar|foo)\").to(\"mock:intercept\");from(\"seda:bar\").to(\"mock:result\");"
-            + "interceptFrom(\"seda:(bar|foo)\").to(\"mock:intercept\");from(\"seda:foo\").to(\"mock:result\");"
+        String expected = "from(\"direct:start\").to(\"mock:result\");\n"
+            + "interceptFrom(\"seda:(bar|foo)\").to(\"mock:intercept\");from(\"seda:bar\").to(\"mock:result\");\n"
+            + "interceptFrom(\"seda:(bar|foo)\").to(\"mock:intercept\");from(\"seda:foo\").to(\"mock:result\");\n"
             + "from(\"seda:cheese\").to(\"mock:result\")";
 
         assertEquals(expected, renderRoutes(dsl));
@@ -62,8 +62,8 @@
         String dsl = "interceptFrom(\"seda:bar\").to(\"mock:bar\");"
             + "from(\"direct:start\").to(\"mock:first\").to(\"seda:bar\");"
             + "from(\"seda:bar\").to(\"mock:result\");from(\"seda:foo\").to(\"mock:result\")";
-        String expected = "from(\"direct:start\").to(\"mock:first\").to(\"seda:bar\");"
-            + "interceptFrom(\"seda:bar\").to(\"mock:bar\");from(\"seda:bar\").to(\"mock:result\");"
+        String expected = "from(\"direct:start\").to(\"mock:first\").to(\"seda:bar\");\n"
+            + "interceptFrom(\"seda:bar\").to(\"mock:bar\");from(\"seda:bar\").to(\"mock:result\");\n"
             + "from(\"seda:foo\").to(\"mock:result\")";
 
         assertEquals(expected, renderRoutes(dsl));
@@ -74,8 +74,8 @@
         String dsl = "interceptFrom(\"seda*\").to(\"mock:intercept\");"
             + "from(\"direct:start\").to(\"mock:result\");from(\"seda:bar\").to(\"mock:result\");"
             + "from(\"seda:foo\").to(\"mock:result\")";
-        String expected = "from(\"direct:start\").to(\"mock:result\");"
-            + "interceptFrom(\"seda*\").to(\"mock:intercept\");from(\"seda:bar\").to(\"mock:result\");"
+        String expected = "from(\"direct:start\").to(\"mock:result\");\n"
+            + "interceptFrom(\"seda*\").to(\"mock:intercept\");from(\"seda:bar\").to(\"mock:result\");\n"
             + "interceptFrom(\"seda*\").to(\"mock:intercept\");from(\"seda:foo\").to(\"mock:result\")";
         
         assertEquals(expected, renderRoutes(dsl));

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptSendToEndpointDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptSendToEndpointDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptSendToEndpointDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/InterceptSendToEndpointDSLTest.java Fri Sep  4 16:48:20 2009
@@ -41,18 +41,18 @@
 
     @Test
     public void testInterceptSendToEndpointInOnException() throws Exception {
-        String dsl = "onException(IOException.class).handled(true).to(\"mock:io\");"
+        String dsl = "onException(IOException.class).to(\"mock:io\");"
             + "interceptSendToEndpoint(\"mock:io\").skipSendToOriginalEndpoint().to(\"mock:intercepted\");"
             + "from(\"direct:start\").to(\"mock:foo\").to(\"mock:result\")";
         assertEquals(dsl, render(dsl));
     }
 
-    @Ignore("Need to fix this test")
     @Test
-    // TODO: fix this test!
-    public void fixmeTestInterceptSendToIssue() throws Exception {
+    public void testInterceptSendToIssue() throws Exception {
         String dsl = "interceptSendToEndpoint(\"direct:foo\").to(\"mock:foo\");"
             + "from(\"direct:start\").setHeader(Exchange.FILE_NAME, constant(\"hello.txt\")).to(\"direct:foo\")";
-        assertEquals(dsl, render(dsl));
+        String expected = "interceptSendToEndpoint(\"direct:foo\").to(\"mock:foo\");"
+            + "from(\"direct:start\").setHeader(\"CamelFileName\").constant(\"hello.txt\").to(\"direct:foo\")";
+        assertEquals(expected, render(dsl));
     }
 }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PoolEnrichDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PoolEnrichDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PoolEnrichDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PoolEnrichDSLTest.java Fri Sep  4 16:48:20 2009
@@ -31,7 +31,6 @@
     /**
      * a route involving a external class: aggregationStrategy
      * 
-     * @throws Exception
      * TODO: fix this test!
      */
     @Ignore("Need to fix this test")

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PredicateRendererTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PredicateRendererTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PredicateRendererTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/PredicateRendererTest.java Fri Sep  4 16:48:20 2009
@@ -139,12 +139,10 @@
         assertMatch(expectedPredicate, predicate);
     }
 
-    @Ignore("Need to fix this test")
     @Test
-    // TODO: fix this test!
-    public void fixmeTestIsInstanceOf() throws Exception {
-        String expectedPredicate = "header(\"name\").isNull()";
-        Predicate predicate = header("name").isNull();
+    public void testIsInstanceOf() throws Exception {
+        String expectedPredicate = "header(\"name\").isInstanceOf(String.class)";
+        Predicate predicate = header("name").isInstanceOf(String.class);
         assertMatch(expectedPredicate, predicate);
     }
 

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ProcessDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ProcessDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ProcessDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ProcessDSLTest.java Fri Sep  4 16:48:20 2009
@@ -31,7 +31,7 @@
     /**
      * a route involving a external class: validator
      * 
-     * @throws Exception TODO: fix this test!
+     * TODO: fix this test!
      */
     @Ignore("Need to fix this test")
     @Test

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetExchangePatternDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetExchangePatternDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetExchangePatternDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetExchangePatternDSLTest.java Fri Sep  4 16:48:20 2009
@@ -38,18 +38,19 @@
         assertEquals(dsl, render(dsl));
     }
 
-    // TODO: fix this test
-    @Ignore("Need to fix this test")
+    /**
+     * to(ExchangePattern.PATTERN, dest) -> PATTERN(dest) 
+     * since we can't distinguish them at CamelContext
+     */
     @Test
-    public void fixmeTestToExchangePattern() throws Exception {
+    public void testToWithExchangePattern() throws Exception {
         String dsl = "from(\"direct:start\").to(ExchangePattern.InOnly, \"mock:result\")";
-        assertEquals(dsl, render(dsl));
+        String expected = "from(\"direct:start\").inOnly(\"mock:result\")";
+        assertEquals(expected, render(dsl));
     }
 
-    // TODO: fix this test
-    @Ignore("Need to fix this test")
     @Test
-    public void fixmeTestSetExchangepattern() throws Exception {
+    public void testSetExchangepattern() throws Exception {
         String dsl = "from(\"direct:start\").setExchangePattern(ExchangePattern.InOnly).to(\"mock:result\")";
         assertEquals(dsl, render(dsl));
     }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetHeaderDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetHeaderDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetHeaderDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SetHeaderDSLTest.java Fri Sep  4 16:48:20 2009
@@ -26,16 +26,15 @@
 
     @Test
     public void testSetHeaderConstant() throws Exception {
-        String dsl = "from(\"direct:start\").setHeader(\"foo\", constant(\"ABC\")).to(\"mock:result\")";
-        String expected = "from(\"direct:start\").setHeader(\"foo\").constant(\"ABC\").to(\"mock:result\")";
-
-        assertEquals(expected, render(dsl));
+        String dsl = "from(\"direct:start\").setHeader(\"foo\").constant(\"ABC\").to(\"mock:result\")";
+        assertEquals(dsl, render(dsl));
     }
 
     @Test
     public void testSetHeaderXPath() throws Exception {
         String dsl = "from(\"direct:start\").unmarshal().string().setHeader(\"foo\").xpath(\"/person[@name='James']/@city\", String.class).to(\"mock:result\")";
         assertEquals(dsl, render(dsl));
+
     }
 
     @Test

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SortDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SortDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SortDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SortDSLTest.java Fri Sep  4 16:48:20 2009
@@ -25,7 +25,6 @@
  */
 public class SortDSLTest extends GroovyRendererTestSupport {
 
-    @Ignore("Need to fix this test")
     @Test
     public void testSort() throws Exception {
         String dsl = "from(\"direct:start\").sort(body().tokenize(\",\")).to(\"bean:MyServiceBean.processLine\")";

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SplitDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SplitDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SplitDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/SplitDSLTest.java Fri Sep  4 16:48:20 2009
@@ -43,11 +43,9 @@
         assertEquals(dsl, render(dsl));
     }
 
-    // TODO: fix this test!
-    @Ignore("Need to fix this test")
     @Test
     public void fixmeTestSplitXPath() throws Exception {
-        String dsl = "from(\"direct:start\").split(xpath(\"//foo/bar\")).convertBodyTo(String.class).to(\"mock:result\")";
+        String dsl = "from(\"direct:start\").split().xpath(\"//foo/bar\", String.class).to(\"mock:result\")";
         assertEquals(dsl, render(dsl));
     }
 }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ThrottleDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ThrottleDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ThrottleDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/ThrottleDSLTest.java Fri Sep  4 16:48:20 2009
@@ -17,7 +17,6 @@
 
 package org.apache.camel.web.groovy;
 
-import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -36,11 +35,4 @@
         String dsl = "from(\"direct:start\").throttle(3).timePeriodMillis(10000).to(\"mock:result\")";
         assertEquals(dsl, render(dsl));
     }
-
-    @Ignore("Need to fix this test")
-    @Test
-    public void fixmeTestThrottleWithTimePeriodMillisInterval() throws Exception {
-        String dsl = "from(\"direct:start\").throttle(1).timePeriodMillis(INTERVAL).to(\"mock:result\")";
-        assertEquals(dsl, render(dsl));
-    }
 }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/TracingDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/TracingDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/TracingDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/TracingDSLTest.java Fri Sep  4 16:48:20 2009
@@ -26,8 +26,8 @@
 
     @Test
     public void testTracePerRotueManual() throws Exception {
-        String dsl = "from(\"direct:a\").tracing().streamCaching().to(\"mock:a\");"
-            + "from(\"direct:b\").noTracing().to(\"mock:b\");"
+        String dsl = "from(\"direct:a\").tracing().streamCaching().to(\"mock:a\");\n"
+            + "from(\"direct:b\").noTracing().to(\"mock:b\");\n"
             + "from(\"direct:c\").tracing().to(\"mock:c\")";
         assertEquals(dsl, renderRoutes(dsl));
     }

Modified: camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/WireTapDSLTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/WireTapDSLTest.java?rev=811485&r1=811484&r2=811485&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/WireTapDSLTest.java (original)
+++ camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/groovy/WireTapDSLTest.java Fri Sep  4 16:48:20 2009
@@ -39,11 +39,7 @@
 
     /**
      * a wireTap with two parameters
-     * 
-     * @throws Exception
-     * TODO: fix this test!
      */
-    @Ignore("Need to fix this test")
     @Test
     public void fixmeTestWireTap3() throws Exception {
         String dsl = "from(\"direct:start\").wireTap(\"direct:foo\", constant(\"Bye World\")).to(\"mock:result\")";