You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2009/01/15 21:22:35 UTC

svn commit: r734798 - in /activemq/camel/trunk/components/camel-rest/src/main: java/org/apache/camel/rest/model/ java/org/apache/camel/rest/resources/ webapp/WEB-INF/ webapp/org/apache/camel/rest/model/ webapp/org/apache/camel/rest/resources/CamelConte...

Author: jstrachan
Date: Thu Jan 15 12:22:34 2009
New Revision: 734798

URL: http://svn.apache.org/viewvc?rev=734798&view=rev
Log:
more improvements for CAMEL-888 for both XML and HTML mappings; including simple HTML routes view - still work in progress but slowly getting there

Added:
    activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/ViewableResource.java   (with props)
    activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/resources/CamelContextResource/routes.jsp   (with props)
Removed:
    activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/model/
Modified:
    activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/model/EndpointLink.java
    activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/CamelContextResource.java
    activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/EndpointResource.java
    activemq/camel/trunk/components/camel-rest/src/main/webapp/WEB-INF/web.xml

Modified: activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/model/EndpointLink.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/model/EndpointLink.java?rev=734798&r1=734797&r2=734798&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/model/EndpointLink.java (original)
+++ activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/model/EndpointLink.java Thu Jan 15 12:22:34 2009
@@ -70,6 +70,6 @@
 
     protected String createHref(String uri) {
         // TODO how to encode as a href?
-        return "/endpoints/" + uri;
+        return "/endpoint/" + uri;
     }
 }

Modified: activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/CamelContextResource.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/CamelContextResource.java?rev=734798&r1=734797&r2=734798&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/CamelContextResource.java (original)
+++ activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/CamelContextResource.java Thu Jan 15 12:22:34 2009
@@ -17,9 +17,9 @@
 package org.apache.camel.rest.resources;
 
 
+import com.sun.jersey.api.view.Viewable;
 import com.sun.jersey.spi.inject.Inject;
 import com.sun.jersey.spi.resource.Singleton;
-import com.sun.jersey.api.view.Viewable;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.model.RouteType;
@@ -34,7 +34,7 @@
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import java.util.List;
-//import static org.apache.camel.rest.resources.Constants.*;
+
 
 /**
  * The resource for the CamelContext
@@ -43,7 +43,7 @@
  */
 @Path("/")
 @Singleton
-public class CamelContextResource {
+public class CamelContextResource extends ViewableResource {
 
     private final CamelContext camelContext;
 
@@ -59,16 +59,51 @@
         return camelContext.getName();
     }
 
+
+
+    // HTML representations
+    //-------------------------------------------------------------------------
+
+    // Its a shame there's not an easier way to bind the explicit views...
+    //-------------------------------------------------------------------------
+
+
+    @GET
+    @Path("endpoints")
+    @Produces({MediaType.TEXT_HTML})
+    public Viewable endpoints() {
+        return view("endpoints");
+    }
+
+    @GET
+    @Path("foo")
+    @Produces({MediaType.TEXT_HTML})
+    public Viewable foo() {
+        return view("foo");
+    }
+
+/*
     @GET
     @Path("{view}")
     @Produces({MediaType.TEXT_HTML})
-    public Viewable get(@PathParam("view") String view) {
-        if (view == null || view.length() == 0) {
-            view = "index";
-        }
-        return new Viewable(view, this);
+    public Viewable genericView(@PathParam("view") String view) {
+        return view(view);
     }
 
+*/
+
+    @GET
+    @Path("routes")
+    @Produces({MediaType.TEXT_HTML})
+    public Viewable routesView() {
+        return view("routes");
+    }
+
+
+    // XML / JSON representations
+    //-------------------------------------------------------------------------
+
+
     @GET
     @Produces({MediaType.TEXT_XML, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
     public Camel getCamel() {
@@ -104,7 +139,6 @@
     /**
      * Looks up an individual endpoint
      */
-    @GET
     @Path("endpoint/{id}")
     public EndpointResource getEndpoint(@PathParam("id") String id) {
         // TODO lets assume the ID is the endpoint
@@ -123,6 +157,7 @@
      */
     @GET
     @Path("routes")
+    @Produces({"application/xml", "application/json"})
     public RoutesType getRouteDefinitions() {
         RoutesType answer = new RoutesType();
         if (camelContext != null) {
@@ -132,4 +167,12 @@
         return answer;
     }
 
+    // Properties
+    //-------------------------------------------------------------------------
+    public List<RouteType> getRoutes() {
+        return getRouteDefinitions().getRoutes();
+    }
+
+
+
 }

Modified: activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/EndpointResource.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/EndpointResource.java?rev=734798&r1=734797&r2=734798&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/EndpointResource.java (original)
+++ activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/EndpointResource.java Thu Jan 15 12:22:34 2009
@@ -22,7 +22,7 @@
 /**
  * @version $Revision$
  */
-public class EndpointResource {
+public class EndpointResource extends ViewableResource {
 
     private final Endpoint endpoint;
 
@@ -33,7 +33,8 @@
     public String getHref() {
         return new EndpointLink(endpoint).getHref();
     }
+
     public String getUri() {
-        return  endpoint.getEndpointUri();
+        return endpoint.getEndpointUri();
     }
 }

Added: activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/ViewableResource.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/ViewableResource.java?rev=734798&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/ViewableResource.java (added)
+++ activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/ViewableResource.java Thu Jan 15 12:22:34 2009
@@ -0,0 +1,46 @@
+/**
+ *
+ * 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.rest.resources;
+
+import com.sun.jersey.api.view.Viewable;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+/**
+ * A base class for any resource which is viewable in HTML
+ *
+ * @version $Revision: 1.1 $
+ */
+@Produces({MediaType.TEXT_HTML})
+public abstract class ViewableResource {
+
+    @GET
+    @Produces({MediaType.TEXT_HTML})
+    public Viewable index() {
+        return view("index");
+    }
+
+    protected Viewable view(String view) {
+        if (view == null || view.length() == 0) {
+            view = "index";
+        }
+        return new Viewable(view, this);
+    }
+}

Propchange: activemq/camel/trunk/components/camel-rest/src/main/java/org/apache/camel/rest/resources/ViewableResource.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: activemq/camel/trunk/components/camel-rest/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-rest/src/main/webapp/WEB-INF/web.xml?rev=734798&r1=734797&r2=734798&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-rest/src/main/webapp/WEB-INF/web.xml (original)
+++ activemq/camel/trunk/components/camel-rest/src/main/webapp/WEB-INF/web.xml Thu Jan 15 12:22:34 2009
@@ -78,6 +78,7 @@
       <param-name>com.sun.jersey.config.feature.ImplicitViewables</param-name>
       <param-value>true</param-value>
     </init-param>
+    <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
     <servlet-name>Jersey Spring</servlet-name>

Added: activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/resources/CamelContextResource/routes.jsp
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/resources/CamelContextResource/routes.jsp?rev=734798&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/resources/CamelContextResource/routes.jsp (added)
+++ activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/resources/CamelContextResource/routes.jsp Thu Jan 15 12:22:34 2009
@@ -0,0 +1,18 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <title>Routes</title>
+</head>
+<body>
+
+<h2>Routes</h2>
+
+
+<ul>
+  <c:forEach var="i" items="${it.routes}">
+    <li><a href="${i.id}">${i.shortName}</a> ${i.description}
+  </c:forEach>
+</ul>
+
+</body>
+</html>

Propchange: activemq/camel/trunk/components/camel-rest/src/main/webapp/org/apache/camel/rest/resources/CamelContextResource/routes.jsp
------------------------------------------------------------------------------
    svn:eol-style = native