Author: jstrachan
Date: Mon Feb 23 11:32:20 2009
New Revision: 746964

URL: http://svn.apache.org/viewvc?rev=746964&view=rev
Log:
CAMEL-1355 improvements to deal with non-singleton endpoints properly

Modified:
    
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/EndpointLink.java
    
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/Endpoints.java
    
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointResource.java
    
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointsResource.java

Modified: 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/EndpointLink.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/EndpointLink.java?rev=746964&r1=746963&r2=746964&view=diff
==============================================================================
--- 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/EndpointLink.java
 (original)
+++ 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/EndpointLink.java
 Mon Feb 23 11:32:20 2009
@@ -42,6 +42,11 @@
         load(endpoint);
     }
 
+    public EndpointLink(String key, Endpoint endpoint) {
+        this();
+        load(key, endpoint);
+    }
+
     @Override
     public String toString() {
         return "EndpointLink{href='" + href + "' uri='" + uri + "'}";
@@ -52,6 +57,11 @@
         this.href = createHref(uri);
     }
 
+    public void load(String key, Endpoint endpoint) {
+        this.uri = endpoint.getEndpointUri();
+        this.href = createHref(key);
+    }
+    
     public String getHref() {
         return href;
     }
@@ -72,4 +82,5 @@
         // TODO how to encode as a href?
         return "/endpoints/" + uri;
     }
+
 }

Modified: 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/Endpoints.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/Endpoints.java?rev=746964&r1=746963&r2=746964&view=diff
==============================================================================
--- 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/Endpoints.java
 (original)
+++ 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/model/Endpoints.java
 Mon Feb 23 11:32:20 2009
@@ -19,6 +19,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
@@ -62,16 +64,23 @@
     public void load(CamelContext camelContext) {
         ObjectHelper.notNull(camelContext, "camelContext has not been 
injected!");
 
+        Map<String,Endpoint> map = camelContext.getEndpointMap();
+        Set<Map.Entry<String,Endpoint>> entries = map.entrySet();
+        for (Map.Entry<String, Endpoint> entry : entries) {
+            addEndpoint(createEndpointLink(entry.getKey(), entry.getValue()));
+        }
+/*
         Collection<Endpoint> endpoints = camelContext.getSingletonEndpoints();
         for (Endpoint endpoint : endpoints) {
             addEndpoint(createEndpointLink(endpoint));
         }
+*/
 
     }
 
-    protected EndpointLink createEndpointLink(Endpoint endpoint) {
+    protected EndpointLink createEndpointLink(String key, Endpoint endpoint) {
         EndpointLink answer = new EndpointLink();
-        answer.load(endpoint);
+        answer.load(key, endpoint);
         return answer;
     }
 

Modified: 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointResource.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointResource.java?rev=746964&r1=746963&r2=746964&view=diff
==============================================================================
--- 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointResource.java
 (original)
+++ 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointResource.java
 Mon Feb 23 11:32:20 2009
@@ -46,15 +46,21 @@
  * @version $Revision$
  */
 public class EndpointResource extends CamelChildResourceSupport {
+    private final String key;
     private final Endpoint endpoint;
 
-    public EndpointResource(CamelContextResource contextResource, Endpoint 
endpoint) {
+    public EndpointResource(CamelContextResource contextResource, String key, 
Endpoint endpoint) {
         super(contextResource);
+        this.key = key;
         this.endpoint = endpoint;
     }
 
     public String getHref() {
-        return new EndpointLink(endpoint).getHref();
+        return new EndpointLink(key, endpoint).getHref();
+    }
+
+    public String getKey() {
+        return key;
     }
 
     public String getUri() {
@@ -65,7 +71,6 @@
         return endpoint;
     }
 
-
     public BrowsableEndpoint getBrowsableEndpoint() {
         if (endpoint instanceof BrowsableEndpoint) {
             return (BrowsableEndpoint) endpoint;

Modified: 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointsResource.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointsResource.java?rev=746964&r1=746963&r2=746964&view=diff
==============================================================================
--- 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointsResource.java
 (original)
+++ 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/EndpointsResource.java
 Mon Feb 23 11:32:20 2009
@@ -78,7 +78,7 @@
             }
         }
         if (endpoint != null) {
-            return new EndpointResource(getContextResource(), endpoint);
+            return new EndpointResource(getContextResource(), id, endpoint);
         } else {
             return null;
         }


Reply via email to