Thanks Claus,
This example is very helpful, I am still running into a bit of an issues.
Here is my createRouteBuilder() method ( combined JmsSelectorTest and
JmsSelectorInTest ) :
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
JmsEndpoint endpoint = context.getEndpoint("activemq:test.b",
JmsEndpoint.class);
endpoint.setSelector("selector=cheese='y'");
from("activemq:test.a").to("activemq:test.b");
//
from("activemq:test.b?selector=cheese='y'").to("mock:result");
from(endpoint).routeId("route-b").to("mock:result");
from("activemq:test.c").process(new Processor() {
@Override
public void process(Exchange arg0) throws Exception {
//==================================================
//
// I want to change selector on an endpoint at run
time
// does it require an endpoint restart ?
//==================================================
CamelContext ctx = getContext();
Route rt = ctx.getRoute("route-b");
JmsEndpoint endpoint = (JmsEndpoint) rt.getEndpoint();
endpoint.setSelector("cheese IN ('x', 'n')");
}
}).to("activemq:test.b");
}
};
}
I noticed that if I define the selector as part of the uri every thing works,
but I want to dynamically change the selector at runtime. Let me know if I am
doing something wrong here.
Thanks
Kal
On Sep 27, 2011, at 8:09 AM, Claus Ibsen-2 [via Camel] wrote:
> Hi
>
> I created an unit test which you can take a look at. It uses the IN selector
> http://svn.apache.org/viewvc?rev=1176348&view=rev
>
> On Tue, Sep 27, 2011 at 1:58 PM, Claus Ibsen <[hidden email]> wrote:
>
> > On Mon, Sep 26, 2011 at 6:05 PM, kal2420 <[hidden email]> wrote:
> >> Thanks Claus,
> >>
> >> I got busy with work, and I am just getting back to camel. I did try
> >> looking into event-driven-consusmer, What i really want is to configure
> >> dynamic selector on activemq queue. Here is how I am trying to configure
> >> dynamic selector, please tell me if this is correct:
> >>
> >> // once all routes are up and running
> >> // set selector on jms endpoint
> >> CamelContext ctx = getContext();
> >> JmsEndpoint endpoint =
> >> ctx.getEndpoint("activemq://queue:test-1",JmsEndpoint.class);
> >> // String selector = "userid='test12'"; // also tried with %3D url
> >> format
> >> String selector = "userid IN ('test12' , 'terst234');
> >> endpoint.setSelector(selector);
> >>
> >
> > So you have a route with that particular endpoint
> > from(endpoint).to("xxx")
> >
> >
> > The selector should use a SQL like syntax. I actually do not know if
> > ActiveMQ has an logging to WARN/ERROR level
> > if the syntax is invalid.
> >
> >
> >
> >> Issue: I am seeing all messages being processed, while i only want to
> >> process messages where i have userid header value set to 'test12' or
> >> 'terst234'
> >>
> >> Thanks
> >> Kal
> >>
> >> --
> >> View this message in context:
> >> http://camel.465427.n5.nabble.com/Activemq-dynamic-endpoint-configuration-tp4749853p4841926.html
> >> Sent from the Camel - Users mailing list archive at Nabble.com.
> >>
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > FuseSource
> > Email: [hidden email]
> > Web: http://fusesource.com
> > Twitter: davsclaus, fusenews
> > Blog: http://davsclaus.blogspot.com/
> > Author of Camel in Action: http://www.manning.com/ibsen/
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: [hidden email]
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>
>
> If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/Activemq-dynamic-endpoint-configuration-tp4749853p4845119.html
> To unsubscribe from Activemq dynamic endpoint configuration, click here.
--
View this message in context:
http://camel.465427.n5.nabble.com/Activemq-dynamic-endpoint-configuration-tp4749853p4847785.html
Sent from the Camel - Users mailing list archive at Nabble.com.