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