[rules-users] [rules-dev] Need Camel + drools (OSGI) integration help

Alexander Filipchik afilipchik at gmail.com
Tue Feb 7 21:01:00 EST 2012


Thank you! But didn't help.
Actually I see some weird behavior. I decided to try referring drools-core
using Require-Bundle from my bundle, so I added
<Bundle-SymbolicName>org.drools.core</Bundle-SymbolicName> to a drools-core
package, recompiled it and got
NullPointerException (still without stacktrace) when I tried to deploy new
core bundle to a karaf container.

I was able to deploy it after I removed Bundle-SymbolicName and recompiled
again.

Thanks,
Alex

On Tue, Feb 7, 2012 at 4:42 PM, Mauricio Salatino <salaboy at gmail.com> wrote:

> I've already answer a similar question here.. try including inside the
> application that is using the bundles the file called:
> drools.packagebuilder.conf
>
> which contains:
> drools.dialect.default = java
> drools.dialect.java =
> org.drools.rule.builder.dialect.java.JavaDialectConfiguration
> drools.dialect.java.compiler = ECLIPSE
>
> drools.dialect.mvel =
> org.drools.rule.builder.dialect.mvel.MVELDialectConfiguration
> drools.dialect.mvel.strict = true
> drools.dialect.mvel.langLevel = 4
>
> drools.accumulate.function.average =
> org.drools.base.accumulators.AverageAccumulateFunction
> drools.accumulate.function.max =
> org.drools.base.accumulators.MaxAccumulateFunction
> drools.accumulate.function.min =
> org.drools.base.accumulators.MinAccumulateFunction
> drools.accumulate.function.count =
> org.drools.base.accumulators.CountAccumulateFunction
> drools.accumulate.function.sum =
> org.drools.base.accumulators.SumAccumulateFunction
> drools.accumulate.function.collectList =
> org.drools.base.accumulators.CollectListAccumulateFunction
> drools.accumulate.function.collectSet =
> org.drools.base.accumulators.CollectSetAccumulateFunction
>
> drools.evaluator.coincides =
> org.drools.base.evaluators.CoincidesEvaluatorDefinition
> drools.evaluator.before =
> org.drools.base.evaluators.BeforeEvaluatorDefinition
> drools.evaluator.after =
> org.drools.base.evaluators.AfterEvaluatorDefinition
> drools.evaluator.meets =
> org.drools.base.evaluators.MeetsEvaluatorDefinition
> drools.evaluator.metby =
> org.drools.base.evaluators.MetByEvaluatorDefinition
> drools.evaluator.overlaps =
> org.drools.base.evaluators.OverlapsEvaluatorDefinition
> drools.evaluator.overlappedby =
> org.drools.base.evaluators.OverlappedByEvaluatorDefinition
> drools.evaluator.during =
> org.drools.base.evaluators.DuringEvaluatorDefinition
> drools.evaluator.includes =
> org.drools.base.evaluators.IncludesEvaluatorDefinition
> drools.evaluator.starts =
> org.drools.base.evaluators.StartsEvaluatorDefinition
> drools.evaluator.startedby =
> org.drools.base.evaluators.StartedByEvaluatorDefinition
> drools.evaluator.finishes =
> org.drools.base.evaluators.FinishesEvaluatorDefinition
> drools.evaluator.finishedby =
> org.drools.base.evaluators.FinishedByEvaluatorDefinition
> drools.evaluator.equality =
> org.drools.base.evaluators.EqualityEvaluatorsDefinition
> drools.evaluator.comparable =
> org.drools.base.evaluators.ComparableEvaluatorsDefinition
> drools.evaluator.set = org.drools.base.evaluators.SetEvaluatorsDefinition
> drools.evaluator.matches =
> org.drools.base.evaluators.MatchesEvaluatorsDefinition
> drools.evaluator.soundslike =
> org.drools.base.evaluators.SoundslikeEvaluatorsDefinition
>
> Cheers
>
>
> On Tue, Feb 7, 2012 at 9:03 PM, Alexander Filipchik
> <afilipchik at gmail.com> wrote:
> > 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 <mproctor at 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 list
> >> rules-users at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/rules-users
> >>
> >>
> >>
> >> _______________________________________________
> >> rules-users mailing list
> >> rules-users at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/rules-users
> >>
> >
> >
> > _______________________________________________
> > rules-dev mailing list
> > rules-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-dev
> >
>
>
>
> --
>  - CTO @ http://www.plugtree.com
>  - MyJourney @ http://salaboy.wordpress.com
>  - Co-Founder @ http://www.jugargentina.org
>  - Co-Founder @ http://www.jbug.com.ar
>
>  - Salatino "Salaboy" Mauricio -
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120207/c768c45e/attachment.html 


More information about the rules-users mailing list