Author: ningjiang
Date: Tue Feb 24 02:44:17 2009
New Revision: 747264
URL: http://svn.apache.org/viewvc?rev=747264&view=rev
Log:
Merged revisions 746962 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r746962 | jstrachan | 2009-02-23 19:20:39 +0800 (Mon, 23 Feb 2009) | 1 line
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/branches/camel-1.x/ (props changed)
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb 24 02:44:17 2009
@@ -1 +1 @@
-/camel/trunk:739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,747258
+/camel/trunk:739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=747264&r1=747263&r2=747264&view=diff
==============================================================================
---
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java
(original)
+++
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java
Tue Feb 24 02:44:17 2009
@@ -126,6 +126,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/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=747264&r1=747263&r2=747264&view=diff
==============================================================================
---
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
(original)
+++
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
Tue Feb 24 02:44:17 2009
@@ -239,6 +239,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;
@@ -274,7 +280,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);
}
@@ -343,7 +349,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) {
@@ -797,4 +803,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/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java?rev=747264&r1=747263&r2=747264&view=diff
==============================================================================
---
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
(original)
+++
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
Tue Feb 24 02:44:17 2009
@@ -25,6 +25,7 @@
import org.apache.camel.Exchange;
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;
@@ -58,10 +59,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