[
https://issues.apache.org/jira/browse/KARAF-5020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bob Blackard updated KARAF-5020:
--------------------------------
Attachment: camel-osgi-cdi.zip
Maven project I'm trying to install in ServiceMix/Karaf. A full karaf.log is
included, as is a full bundle list and camel:context-list from Karaf Console.
> Unable to successfully start the simplest Camel CDI route in Karaf 4.1.0 or
> ServiceMix 7.0.0 (Karaf 4.0.8)
> ----------------------------------------------------------------------------------------------------------
>
> Key: KARAF-5020
> URL: https://issues.apache.org/jira/browse/KARAF-5020
> Project: Karaf
> Issue Type: Question
> Affects Versions: 4.1.0, 4.0.8
> Environment: Windows 10 and CentOS 7.3; Oracle Java 8
> Reporter: Bob Blackard
> Attachments: camel-osgi-cdi.zip
>
>
> I've been trying without success to build and deploy a simple route with
> Camel and CDI. I'm focused on deploying to ServiceMix 7.0.0, but have also
> tried this on a plane jane Karaf 4.1.0 and get precisely the same results.
> I built a very simple route based on the Camel CDI examples from both 2.16.4
> and 2.18.2. I'm excluding some of the testing stuff for now, just trying to
> get things to work when I deploy it in Karaf/ServiceMix.
> My RouteBuilder is:
> {code}
> public class DemoRouteBuilder extends RouteBuilder {
> Logger log = LoggerFactory.getLogger(DemoRouteBuilder.class);
> @Override
> public void configure() {
> log.info("Starting demo CDI route");
> from("timer://cdiTimer?period=5000")
> .routeId("com.omniprise.demo.cdi.route")
> .to("log:com.omniprise..demo.cdi.context")
> .to("mock:end");
> }
> }
> {code}
> I also have the requisite and content in my POM:
> {code}
> <Export-Package>com.omniprise.demo.cdi.builder</Export-Package>
> <Import-Package>*</Import-Package>
> <Require-Capability>
> osgi.extender; filter:="(osgi.extender=pax.cdi)",
> org.ops4j.pax.cdi.extension;
> filter:="(extension=camel-cdi-extension)"
> </Require-Capability>
> {code}
> Complete Java and POM code will be attached.
> Note that the camel-cdi feature will fail to install on ServiceMix 7.0.0 due
> to dependency conflicts:
> * ServiceMix 7.0.0 is using Camel 2.16.4
> * camel-cdi in 2.16.4 is looking for DeltaSpike [1.5.0,2.0)
> * camel-cdi in 2.16.4 is looking for pax-cdi 1.0.0.RC1
> * pax-cdi installs DeltaSpike 1.3.1
> * ... therefore a unresolved dependency error occurs if all that is done is:
> {code}
> feature:install pax-cdi pax-cdi-weld camel-cdi
> {code}
> Similar issues exist with newer versions of Camel as well when deploying into
> Karaf 4.1.0.
> Note, too, that even with the inclusion of updated DeltaSpike libraries,
> errors occur with pax-cdi 1.0.0.RC1, possibly due to an issue with Blueprint
> proxies.
> Therefore, these instructions install pax-cdi 1.0.0.RC2 and the latest
> DeltaSpike 1.7.2, along with camel-cdi (2.16.4 for ServiceMix 7.0.0 and
> 2.18.2 for Karaf 4.1.0).
> h2. To install and run in ServiceMix 7.0.0 (Karaf 4.0.8, Camel 2.16.4)
> Start ServiceMix, connect to Karaf Console and install:
> {code}
> feature:repo-add mvn:org.ops4j.pax.cdi/pax-cdi-features/1.0.0.RC2/xml/features
> install mvn:org.apache.deltaspike.core/deltaspike-core-api/1.7.2
> install mvn:org.apache.deltaspike.core/deltaspike-core-impl/1.7.2
> feature:install pax-cdi/1.0.0.RC2
> feature:install pax-cdi-weld/1.0.0.RC2
> feature:install camel-cdi
> install -s mvn:com.omniprise.demo/camel-osgi-cdi/0.0.1-SNAPSHOT
> {code}
> h2. To install and run in a plain jane Karaf 4.x environment (Camel 2.18.2)
> Start Karaf, connect to Karaf Console and install:
> {code}
> feature:repo-add mvn:org.apache.camel.karaf/apache-camel/2.18.2/xml/features
> feature:repo-add mvn:org.ops4j.pax.cdi/pax-cdi-features/1.0.0.RC2/xml/features
> install mvn:org.apache.deltaspike.core/deltaspike-core-api/1.7.2
> install mvn:org.apache.deltaspike.core/deltaspike-core-impl/1.7.2
> feature:install pax-cdi/1.0.0.RC2
> feature:install pax-cdi-weld/1.0.0.RC2
> feature:install camel/2.18.2
> feature:install camel-blueprint/2.18.2
> feature:install camel-cdi/2.18.2
> install -s mvn:com.omniprise.demo/camel-osgi-cdi/0.0.1-SNAPSHOT
> {code}
> In both cases, the packages are all installed and listed as running, but the
> Camel Context isn't started:
> {code}
> 70 | Active | 80 | 1.0.0.RC2 | OPS4J Pax CDI Bean Bundle API
> 71 | Active | 80 | 1.0.0.RC2 | OPS4J Pax CDI Extender for Bean
> Bundles
> 72 | Active | 80 | 1.0.0.RC2 | OPS4J Pax CDI Portable Extension for
> OSGi
> 73 | Active | 80 | 1.0.0.RC2 | OPS4J Pax CDI Service Provider
> Interface
> 74 | Active | 80 | 1.0.0.RC2 | OPS4J Pax CDI Weld Adapter
> ... content removed for brevity
> 83 | Active | 50 | 2.18.2 | camel-cdi
> ... content removed for brevity
> 92 | Active | 80 | 1.8.1 | OPS4J Pax Swissbox :: Tracker
> 93 | Active | 80 | 0.0.1.SNAPSHOT | Camel CDI OSGi Demo
> addmin@root()> camel:context-list
> addmin@root()>
> {code}
> The is only one error in the log associated with camel-cdi installing pax-cdi
> 1.0.0.RC1 even though pax-cdi 1.0.0.RC2 is already present, and therefore a
> CDI provider is already registered. At the end of the log, it is clear that
> the CDI binding is starting up, but there is no Context created, and the
> Route isn't producing messages - there's nothing indicating there was a
> problem finding the RouteBuilder or starting it:
> {code}
> 2017-03-08T15:50:24,568 | INFO | pipe-feature:install camel-blueprint/2.18.2
> | CdiExtender | 71 - org.ops4j.pax.cdi.extender -
> 1.0.0.RC2 | creating CDI container for bean bundle camel-osgi-cdi [93] with
> extension bundles [org.apache.camel.camel-cdi [83]]
> 2017-03-08T15:50:24,575 | INFO | pipe-feature:install camel-blueprint/2.18.2
> | AbstractCdiContainer | 73 - org.ops4j.pax.cdi.spi - 1.0.0.RC2 |
> Starting CDI container for bundle camel-osgi-cdi [93]
> 2017-03-08T15:50:24,598 | INFO | pipe-feature:install camel-blueprint/2.18.2
> | Version | 69 - org.jboss.weld.osgi-bundle -
> 2.3.5.Final | WELD-000900: 2.3.5 (Final)
> 2017-03-08T15:50:24,745 | INFO | pipe-feature:install camel-blueprint/2.18.2
> | Bootstrap | 69 - org.jboss.weld.osgi-bundle -
> 2.3.5.Final | WELD-000101: Transactional services not available. Injection of
> @Inject UserTransaction not available. Transactional observers will be
> invoked synchronously.
> 2017-03-08T15:50:24,810 | WARN | pipe-feature:install camel-blueprint/2.18.2
> | Interceptor | 69 - org.jboss.weld.osgi-bundle -
> 2.3.5.Final | WELD-001700: Interceptor annotation class
> javax.ejb.PostActivate not found, interception based on it is not enabled
> 2017-03-08T15:50:24,811 | WARN | pipe-feature:install camel-blueprint/2.18.2
> | Interceptor | 69 - org.jboss.weld.osgi-bundle -
> 2.3.5.Final | WELD-001700: Interceptor annotation class
> javax.ejb.PrePassivate not found, interception based on it is not enabled
> 2017-03-08T15:50:24,938 | INFO | pipe-feature:install camel-blueprint/2.18.2
> | Event
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)