It's not an obvious how to OSGI-fy something :) I did some homework - now I have OSGi-ified versions of drools-spring and drools-camel. Also I created own bundle and tried to import KnowledgeBaseFactoryService, ServiceRegistry and KnowledgeBaseFactoryService as described in http://docs.jboss.org/jbpm/v5.2/userguide/ch18.html#d0e4308. All what I got - NullPointerException from karaf core (haven't gotten full staketrace yet. For some reason it is just: 15:11:34,484 | INFO | l Console Thread | Console | ? ? | 34 - org.apache.karaf.shell.console - 2.2.2.fuse-02-13 | Exception caught while executing command java.lang.NullPointerException )
So, I spent some time randomly adding and removing configuration params and I found - NPE occurs when I'm trying to import org.drools.KnowledgeBaseFactoryService. I guess (i'm not OSGI expert) it could be because org.drools package is exported in 2! bundles. It is in drools-core and knowledge-api bundles. And I guess, karaf container just can't link my bundle with both core and api, only first bundle which contains requested package (org.drools) wins. Any ideas on how to make it work? I actually have one - every bundle should export own package. For knowledge-api it should be org.drools.api, and org.drools.core for drools-core. Here is full log of similar packages: WARNING: multiple bundles are exporting package org.drools.command - org.drools.core [218] - org.drools.api [216] - org.drools.internalapi [217] WARNING: multiple bundles are exporting package org.drools.runtime.process - org.drools.core [218] - org.drools.api [216] WARNING: multiple bundles are exporting package org.drools.time - org.drools.core [218] - org.drools.api [216] WARNING: multiple bundles are exporting package org.apache.geronimo.transaction - org.apache.aries.transaction.manager [123] - org.apache.aries.transaction.manager [51] WARNING: multiple bundles are exporting package org.drools - org.drools.core [218] - org.drools.api [216] WARNING: multiple bundles are exporting package org.apache.geronimo.transaction.manager - org.apache.aries.transaction.manager [123] - org.apache.aries.transaction.manager [51] WARNING: multiple bundles are exporting package org.drools.grid - org.drools.core [218] - org.drools.spring [220] WARNING: multiple bundles are exporting package jline - org.apache.servicemix.bundles.jruby [210] - org.apache.karaf.shell.console [34] WARNING: multiple bundles are exporting package org.apache.geronimo.transaction.log - org.apache.aries.transaction.manager [123] - org.apache.aries.transaction.manager [51] WARNING: multiple bundles are exporting package org.drools.management - org.drools.core [218] - org.drools.api [216] WARNING: multiple bundles are exporting package org.drools.agent - org.drools.core [218] - org.drools.api [216] WARNING: multiple bundles are exporting package org.drools.event - org.drools.core [218] - org.drools.api [216] 2012/2/3 Mark Proctor <mproc...@codehaus.org> > neither spring or camel have been OSGi-ified. only api, core, compiler, > templates, decision-tables and flow have. > > If someone wants to OSGi-ify those and contribute back they are very > welcome: > 1) update the pom.xml to use the osgi bundle plugin, see other existing > poms. > > https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/pom.xml > 2) create an Activator to register the module, again see Activator's for > core, compiler etc. > > https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java > 3) update the osgi bundle's pom with new dependencies, make sure to pull > in the spring ones, unless the actual project provides osgi ready jars. > > https://github.com/droolsjbpm/droolsjbpm-build-distribution/tree/master/drools-osgi-bundles > 4) Update the boot-bundles.properties so that Spring DM loads the OSGi > dependencies > > https://github.com/droolsjbpm/droolsjbpm-build-distribution/blob/master/drools-osgi-bundles/org.drools.osgi.test/src/test/filtered-resources/boot-bundles.properties > 5) write unit tests for spring and camel. > > Mark > On 03/02/2012 03:47, Alexander Filipchik wrote: > > Hello all! > > Don't know if it is right list to ask, but I'm trying to make drools + > camel running on Fuse (ServiceMix container). > I couldn't even install OSGI drools artifacts for 5.3.1 version (because > of weird dependency on drools.core Snapshot), > but did it with v5.2.1. I used: > > mvel2/2.1.0, > org.drools/drools-core/5.2.1.Final, org.drools/drools-compiler/5.2.1.Final, > org.drools/knowledge-api/5.2.1.Final > and org.drools/drools-camel/5.2.1.Final. > > All are installed and active. Part of log: > > [ 162] [Active ] [ ] [ ] [ 60] Drools :: Compiler > (5.2.1.Final) > > [ 163] [Active ] [ ] [ ] [ 60] mvel2 (2.1.0.drools4) > > [ 164] [Active ] [ ] [ ] [ 60] Drools :: Core > (5.2.1.Final) > > [ 165] [Active ] [ ] [ ] [ 60] Knowledge API > (5.2.1.Final) > > [ 172] [Active ] [ ] [ ] [ 60] > mvn:org.drools/drools-camel/5.2.1.Final > > Then I tried to add my own camel-drools router (I created OSGI bundle for > it). It depends on: > > Import-Package: > org.apache.activemq,org.apache.activemq.camel.component,org.apache.activemq.pool,org.apache.camel;version="[2.8,3)",org.apache.camel.builder;version="[2.8,3)",org.apache.camel.component.jms;version="[2.8,3)",org.apache.camel.model;version="[2.8,3)",org.drools.camel.component,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",org.springframework.transaction;version="[3,4)" > > It tried to install it to a container but all I got - > > Error executing command: Unresolved constraint in bundle > com.betfair.drools [170]: Unable to resolve 170.0: missing requirement > [170.0] package; (package=org.drools.camel.component) > I even tried to put drools-camel.jar with org.drools.camel.component in a > lib folder and add package to org.osgi.framework.system.packages.extra, but > got same result. > > Do you have any idea, blog posts, samples which could help me? > I'm completely stuck. > > Thanks, > Alex > > > _______________________________________________ > rules-users mailing > listrules-users@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-us...@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________ rules-dev mailing list rules-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-dev