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(a)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(a)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/po...
> 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/sr...
> 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/d...
> 4) Update the boot-bundles.properties so that Spring DM loads the OSGi
> dependencies
>
>
https://github.com/droolsjbpm/droolsjbpm-build-distribution/blob/master/d...
> 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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev