Thank you! But didn&#39;t help.<div>Actually I see some weird behavior. I decided to try referring drools-core using Require-Bundle from my bundle, so I added</div><div>&lt;Bundle-SymbolicName&gt;org.drools.core&lt;/Bundle-SymbolicName&gt; to a drools-core package, recompiled it and got </div>
<div>NullPointerException (still without stacktrace) when I tried to deploy new core bundle to a karaf container.</div><div><br></div><div>I was able to deploy it after I removed Bundle-SymbolicName and recompiled again.</div>
<div><br></div><div>Thanks,</div><div>Alex<br><br><div class="gmail_quote">On Tue, Feb 7, 2012 at 4:42 PM, Mauricio Salatino <span dir="ltr">&lt;<a href="mailto:salaboy@gmail.com">salaboy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I&#39;ve already answer a similar question here.. try including inside the<br>
application that is using the bundles the file called:<br>
drools.packagebuilder.conf<br>
<br>
which contains:<br>
drools.dialect.default = java<br>
drools.dialect.java =<br>
org.drools.rule.builder.dialect.java.JavaDialectConfiguration<br>
drools.dialect.java.compiler = ECLIPSE<br>
<br>
drools.dialect.mvel =<br>
org.drools.rule.builder.dialect.mvel.MVELDialectConfiguration<br>
drools.dialect.mvel.strict = true<br>
drools.dialect.mvel.langLevel = 4<br>
<br>
drools.accumulate.function.average =<br>
org.drools.base.accumulators.AverageAccumulateFunction<br>
drools.accumulate.function.max =<br>
org.drools.base.accumulators.MaxAccumulateFunction<br>
drools.accumulate.function.min =<br>
org.drools.base.accumulators.MinAccumulateFunction<br>
drools.accumulate.function.count =<br>
org.drools.base.accumulators.CountAccumulateFunction<br>
drools.accumulate.function.sum =<br>
org.drools.base.accumulators.SumAccumulateFunction<br>
drools.accumulate.function.collectList =<br>
org.drools.base.accumulators.CollectListAccumulateFunction<br>
drools.accumulate.function.collectSet =<br>
org.drools.base.accumulators.CollectSetAccumulateFunction<br>
<br>
drools.evaluator.coincides =<br>
org.drools.base.evaluators.CoincidesEvaluatorDefinition<br>
drools.evaluator.before = org.drools.base.evaluators.BeforeEvaluatorDefinition<br>
drools.evaluator.after = org.drools.base.evaluators.AfterEvaluatorDefinition<br>
drools.evaluator.meets = org.drools.base.evaluators.MeetsEvaluatorDefinition<br>
drools.evaluator.metby = org.drools.base.evaluators.MetByEvaluatorDefinition<br>
drools.evaluator.overlaps =<br>
org.drools.base.evaluators.OverlapsEvaluatorDefinition<br>
drools.evaluator.overlappedby =<br>
org.drools.base.evaluators.OverlappedByEvaluatorDefinition<br>
drools.evaluator.during = org.drools.base.evaluators.DuringEvaluatorDefinition<br>
drools.evaluator.includes =<br>
org.drools.base.evaluators.IncludesEvaluatorDefinition<br>
drools.evaluator.starts = org.drools.base.evaluators.StartsEvaluatorDefinition<br>
drools.evaluator.startedby =<br>
org.drools.base.evaluators.StartedByEvaluatorDefinition<br>
drools.evaluator.finishes =<br>
org.drools.base.evaluators.FinishesEvaluatorDefinition<br>
drools.evaluator.finishedby =<br>
org.drools.base.evaluators.FinishedByEvaluatorDefinition<br>
drools.evaluator.equality =<br>
org.drools.base.evaluators.EqualityEvaluatorsDefinition<br>
drools.evaluator.comparable =<br>
org.drools.base.evaluators.ComparableEvaluatorsDefinition<br>
drools.evaluator.set = org.drools.base.evaluators.SetEvaluatorsDefinition<br>
drools.evaluator.matches =<br>
org.drools.base.evaluators.MatchesEvaluatorsDefinition<br>
drools.evaluator.soundslike =<br>
org.drools.base.evaluators.SoundslikeEvaluatorsDefinition<br>
<br>
Cheers<br>
<br>
<br>
On Tue, Feb 7, 2012 at 9:03 PM, Alexander Filipchik<br>
&lt;<a href="mailto:afilipchik@gmail.com">afilipchik@gmail.com</a>&gt; wrote:<br>
&gt; It&#39;s not an obvious how to OSGI-fy something :)<br>
&gt;<br>
&gt; I did some homework - now I have OSGi-ified versions of drools-spring and<br>
&gt; drools-camel.<br>
&gt; Also I created own bundle and tried to import KnowledgeBaseFactoryService,<br>
&gt; ServiceRegistry and KnowledgeBaseFactoryService as described in<br>
&gt; <a href="http://docs.jboss.org/jbpm/v5.2/userguide/ch18.html#d0e4308" target="_blank">http://docs.jboss.org/jbpm/v5.2/userguide/ch18.html#d0e4308</a>.<br>
&gt; All what I got - NullPointerException from karaf core (haven&#39;t gotten full<br>
&gt; staketrace yet. For some reason it is just:<br>
&gt; 15:11:34,484 | INFO  | l Console Thread | Console                          |<br>
&gt; ?                                   ? | 34 - org.apache.karaf.shell.console<br>
&gt; - 2.2.2.fuse-02-13 | Exception caught while executing command<br>
&gt; java.lang.NullPointerException<br>
&gt; )<br>
&gt;<br>
&gt; So, I spent some time randomly adding and removing configuration params and<br>
&gt; I found - NPE occurs when I&#39;m trying to import<br>
&gt; org.drools.KnowledgeBaseFactoryService.<br>
&gt; I guess (i&#39;m not OSGI expert) it could be because org.drools package is<br>
&gt; exported in 2! bundles. It is in drools-core and knowledge-api bundles. And<br>
&gt; I guess, karaf container just can&#39;t link my bundle with both core and api,<br>
&gt; only first bundle which contains requested package (org.drools) wins.<br>
&gt;<br>
&gt; Any ideas on how to make it work?<br>
&gt; I actually have one - every bundle should export own package. For<br>
&gt; knowledge-api it should be org.drools.api, and org.drools.core for<br>
&gt; drools-core.<br>
&gt;<br>
&gt; Here is full log of similar packages:<br>
&gt; WARNING: multiple bundles are exporting package org.drools.command<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt; - org.drools.internalapi [217]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools.runtime.process<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools.time<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package<br>
&gt; org.apache.geronimo.transaction<br>
&gt; - org.apache.aries.transaction.manager [123]<br>
&gt; - org.apache.aries.transaction.manager [51]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package<br>
&gt; org.apache.geronimo.transaction.manager<br>
&gt; - org.apache.aries.transaction.manager [123]<br>
&gt; - org.apache.aries.transaction.manager [51]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools.grid<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.spring [220]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package jline<br>
&gt; - org.apache.servicemix.bundles.jruby [210]<br>
&gt; - org.apache.karaf.shell.console [34]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package<br>
&gt; org.apache.geronimo.transaction.log<br>
&gt; - org.apache.aries.transaction.manager [123]<br>
&gt; - org.apache.aries.transaction.manager [51]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools.management<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools.agent<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt;<br>
&gt; WARNING: multiple bundles are exporting package org.drools.event<br>
&gt; - org.drools.core [218]<br>
&gt; - org.drools.api [216]<br>
&gt;<br>
&gt; 2012/2/3 Mark Proctor &lt;<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; neither spring or camel have been OSGi-ified. only api, core, compiler,<br>
&gt;&gt; templates, decision-tables and flow have.<br>
&gt;&gt;<br>
&gt;&gt; If someone wants to OSGi-ify those and contribute back they are very<br>
&gt;&gt; welcome:<br>
&gt;&gt; 1) update the pom.xml to use the osgi bundle plugin, see other existing<br>
&gt;&gt; poms.<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/pom.xml" target="_blank">https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/pom.xml</a><br>
&gt;&gt; 2) create an Activator to register the module, again see Activator&#39;s for<br>
&gt;&gt; core, compiler etc.<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java" target="_blank">https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java</a><br>

&gt;&gt; 3) update the osgi bundle&#39;s pom with new dependencies, make sure to pull<br>
&gt;&gt; in the spring ones, unless the actual project provides osgi ready jars.<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/droolsjbpm/droolsjbpm-build-distribution/tree/master/drools-osgi-bundles" target="_blank">https://github.com/droolsjbpm/droolsjbpm-build-distribution/tree/master/drools-osgi-bundles</a><br>

&gt;&gt; 4) Update the boot-bundles.properties so that Spring DM loads the OSGi<br>
&gt;&gt; dependencies<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/droolsjbpm/droolsjbpm-build-distribution/blob/master/drools-osgi-bundles/org.drools.osgi.test/src/test/filtered-resources/boot-bundles.properties" target="_blank">https://github.com/droolsjbpm/droolsjbpm-build-distribution/blob/master/drools-osgi-bundles/org.drools.osgi.test/src/test/filtered-resources/boot-bundles.properties</a><br>

&gt;&gt; 5) write unit tests for spring and camel.<br>
&gt;&gt;<br>
&gt;&gt; Mark<br>
&gt;&gt; On 03/02/2012 03:47, Alexander Filipchik wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello all!<br>
&gt;&gt;<br>
&gt;&gt; Don&#39;t know if it is right list to ask, but I&#39;m trying to make drools +<br>
&gt;&gt; camel running on Fuse (ServiceMix container).<br>
&gt;&gt; I couldn&#39;t even install OSGI drools artifacts for 5.3.1 version (because<br>
&gt;&gt; of weird dependency on drools.core Snapshot),<br>
&gt;&gt; but did it with v5.2.1. I used:<br>
&gt;&gt;<br>
&gt;&gt; mvel2/2.1.0,<br>
&gt;&gt; org.drools/drools-core/5.2.1.Final, org.drools/drools-compiler/5.2.1.Final,<br>
&gt;&gt; org.drools/knowledge-api/5.2.1.Final<br>
&gt;&gt; and org.drools/drools-camel/5.2.1.Final.<br>
&gt;&gt;<br>
&gt;&gt; All are installed and active. Part of log:<br>
&gt;&gt;<br>
&gt;&gt; [ 162] [Active     ] [            ] [       ] [   60] Drools :: Compiler<br>
&gt;&gt; (5.2.1.Final)<br>
&gt;&gt;<br>
&gt;&gt; [ 163] [Active     ] [            ] [       ] [   60] mvel2<br>
&gt;&gt; (2.1.0.drools4)<br>
&gt;&gt;<br>
&gt;&gt; [ 164] [Active     ] [            ] [       ] [   60] Drools :: Core<br>
&gt;&gt; (5.2.1.Final)<br>
&gt;&gt;<br>
&gt;&gt; [ 165] [Active     ] [            ] [       ] [   60] Knowledge API<br>
&gt;&gt; (5.2.1.Final)<br>
&gt;&gt;<br>
&gt;&gt; [ 172] [Active     ] [            ] [       ] [   60]<br>
&gt;&gt; mvn:org.drools/drools-camel/5.2.1.Final<br>
&gt;&gt;<br>
&gt;&gt; Then I tried to add my own camel-drools router (I created OSGI bundle for<br>
&gt;&gt; it). It depends on:<br>
&gt;&gt;<br>
&gt;&gt; Import-Package:<br>
&gt;&gt; org.apache.activemq,org.apache.activemq.camel.component,org.apache.activemq.pool,org.apache.camel;version=&quot;[2.8,3)&quot;,org.apache.camel.builder;version=&quot;[2.8,3)&quot;,org.apache.camel.component.jms;version=&quot;[2.8,3)&quot;,org.apache.camel.model;version=&quot;[2.8,3)&quot;,org.drools.camel.component,org.osgi.service.blueprint;version=&quot;[1.0.0,2.0.0)&quot;,org.springframework.transaction;version=&quot;[3,4)&quot;<br>

&gt;&gt;<br>
&gt;&gt; It tried to install it to a container but all I got -<br>
&gt;&gt;<br>
&gt;&gt; Error executing command: Unresolved constraint in bundle<br>
&gt;&gt; com.betfair.drools [170]: Unable to resolve 170.0: missing requirement<br>
&gt;&gt; [170.0] package; (package=org.drools.camel.component)<br>
&gt;&gt;<br>
&gt;&gt; I even tried to put drools-camel.jar with org.drools.camel.component in a<br>
&gt;&gt; lib folder and add package to org.osgi.framework.system.packages.extra, but<br>
&gt;&gt; got same result.<br>
&gt;&gt;<br>
&gt;&gt; Do you have any idea, blog posts, samples which could help me?<br>
&gt;&gt; I&#39;m completely stuck.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; Alex<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; rules-users mailing list<br>
&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; rules-users mailing list<br>
&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; rules-dev mailing list<br>
&gt; <a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
&gt;<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
 - CTO @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com</a><br>
 - MyJourney @ <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a><br>
 - Co-Founder @ <a href="http://www.jugargentina.org" target="_blank">http://www.jugargentina.org</a><br>
 - Co-Founder @ <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br>
<br>
 - Salatino &quot;Salaboy&quot; Mauricio -<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></span></blockquote></div><br></div>