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