Hi,

Osgiliath enterprise framework is using a combination of camel-cdi and
pax-cdi: it works pretty well ;).

Please take a look at this integration test module:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent/tree/master/net.osgiliath.framework/net.osgiliath.features/net.osgiliath.features.itests/net.osgiliath.feature.itest.messaging

Regards,


2016-08-22 17:26 GMT+02:00 Brad Johnson <brad.john...@mediadriver.com>:

> That's what gets a bit confusing about it all.  I'm coming from Blueprint
> which I've used for a few years now and very much like the automated wiring
> provided by CDI and especially the ease of testing.  But as I read about DS
> and CDI it gets a bit confusing.  Camel SCR probably can't work with CDI
> since it overrides an AbstractCamelRunner which requires route builder set
> up but CDI would likely bootstrap those routes.  I don't find not being
> able to use SCR a big loss however.
>
> At this point even if I had to give up exporting services into the OSGi
> registry I'd probably live with it and simple use routes for integration.
> But working with the Camel CDI in 2.17 it is based on Weld, which is fine,
> and not on PAX CDI so as you point out the OSGi service annotations aren't
> there.  Which sort of anticipated the question I had this week end about
> whether or not those would be ported. So my dependencies look like this:
> <properties>
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
> <!-- <camel.version>2.15.1.redhat-621084</camel.version> -->
> <camel.version>2.17.3</camel.version>
> <cdi.version>1.2</cdi.version>
> <src.version>1.8</src.version>
>
> </properties>
> <dependency>
> <groupId>javax.enterprise</groupId>
> <artifactId>cdi-api</artifactId>
> <version>${cdi.version}</version>
> </dependency>
> <dependency>
> <groupId>org.apache.camel</groupId>
> <artifactId>camel-cdi</artifactId>
> <version>${camel.version}</version>
> </dependency>
>
> So then I'm rummaging around trying to figure out how this is going to work
> in the OSGi environment (Fuse 6.3 is pregnant and ready to drop an M1 soon
> I think).  The only difference I can really see there is that the
> camel-example-cdi-osgi also contains the basic OSGi pieces as provided and
> uses Pax Exam for tests.  I think Pax Exam is fine for integration testing
> but for basic unit tests it is a bit heavyweight and I'd prefer the Camel
> CDI test runner even if I have to mock external services.
>
>     <!-- OSGi API -->
>     <dependency>
>       <groupId>org.osgi</groupId>
>       <artifactId>org.osgi.core</artifactId>
>       <scope>provided</scope>
>     </dependency>
>     <dependency>
>       <groupId>org.osgi</groupId>
>       <artifactId>org.osgi.compendium</artifactId>
>       <scope>provided</scope>
>     </dependency>
>
> When I look at straight DS it gets even more of head scratcher with the
> OSGi alliance seeming to push the Bnd Tools.
>
> I had noticed Guillaume's pax.cdi as well but wasn't really sure how that
> was going to fit in. Is that something would be added as a
> dependency/installed as a feature in addition to camel-cdi?
>
> Thanks for the feedback,
> Brad
>
> On Mon, Aug 22, 2016 at 10:08 AM, Antonin Stefanutti <
> anto...@stefanutti.fr>
> wrote:
>
> > Hi Brad,
> >
> > I’ve been working on Camel CDI in OSGi for a while and have ported my
> > original samples to be tested in Karaf, which can be found in [1]. These
> > samples exercise the portability of Camel CDI examples on OSGi, thus do
> not
> > leverage the SCR equivalent annotations that PAX CDI provides. So the
> > objective here was to prove technically the portability of "plain" Camel
> > CDI applications on OSGi. The main outcome has been captured in [2],
> which
> > highlights the difficulty to make the CDI implementations subclass
> proxying
> > mechanism working seamlessly in a class loader constrained environment
> such
> > as OSGi.
> >
> > Then, from the functional standpoint, Guillaume Nodet has been working
> > lately on improving the SCR-like annotation support [3]. Though I haven’t
> > found the time yet to test it with Camel CDI in particular.
> >
> > [1]: https://github.com/astefanutti/camel-cdi/tree/
> > master/envs/osgi/src/test/java/org/apache/camel/cdi/osgi
> > [2]: https://github.com/ops4j/org.ops4j.pax.cdi/pull/30
> > [3]: https://github.com/ops4j/org.ops4j.pax.cdi/tree/master/pax-
> > cdi-api/src/main/java/org/ops4j/pax/cdi/api
> >
> > Antonin
> >
> > > On 22 Aug 2016, at 16:33, Brad Johnson <brad.john...@mediadriver.com>
> > wrote:
> > >
> > > Has anyone used Camel CDI in an OSGi environment?  Does it work well or
> > at
> > > least OK there?
> > >
> > > Brad
> >
> >
>



-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Reply via email to