You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by boday <bo...@vektrel.com> on 2009/12/15 02:15:46 UTC
start/stop routes programmatically
I see that Camel 2.1 now support starting/stopping routes via JMX/APIs. But,
how do I identify routes properly at runtime...
For example, assume I have the following route...
from("activemq:queue1").to("activemq:queue2");
from("activemq:queue2").to("activemq:queue3");
They show up in JMX as "route1" and "route2". The description/endpointURI
fields definitely help, but might be problematic to use when there are a lot
of routes.
The same applies to finding a routes with Camel APIs. I can get a list of
routes using this...
getContext().getRouteCollection().getRoutes()
I see that I can then call the following on a RouteDefinition to get to the
first endpoint name
routeDefinition.getInputs().get(0).getLabel()
I guess I could use this name to identify a route and then call
stop()/start() on it...but this seems like a very indirect approach to
identify it? Am I missing something?
What I'd like to do is give a route an explicit name that can be referenced
later (in JMX/programmatically)...maybe the DescriptionDefinition class
could help, but am not sure how to use it...
something along these lines is what I'm looking for...
setRouteName("InboundRoute").from("activemq:queue1").to("activemq:queue2");
setRouteName("ProcessingRoute").from("activemq:queue2").to("activemq:queue3");
thanks in advance...
-----
Ben - Senior Consultant
using SMX 3.3.1/Camel 2.0
--
View this message in context: http://old.nabble.com/start-stop-routes-programmatically-tp26781725p26781725.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: start/stop routes programmatically
Posted by Willem Jiang <wi...@gmail.com>.
Yes, supporting to set the route name would be very useful when you want
manage the route states from JMS or API.
I just created a JIRA[1] for it.
[1] https://issues.apache.org/activemq/browse/CAMEL-2290
Willem
boday wrote:
> I see that Camel 2.1 now support starting/stopping routes via JMX/APIs. But,
> how do I identify routes properly at runtime...
>
> For example, assume I have the following route...
>
> from("activemq:queue1").to("activemq:queue2");
> from("activemq:queue2").to("activemq:queue3");
>
> They show up in JMX as "route1" and "route2". The description/endpointURI
> fields definitely help, but might be problematic to use when there are a lot
> of routes.
>
> The same applies to finding a routes with Camel APIs. I can get a list of
> routes using this...
>
> getContext().getRouteCollection().getRoutes()
>
> I see that I can then call the following on a RouteDefinition to get to the
> first endpoint name
>
> routeDefinition.getInputs().get(0).getLabel()
>
> I guess I could use this name to identify a route and then call
> stop()/start() on it...but this seems like a very indirect approach to
> identify it? Am I missing something?
>
> What I'd like to do is give a route an explicit name that can be referenced
> later (in JMX/programmatically)...maybe the DescriptionDefinition class
> could help, but am not sure how to use it...
>
> something along these lines is what I'm looking for...
>
> setRouteName("InboundRoute").from("activemq:queue1").to("activemq:queue2");
> setRouteName("ProcessingRoute").from("activemq:queue2").to("activemq:queue3");
>
> thanks in advance...
>
>
>
>
>
>
> -----
> Ben - Senior Consultant
> using SMX 3.3.1/Camel 2.0
Re: start/stop routes programmatically
Posted by Jon Anstey <ja...@gmail.com>.
Ha! This must have changed since the last time I used it ;)
On Mon, Dec 14, 2009 at 11:15 PM, Willem Jiang <wi...@gmail.com>wrote:
> Hi Jon,
>
> After checking the code, I think the DSL should be
> from("activemq:queue1").routeId("InboundRoute").to("activemq:queue2");
> from("activemq:queue2").routeId("ProcessingRoute").to("activemq:queue3");
>
> Willem
>
>
> Jon Anstey wrote:
>
>> You can set custom ids for each route like this:
>>
>> from("activemq:queue1").id("InboundRoute").to("activemq:queue2");
>> from("activemq:queue2").id("ProcessingRoute").to("activemq:queue3");
>>
>> in the Spring DSL you can just use standard id attributes like:
>>
>> ...
>> <route id="InboundRoute">
>> ...
>>
>> On Mon, Dec 14, 2009 at 9:45 PM, boday <bo...@vektrel.com> wrote:
>>
>> I see that Camel 2.1 now support starting/stopping routes via JMX/APIs.
>>> But,
>>> how do I identify routes properly at runtime...
>>>
>>> For example, assume I have the following route...
>>>
>>> from("activemq:queue1").to("activemq:queue2");
>>> from("activemq:queue2").to("activemq:queue3");
>>>
>>> They show up in JMX as "route1" and "route2". The
>>> description/endpointURI
>>> fields definitely help, but might be problematic to use when there are a
>>> lot
>>> of routes.
>>>
>>> The same applies to finding a routes with Camel APIs. I can get a list
>>> of
>>> routes using this...
>>>
>>> getContext().getRouteCollection().getRoutes()
>>>
>>> I see that I can then call the following on a RouteDefinition to get to
>>> the
>>> first endpoint name
>>>
>>> routeDefinition.getInputs().get(0).getLabel()
>>>
>>> I guess I could use this name to identify a route and then call
>>> stop()/start() on it...but this seems like a very indirect approach to
>>> identify it? Am I missing something?
>>>
>>> What I'd like to do is give a route an explicit name that can be
>>> referenced
>>> later (in JMX/programmatically)...maybe the DescriptionDefinition class
>>> could help, but am not sure how to use it...
>>>
>>> something along these lines is what I'm looking for...
>>>
>>>
>>> setRouteName("InboundRoute").from("activemq:queue1").to("activemq:queue2");
>>>
>>>
>>> setRouteName("ProcessingRoute").from("activemq:queue2").to("activemq:queue3");
>>>
>>> thanks in advance...
>>>
>>>
>>>
>>>
>>>
>>>
>>> -----
>>> Ben - Senior Consultant
>>> using SMX 3.3.1/Camel 2.0
>>> --
>>> View this message in context:
>>>
>>> http://old.nabble.com/start-stop-routes-programmatically-tp26781725p26781725.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>>
>>
>>
>
--
Cheers,
Jon
Camel in Action: http://manning.com/ibsen
Blog: http://janstey.blogspot.com
Re: start/stop routes programmatically
Posted by boday <bo...@vektrel.com>.
perfect, that is what I was looking for...thanks guys
willem.jiang wrote:
>
> If you are using camel 2.0, you may need to use id() dsl,
> but for camel 2.1 you can use the routeId() dsl.
>
> You can find more information here[1]
>
> [1] https://issues.apache.org/activemq/browse/CAMEL-2109
>
> Willem
>
>
-----
Ben - Senior Consultant
using SMX 3.3.1/Camel 2.1
--
View this message in context: http://old.nabble.com/start-stop-routes-programmatically-tp26781725p26798471.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: start/stop routes programmatically
Posted by Willem Jiang <wi...@gmail.com>.
If you are using camel 2.0, you may need to use id() dsl,
but for camel 2.1 you can use the routeId() dsl.
You can find more information here[1]
[1] https://issues.apache.org/activemq/browse/CAMEL-2109
Willem
Willem Jiang wrote:
> Hi Jon,
>
> After checking the code, I think the DSL should be
> from("activemq:queue1").routeId("InboundRoute").to("activemq:queue2");
> from("activemq:queue2").routeId("ProcessingRoute").to("activemq:queue3");
>
> Willem
>
> Jon Anstey wrote:
>> You can set custom ids for each route like this:
>>
>> from("activemq:queue1").id("InboundRoute").to("activemq:queue2");
>> from("activemq:queue2").id("ProcessingRoute").to("activemq:queue3");
>>
>> in the Spring DSL you can just use standard id attributes like:
>>
>> ...
>> <route id="InboundRoute">
>> ...
>>
>> On Mon, Dec 14, 2009 at 9:45 PM, boday <bo...@vektrel.com> wrote:
>>
>>> I see that Camel 2.1 now support starting/stopping routes via JMX/APIs.
>>> But,
>>> how do I identify routes properly at runtime...
>>>
>>> For example, assume I have the following route...
>>>
>>> from("activemq:queue1").to("activemq:queue2");
>>> from("activemq:queue2").to("activemq:queue3");
>>>
>>> They show up in JMX as "route1" and "route2". The
>>> description/endpointURI
>>> fields definitely help, but might be problematic to use when there are a
>>> lot
>>> of routes.
>>>
>>> The same applies to finding a routes with Camel APIs. I can get a
>>> list of
>>> routes using this...
>>>
>>> getContext().getRouteCollection().getRoutes()
>>>
>>> I see that I can then call the following on a RouteDefinition to get
>>> to the
>>> first endpoint name
>>>
>>> routeDefinition.getInputs().get(0).getLabel()
>>>
>>> I guess I could use this name to identify a route and then call
>>> stop()/start() on it...but this seems like a very indirect approach to
>>> identify it? Am I missing something?
>>>
>>> What I'd like to do is give a route an explicit name that can be
>>> referenced
>>> later (in JMX/programmatically)...maybe the DescriptionDefinition class
>>> could help, but am not sure how to use it...
>>>
>>> something along these lines is what I'm looking for...
>>>
>>> setRouteName("InboundRoute").from("activemq:queue1").to("activemq:queue2");
>>>
>>>
>>> setRouteName("ProcessingRoute").from("activemq:queue2").to("activemq:queue3");
>>>
>>>
>>> thanks in advance...
>>>
>>>
>>>
>>>
>>>
>>>
>>> -----
>>> Ben - Senior Consultant
>>> using SMX 3.3.1/Camel 2.0
>>> --
>>> View this message in context:
>>> http://old.nabble.com/start-stop-routes-programmatically-tp26781725p26781725.html
>>>
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
>
Re: start/stop routes programmatically
Posted by Willem Jiang <wi...@gmail.com>.
Hi Jon,
After checking the code, I think the DSL should be
from("activemq:queue1").routeId("InboundRoute").to("activemq:queue2");
from("activemq:queue2").routeId("ProcessingRoute").to("activemq:queue3");
Willem
Jon Anstey wrote:
> You can set custom ids for each route like this:
>
> from("activemq:queue1").id("InboundRoute").to("activemq:queue2");
> from("activemq:queue2").id("ProcessingRoute").to("activemq:queue3");
>
> in the Spring DSL you can just use standard id attributes like:
>
> ...
> <route id="InboundRoute">
> ...
>
> On Mon, Dec 14, 2009 at 9:45 PM, boday <bo...@vektrel.com> wrote:
>
>> I see that Camel 2.1 now support starting/stopping routes via JMX/APIs.
>> But,
>> how do I identify routes properly at runtime...
>>
>> For example, assume I have the following route...
>>
>> from("activemq:queue1").to("activemq:queue2");
>> from("activemq:queue2").to("activemq:queue3");
>>
>> They show up in JMX as "route1" and "route2". The description/endpointURI
>> fields definitely help, but might be problematic to use when there are a
>> lot
>> of routes.
>>
>> The same applies to finding a routes with Camel APIs. I can get a list of
>> routes using this...
>>
>> getContext().getRouteCollection().getRoutes()
>>
>> I see that I can then call the following on a RouteDefinition to get to the
>> first endpoint name
>>
>> routeDefinition.getInputs().get(0).getLabel()
>>
>> I guess I could use this name to identify a route and then call
>> stop()/start() on it...but this seems like a very indirect approach to
>> identify it? Am I missing something?
>>
>> What I'd like to do is give a route an explicit name that can be referenced
>> later (in JMX/programmatically)...maybe the DescriptionDefinition class
>> could help, but am not sure how to use it...
>>
>> something along these lines is what I'm looking for...
>>
>> setRouteName("InboundRoute").from("activemq:queue1").to("activemq:queue2");
>>
>> setRouteName("ProcessingRoute").from("activemq:queue2").to("activemq:queue3");
>>
>> thanks in advance...
>>
>>
>>
>>
>>
>>
>> -----
>> Ben - Senior Consultant
>> using SMX 3.3.1/Camel 2.0
>> --
>> View this message in context:
>> http://old.nabble.com/start-stop-routes-programmatically-tp26781725p26781725.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>
>
Re: start/stop routes programmatically
Posted by Jon Anstey <ja...@gmail.com>.
You can set custom ids for each route like this:
from("activemq:queue1").id("InboundRoute").to("activemq:queue2");
from("activemq:queue2").id("ProcessingRoute").to("activemq:queue3");
in the Spring DSL you can just use standard id attributes like:
...
<route id="InboundRoute">
...
On Mon, Dec 14, 2009 at 9:45 PM, boday <bo...@vektrel.com> wrote:
>
> I see that Camel 2.1 now support starting/stopping routes via JMX/APIs.
> But,
> how do I identify routes properly at runtime...
>
> For example, assume I have the following route...
>
> from("activemq:queue1").to("activemq:queue2");
> from("activemq:queue2").to("activemq:queue3");
>
> They show up in JMX as "route1" and "route2". The description/endpointURI
> fields definitely help, but might be problematic to use when there are a
> lot
> of routes.
>
> The same applies to finding a routes with Camel APIs. I can get a list of
> routes using this...
>
> getContext().getRouteCollection().getRoutes()
>
> I see that I can then call the following on a RouteDefinition to get to the
> first endpoint name
>
> routeDefinition.getInputs().get(0).getLabel()
>
> I guess I could use this name to identify a route and then call
> stop()/start() on it...but this seems like a very indirect approach to
> identify it? Am I missing something?
>
> What I'd like to do is give a route an explicit name that can be referenced
> later (in JMX/programmatically)...maybe the DescriptionDefinition class
> could help, but am not sure how to use it...
>
> something along these lines is what I'm looking for...
>
> setRouteName("InboundRoute").from("activemq:queue1").to("activemq:queue2");
>
> setRouteName("ProcessingRoute").from("activemq:queue2").to("activemq:queue3");
>
> thanks in advance...
>
>
>
>
>
>
> -----
> Ben - Senior Consultant
> using SMX 3.3.1/Camel 2.0
> --
> View this message in context:
> http://old.nabble.com/start-stop-routes-programmatically-tp26781725p26781725.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
--
Cheers,
Jon
Camel in Action: http://manning.com/ibsen
Blog: http://janstey.blogspot.com