Author: hadrian
Date: Mon Feb 6 21:59:55 2012
New Revision: 1241204
URL: http://svn.apache.org/viewvc?rev=1241204&view=rev
Log:
CAMEL-4976. Properly remove all endpoints matching a given pattern
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
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=1241204&r1=1241203&r2=1241204&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 6 21:59:55 2012
@@ -393,13 +393,15 @@ public class DefaultCamelContext extends
for (Map.Entry<EndpointKey, Endpoint> entry :
endpoints.entrySet()) {
oldEndpoint = entry.getValue();
if (EndpointHelper.matchEndpoint(oldEndpoint.getEndpointUri(),
uri)) {
- answer.add(oldEndpoint);
- stopServices(oldEndpoint);
+ try {
+ stopServices(oldEndpoint);
+ answer.add(oldEndpoint);
+ endpoints.remove(entry.getKey());
+ } catch (Exception e) {
+ log.warn("Endpoint '{}' matching pattern '{}' should
be removed, but could not be stopped. Remove ignored...");
+ }
}
}
- for (Endpoint endpoint : answer) {
- endpoints.remove(getEndpointKey(endpoint.getEndpointUri()));
- }
}
// notify lifecycle its being removed
Modified:
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java?rev=1241204&r1=1241203&r2=1241204&view=diff
==============================================================================
---
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
(original)
+++
camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
Mon Feb 6 21:59:55 2012
@@ -44,10 +44,7 @@ public class RemoveEndpointsTest extends
Collection<Endpoint> list = context.removeEndpoints("*");
assertEquals(7, list.size()); // all have been removed
-
- // TODO: [CAMEL-4976] the following fails, but it should pass
- // assertEquals(0, context.getEndpoints().size());
- // assertNull(context.hasEndpoint("jms://topic:bar"));
+ assertEquals(0, context.getEndpoints().size());
}
@Override