Author: davsclaus
Date: Thu Aug 19 17:54:57 2010
New Revision: 987250

URL: http://svn.apache.org/viewvc?rev=987250&view=rev
Log:
CAMEL-2993: Remove route in camel-web. Thanks to Max Ullinger for patch.

Modified:
    
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java
    
camel/trunk/components/camel-web/src/main/webapp/WEB-INF/org/apache/camel/web/resources/RoutesResource.index.ssp
    
camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/resources/RoutesTest.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=987250&r1=987249&r2=987250&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
 Thu Aug 19 17:54:57 2010
@@ -31,6 +31,7 @@ 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;
@@ -92,6 +93,25 @@ public class RouteResource extends Camel
     }
 
     /**
+     * Removes this route
+     * @return
+     */
+    @GET
+    @Path("remove")
+    @Produces(MediaType.TEXT_HTML)
+    public Response removeRoute() {
+        URI routesURI = null;
+        try {
+            routesURI = new URI("/routes");
+            getCamelContext().removeRouteDefinition(route);
+            return Response.seeOther(routesURI).build();
+        } catch (Exception e) {
+            LOG.error("failed to remove route " + id + ", error " + 
e.getMessage());
+            return Response.seeOther(routesURI).build();
+        }
+    }    
+    
+    /**
      * Returns the XML text
      */
     public String getRouteXml() throws JAXBException {

Modified: 
camel/trunk/components/camel-web/src/main/webapp/WEB-INF/org/apache/camel/web/resources/RoutesResource.index.ssp
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/WEB-INF/org/apache/camel/web/resources/RoutesResource.index.ssp?rev=987250&r1=987249&r2=987250&view=diff
==============================================================================
--- 
camel/trunk/components/camel-web/src/main/webapp/WEB-INF/org/apache/camel/web/resources/RoutesResource.index.ssp
 (original)
+++ 
camel/trunk/components/camel-web/src/main/webapp/WEB-INF/org/apache/camel/web/resources/RoutesResource.index.ssp
 Thu Aug 19 17:54:57 2010
@@ -9,6 +9,7 @@
   <tr>
     <th>Route</th>
     <th colspan="2">Status</th>
+    <th>Remove</th>
   </tr>
 <ul>
   #for(i <- it.getRoutes)
@@ -31,6 +32,9 @@
       #end
       </form>
     </td>
+    <td>
+      <a href='${uri("/routes/" + i.getId + "/remove")}'>remove</a>
+    </td>
   </tr>
   #end
 </ul>

Modified: 
camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/resources/RoutesTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/resources/RoutesTest.java?rev=987250&r1=987249&r2=987250&view=diff
==============================================================================
--- 
camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/resources/RoutesTest.java
 (original)
+++ 
camel/trunk/components/camel-web/src/test/java/org/apache/camel/web/resources/RoutesTest.java
 Thu Aug 19 17:54:57 2010
@@ -38,7 +38,12 @@ public class RoutesTest extends TestSupp
         RoutesDefinition routes = 
resource.path("routes").accept("application/xml").get(RoutesDefinition.class);
         assertNotNull("Should have found routes", routes);
         List<RouteDefinition> routeList = routes.getRoutes();
-        assertNotNull("Should have more than one route", routeList.size() > 0);
+        assertTrue("Should have at least one route", routeList.size() > 0);
         System.out.println("Have routes: " + routeList);
+        
+        //call the REST API to remove the first route, then validate that the 
response page doesn't contain the route
+        String routeID = routeList.get(0).getId();
+        String routePageHTML = resource.path("routes/" + routeID + 
"/remove").accept("text/html").get(String.class);
+        assertEquals(routePageHTML.indexOf(routeID), -1);
     }
 }
\ No newline at end of file


Reply via email to