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.
> > > >>>>
> > > >>>>
> > > >>>
> > > >>
> > >
> > >
> >
>

Reply via email to