John, Thank you very much for your advise. It is a good resource.
-- Best Regards, Charlee Ch. 2016-03-25 8:43 GMT+07:00 John D. Ament <johndam...@apache.org>: > Charlee, > > One thing to point out. If you find that you're adding a lot of routes > based on the same format, you may want to use dynamic URIs instead. > > http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html > > John > > On Thu, Mar 24, 2016 at 9:26 PM Charlee Chitsuk <charlee...@gmail.com> > wrote: > > > Hi Antonin and John, > > > > As you have mentioned, both of RouteBuilder readability and using the > Camel > > CDI capability for looking up them automatically is valuable. I've to > think > > twice if it is worth to re-factor or not. > > > > Thank you very much for your advise. > > > > -- > > Best Regards, > > > > Charlee Ch. > > > > 2016-03-24 19:59 GMT+07:00 Antonin Stefanutti <anto...@stefanutti.fr>: > > > > > > > > > On 24 Mar 2016, at 12:47, Charlee Chitsuk <charlee...@gmail.com> > > wrote: > > > > > > > > My project is based on CDI and Camel-CDI. I've tried to reduce the > some > > > of > > > > "similar" RouteBuilder concrete classes by making it to receive the > > > > different parameter, e.g source and destination. I'm not sure if > > > > registering manually is a suitable way or not. > > > > > > In the 'nominal' use cases, you would let the Camel CDI extension do > the > > > auto-configuration of your Camel context. However, you can still do > some > > > more configuration ‘manually'. > > > > > > In your case, I understand you’ve tried to factorise some route > > > definitions into some sort of templates. > > > > > > For example: > > > > > > if you have two routes: > > > from("direct:in1").routeId("route1").to("direct:out1"); > > > from("direct:in2").routeId(“route2").to("direct:out2"); > > > > > > You’ve tried to parameterised it to have a single reusable route. > > > > > > IMO, the Camel DSL is so compact that the duplication is so little that > > > it’s not always worth the factorisation effort. And often the > readability > > > is better as you don’t have to understand the parametrisation when > > reading > > > the code. > > > > > > Still if you think that is a better approach for you use case, indeed, > > you > > > can declare a RouteBuilder bean @Dependent, having it parameterised > > > depending for example on the InjectionPoint metadata and add these > > > parameterised instances to the Camel context manually. > > > > > > Antonin > > > > > > > -- > > > > Best Regards, > > > > > > > > Charlee Ch > > > > > > > > 2016-03-24 18:30 GMT+07:00 John D. Ament <johndam...@apache.org>: > > > > > > > >> On Thu, Mar 24, 2016 at 7:29 AM Charlee Chitsuk < > charlee...@gmail.com > > > > > > >> wrote: > > > >> > > > >>> Hi Antonin, > > > >>> > > > >>> Thank you very much. This answer my question. > > > >>> > > > >>> Please correct me if I'm wrong. Since it is a @Dependent, I can > > > register > > > >>> the new instance (with different route-id and parameters) to the > > > context > > > >> as > > > >>> much as possible. Cloud you please help to advise further? > > > >>> > > > >> > > > >> Well if you're doing manual registration, then you're not using the > > > Camel > > > >> CDI capability of looking up your route builders automatically. > > > >> > > > >> > > > >>> > > > >>> -- > > > >>> Best Regards, > > > >>> > > > >>> Charlee Ch. > > > >>> > > > >>> 2016-03-24 15:20 GMT+07:00 Antonin Stefanutti < > anto...@stefanutti.fr > > >: > > > >>> > > > >>>> Hi Charlee, > > > >>>> > > > >>>> There is actually no constraint on the scope to declare for the > > > >>>> RouteBuilder beans that are discovered by Camel CDI. > > > >>>> > > > >>>> Camel CDI just gets one instance for each of them at start time > and > > > >> adds > > > >>>> this to the Camel context. So that will equally work whether a > > > >>> RouteBuilder > > > >>>> is @Dependent or @AppplicationScoped generally. > > > >>>> > > > >>>> So that’s up to the developer to decide what’s the best scope > > > depending > > > >>> on > > > >>>> its need. Obviously, if the RouteBuilder instance needs to be > shared > > > >>>> somehow, then it needs to be @ApplicationScoped. > > > >>>> > > > >>>> I’ll mention that to the documentation if that answers your > > question. > > > >>>> > > > >>>> Antonin > > > >>>> > > > >>>>> On 24 Mar 2016, at 06:49, Charlee Chitsuk <charlee...@gmail.com> > > > >>> wrote: > > > >>>>> > > > >>>>> Hi, > > > >>>>> > > > >>>>> Regarding to the Camel CDI [1] which mentions that it provides > > > >>>>> the Auto-detecting Camel routes. I would like to know what the > CDI > > > >>> scope > > > >>>> of > > > >>>>> that RouteBuilder is. Is it @ApplicationScoped? > > > >>>>> > > > >>>>> > > > >>>>> [1] http://camel.apache.org/cdi.html > > > >>>>> > > > >>>>> -- > > > >>>>> Best Regards, > > > >>>>> > > > >>>>> Charlee Ch. > > > >>>> > > > >>>> > > > >>> > > > >> > > > > > > > > >