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/02/23 12:20:40 UTC
svn commit: r746962 - in
/camel/trunk/camel-core/src/main/java/org/apache/camel: CamelContext.java
impl/DefaultCamelContext.java util/CamelContextHelper.java
Author: jstrachan
Date: Mon Feb 23 11:20:39 2009
New Revision: 746962
URL: http://svn.apache.org/viewvc?rev=746962&view=rev
Log:
patch for CAMEL-1374 to add a neater unique ID that looks more like the actual URL of the component which works much nicer for JMS endpoints (there's often only 1 non-singleton endpoint for a URI)
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=746962&r1=746961&r2=746962&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java Mon Feb 23 11:20:39 2009
@@ -127,6 +127,12 @@
Collection<Endpoint> getEndpoints();
/**
+ * Returns a new Map containing all of the active endpoints with the key of the map being their
+ * unique key
+ */
+ Map<String,Endpoint> getEndpointMap();
+
+ /**
* Returns the collection of all registered endpoints for a uri or an empty collection.
* For a singleton endpoint the collection will contain exactly one element.
*
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=746962&r1=746961&r2=746962&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Mon Feb 23 11:20:39 2009
@@ -238,6 +238,12 @@
}
}
+ public Map<String,Endpoint> getEndpointMap() {
+ synchronized (endpoints) {
+ return new HashMap<String,Endpoint>(endpoints);
+ }
+ }
+
public Collection<Endpoint> getEndpoints(String uri) {
Collection<Endpoint> answer = new ArrayList<Endpoint>();
Collection<Endpoint> coll;
@@ -273,7 +279,7 @@
synchronized (endpoints) {
startServices(endpoint);
oldEndpoint = endpoints.remove(uri);
- endpoints.put(CamelContextHelper.getEndpointKey(uri, endpoint), endpoint);
+ endpoints.put(getEndpointKey(uri, endpoint), endpoint);
if (oldEndpoint != null) {
stopServices(oldEndpoint);
}
@@ -342,7 +348,7 @@
if (answer != null) {
addService(answer);
- endpoints.put(CamelContextHelper.getEndpointKey(uri, answer), answer);
+ endpoints.put(getEndpointKey(uri, answer), answer);
lifecycleStrategy.onEndpointAdd(answer);
}
} catch (Exception e) {
@@ -818,4 +824,22 @@
}
}
+
+
+ protected synchronized String getEndpointKey(String uri, Endpoint endpoint) {
+ if (endpoint.isSingleton()) {
+ return uri;
+ }
+ else {
+ // lets try find the first endpoint key which is free
+ for (int counter = 0; true; counter++) {
+ String key = (counter > 0) ? uri + ":" + counter : uri;
+ if (!endpoints.containsKey(key)) {
+ return key;
+ }
+ }
+ }
+ }
+
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java?rev=746962&r1=746961&r2=746962&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java Mon Feb 23 11:20:39 2009
@@ -24,6 +24,7 @@
import org.apache.camel.Endpoint;
import org.apache.camel.Expression;
import org.apache.camel.NoSuchEndpointException;
+import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.Injector;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.Registry;
@@ -59,10 +60,6 @@
}
}
- public static String getEndpointKey(String uri, Endpoint ep) {
- return ep.isSingleton() ? uri : ("Ox" + Integer.toHexString(ep.hashCode()) + ":" + uri);
- }
-
/**
* Returns the mandatory endpoint for the given URI and type or the
* {@link org.apache.camel.NoSuchEndpointException} is thrown