camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Willem Jiang (Commented) (JIRA)" <>
Subject [jira] [Commented] (CAMEL-4790) Using the CamelContext.stopRoute(routeId) should not remove the route from context
Date Sun, 18 Dec 2011 00:51:30 GMT


Willem Jiang commented on CAMEL-4790:

Hi Christian

I was planing to send a mail for the second unit test but it takes me too much time to merge
the patch due to the network issue.

Here is my explanation for it, because Camel is using the RouteService to delegate the life
cycle invocation, it is also in charge of do some clean up work with the CamelContext. If
you just stop the route directly without through the CamelContext API, you will face a issue
that the RouteService can not has the same status of the Route.
So my suggestion is you should use the CamelContext API instead of stop the route directly.

We should consider not expose the Route itself to client to use in Camel 3.0.

> Using the CamelContext.stopRoute(routeId) should not remove the route from context
> ----------------------------------------------------------------------------------
>                 Key: CAMEL-4790
>                 URL:
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.8.3
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: 2.8.4, 2.9.0
> Christian reported a camel route stop issue few months ago[1], I found this bug by running
the unit test he submit.
> {code}
> public class RouteRemoveTest extends ContextTestSupport {
> +    public void testStopRouteOnContext() throws Exception {
> +        assertEquals(ServiceStatus.Started, ((DefaultRoute) context.getRoute("foo")).getStatus());
> +        assertEquals(ServiceStatus.Started, context.getRouteStatus("foo"));
> +        
> +        context.stopRoute("foo");
> +        
> +        assertEquals(ServiceStatus.Stopped, ((DefaultRoute) context.getRoute("foo")).getStatus());
> +        assertEquals(ServiceStatus.Stopped, context.getRouteStatus("foo"));
> +    }
> {code}
> The route foo should not be removed from the camelContext.
> [1]

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message