Cool.  Thanks. That's perfect.

Brad

On Mon, Aug 22, 2016 at 10:22 AM, Antonin Stefanutti <anto...@stefanutti.fr>
wrote:

> Hi Brad,
>
> > On 21 Aug 2016, at 07:07, Brad Johnson <brad.john...@mediadriver.com>
> wrote:
> >
> > When I look at the example provided I'm not entirely sure if I'm
> > understanding how the CDI OSGi service mechanics work.
> >
> >    @Produces
> >    @Named("sjms")
> >    @ApplicationScoped
> > SjmsComponent sjms()
> >
> > I gather because it is ApplicationScoped that gets exported via the OSGi
> > service registry? But it is also a Camel component which may have other
> in
> > built mechanisms that might be required. If it isn't ApplicationScoped
> does
> > it stay private to the bundle using it?  I'm thinking of properties for
> > example which might have their own configurations per bundle that one
> > doesn't want being exported to the world.
>
> The @ApplicationScoped scope does not mean the bean gets exported into the
> OSGi service registry. In that case, it’s the Camel registry that is
> specifically wrapped in OSGi environments so that Camel components get
> exported to and can be looked up from the OSGi service registry.
>
> So the CDI beans are within the scope of the bundle, as there is one CDI
> container started per bundle which requires the CDI capability.
>
> > If I have an interface like PaypalService and then a concrete
> > implementation of that called PayPalImpl, would this work to export the
> > service to the OSGi service registry?
> >
> >    @Produces
> >    @Named("paypal")
> >    @ApplicationScoped
> > PayPal paypal() {
> > //Disregarding any special setup...
> >  return new PayPalImpl();
> > }
>
> It won’t be exported in the OSGi service registry.
>
> > Or would that PayPalImpl have to extend a CamelComponent to get that
> > behaviour?
>
> To get the PayPal service exported in the OSGi service registry, you could
> rely on the @OsgiServiceProvider qualifier that’s provided by the PAX CDI
> API (https://github.com/ops4j/org.ops4j.pax.cdi/tree/master/pax-
> cdi-api/src/main/java/org/ops4j/pax/cdi/api).
>
> Antonin
>
>

Reply via email to