Thank you both very much. I will try both suggestions, and will get back to you as soon as I&#39;ve got it figured out :-)<br><br>Kind regards,<br><br>Aerv<br><br><div class="gmail_quote">2010/4/15 Robert <span dir="ltr">&lt;<a href="mailto:robert.weissmann@web.de">robert.weissmann@web.de</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi Aerv,<br>
<br>
soon I will also have to launch Drools within an OSGI environment, but I<br>
am not there yet. But within another context (jBPM) I had some troubles<br>
looking similar you are having.<br>
<br>
It had something to do with the classloading. jBPM did not provide any<br>
OSGI-support, whereas Droos does, so I am not sure if this fits, but I had<br>
to wrap here and there some classes so they got pulled in by the right<br>
ClassLoader (OSGI uses many class-loaders).<br>
<br>
<br>
                     final ClassLoader origCl =<br>
Thread.currentThread().getContextClassLoader();<br>
                     final ClassLoader cl =<br>
&lt;YOUR_CLASS_YOU_WANT_TO_USE&gt;.class.getClassLoader();<br>
                     Thread.currentThread().setContextClassLoader(cl);<br>
<br>
                        ... use the class ...<br>
<br>
<br>
                     Thread.currentThread().setContextClassLoader(origCl);<br>
<br>
Maybe this helps,<br>
<br>
Cheers, Rob.<br>
<br>
<br>
Am 14.04.2010, 20:27 Uhr, schrieb Wouter Van Isterdael<br>
&lt;<a href="mailto:woutervanisterdael@gmail.com">woutervanisterdael@gmail.com</a>&gt;:<br>
<div class="im"><br>
&gt; I still seem to be having problems getting it working. The problem did<br>
&gt; not<br>
&gt; go away.<br>
&gt;<br>
&gt; I still get the same error. Would anyone know of a simple step-by-step<br>
&gt; tutorial for using Drools in a Felix OSGi environment? Preferrably within<br>
&gt; Eclipse and with Pax Runner.<br>
&gt;<br>
&gt; Any help would be very much appreciated.<br>
&gt;<br>
&gt; Thank you for your time!<br>
&gt;<br>
&gt; Kind regards<br>
&gt;<br>
&gt; Aerv<br>
&gt;<br>
&gt; 2010/4/6 AervTerrh &lt;<a href="mailto:woutervanisterdael@gmail.com">woutervanisterdael@gmail.com</a>&gt;<br>
&gt;<br>
&gt;&gt; Thanks for the reply. I will try this tomorrow and keep you posted!<br>
&gt;&gt;<br>
&gt;&gt; 2010/4/5 Jason Davidson [via Drools - Java Rules Engine] &lt;[hidden<br>
</div>&gt;&gt; email]&lt;<a href="http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698969&amp;i=0" target="_blank">http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698969&amp;i=0</a>&gt;<br>
<div class="im">&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; I don&#39;t know if this helps, but I had to turn the MVEL JIT compiler<br>
&gt;&gt;&gt; off in<br>
&gt;&gt;&gt; the Equinox OSGi container:<br>
&gt;&gt;&gt;             OptimizerFactory.setDefaultOptimizer(&quot;reflective&quot;);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Also, we used pre-compiled packages instead of compiling the DRL files<br>
&gt;&gt;&gt; at<br>
&gt;&gt;&gt; runtime.  For example:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ....<br>
&gt;&gt;&gt;             RuleBaseConfiguration ruleBaseConfig = new<br>
&gt;&gt;&gt; RuleBaseConfiguration();<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ruleBaseConfig.setClassLoader(this.getClass().getClassLoader());<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;             //MVEL in OSGi is a complete CF - this turns off the MVEL<br>
&gt;&gt;&gt; JIT<br>
&gt;&gt;&gt; - potential resource hog but that&#39;s the nature of OSGi classloading<br>
&gt;&gt;&gt;             //and Drools...<br>
&gt;&gt;&gt;             OptimizerFactory.setDefaultOptimizer(&quot;reflective&quot;);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;             RuleBase ruleBase =<br>
&gt;&gt;&gt; RuleBaseFactory.newRuleBase(ruleBaseConfig);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;             InputStream pkgIs =<br>
&gt;&gt;&gt; this.getClass().getResourceAsStream(&quot;/com/cjs/hazel/rules/com.cjs.hazel.rules.pkg&quot;);<br>
&gt;&gt;&gt;             addPackage(ruleBase,pkgIs);<br>
&gt;&gt;&gt; .....<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Fri, Apr 2, 2010 at 4:42 PM, AervTerrh &lt;[hidden<br>
</div>&gt;&gt;&gt; email]&lt;<a href="http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698731&amp;i=0" target="_blank">http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698731&amp;i=0</a>&gt;<br>
<div><div></div><div class="h5">&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hey,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Okay. I know this problem can be found all over. But I can&#39;t seem to<br>
&gt;&gt;&gt;&gt; figure<br>
&gt;&gt;&gt;&gt; out a solution to it. Somehow I must be doing something wrong. I&#39;ve<br>
&gt;&gt;&gt;&gt; created<br>
&gt;&gt;&gt;&gt; a simple application that evaluates some rules and changes some<br>
&gt;&gt;&gt;&gt; objects<br>
&gt;&gt;&gt;&gt; based on that. Everything worked fine, not a single problem there. All<br>
&gt;&gt;&gt;&gt; libraries could be easily found etc.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Now I wanted to convert this to a Felix OSGi bundle.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; So, what I did, was creating a bundle (new plugin project based on<br>
&gt;&gt;&gt;&gt; existing<br>
&gt;&gt;&gt;&gt; jars) with the drools jars (core, compiler, api, jsr) and tried the<br>
&gt;&gt;&gt;&gt; next<br>
&gt;&gt;&gt;&gt; code in the RuleEngine class:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Properties props = new Properties();<br>
&gt;&gt;&gt;&gt; props.setProperty(&quot;drools.dialect.java.compiler&quot;, &quot;JANINO&quot;);<br>
&gt;&gt;&gt;&gt; KnowledgeBuilderConfiguration config =<br>
&gt;&gt;&gt;&gt; KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(props, null);<br>
&gt;&gt;&gt;&gt; (here&#39;s where it fails)<br>
&gt;&gt;&gt;&gt; KnowledgeBuilder kbuilder =<br>
&gt;&gt;&gt;&gt; KnowledgeBuilderFactory.newKnowledgeBuilder(config);<br>
&gt;&gt;&gt;&gt; kbuilder.add(ResourceFactory.newClassPathResource(fileName,<br>
&gt;&gt;&gt;&gt; RuleEngine.class), ResourceType.DRL);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; This is pretty much the loading of the rule file. The RuleEngine is<br>
&gt;&gt;&gt;&gt; started<br>
&gt;&gt;&gt;&gt; in an Activator. The file is found and everything. But I keep getting<br>
&gt;&gt;&gt;&gt; the<br>
&gt;&gt;&gt;&gt; same error when starting the bundle.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.drools.RuntimeDroolsException: Unable to load dialect<br>
&gt;&gt;&gt;&gt; &#39;org.drools.rule.builder.dialect.mvel.MVELDialectConfigurati<br>
&gt;&gt;&gt;&gt; on:mvel:null&#39;<br>
&gt;&gt;&gt;&gt; at org.drools.compiler.PackageBuilderConfiguration.addDialect(P<br>
&gt;&gt;&gt;&gt; ackageBuilderConfiguration.java:274)<br>
&gt;&gt;&gt;&gt; at org.drools.compiler.PackageBuilderConfiguration.buildDialect<br>
&gt;&gt;&gt;&gt; ConfigurationMap(PackageBuilderConfiguration.java:259)<br>
&gt;&gt;&gt;&gt; at org.drools.compiler.PackageBuilderConfiguration.init(Package<br>
&gt;&gt;&gt;&gt; BuilderConfiguration.java:176)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.drools.compiler.PackageBuilderConfiguration.&lt;init&gt;(PackageBuilderConfiguration.java:148)<br>
&gt;&gt;&gt;&gt; at org.drools.builder.impl.KnowledgeBuilderProviderImpl.newKnow<br>
&gt;&gt;&gt;&gt; ledgeBuilderConfiguration(KnowledgeBuilderProviderImpl.java: 21)<br>
&gt;&gt;&gt;&gt; at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuild<br>
&gt;&gt;&gt;&gt; erConfiguration(KnowledgeBuilderFactory.java:68)<br>
&gt;&gt;&gt;&gt; at test.Activator$RuleCreator.createRule(Activator.java:52)<br>
&gt;&gt;&gt;&gt; at test.Activator.start(Activator.java:32)<br>
&gt;&gt;&gt;&gt; at org.apache.felix.framework.util.SecureAction.startActivator(<br>
&gt;&gt;&gt;&gt; SecureAction.java:639)<br>
&gt;&gt;&gt;&gt; at org.apache.felix.framework.Felix.activateBundle(Felix.java:1 700)<br>
&gt;&gt;&gt;&gt; at org.apache.felix.framework.Felix.startBundle(Felix.java:1622 )<br>
&gt;&gt;&gt;&gt; at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.j<br>
&gt;&gt;&gt;&gt; ava:1077)<br>
&gt;&gt;&gt;&gt; at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl<br>
&gt;&gt;&gt;&gt; .java:264)<br>
&gt;&gt;&gt;&gt; at java.lang.Thread.run(Unknown Source)<br>
&gt;&gt;&gt;&gt; Caused by: java.lang.ClassNotFoundException:<br>
&gt;&gt;&gt;&gt; org.drools.rule.builder.dialect.mvel.MVELDialectConfiguratio n<br>
&gt;&gt;&gt;&gt; at java.net.URLClassLoader$1.run(Unknown Source)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The packages I import in the manifest:<br>
&gt;&gt;&gt;&gt; Import-Package: org.codehaus.janino;version=&quot;2.4.3&quot;,<br>
&gt;&gt;&gt;&gt; org.drools,<br>
&gt;&gt;&gt;&gt; org.drools.builder,<br>
&gt;&gt;&gt;&gt; org.drools.compiler,<br>
&gt;&gt;&gt;&gt; <a href="http://org.drools.io" target="_blank">org.drools.io</a>,<br>
&gt;&gt;&gt;&gt; org.drools.rule,<br>
&gt;&gt;&gt;&gt; org.drools.rule.builder.dialect.java,<br>
&gt;&gt;&gt;&gt; org.drools.rule.builder.dialect.mvel,<br>
&gt;&gt;&gt;&gt; org.osgi.framework;version=&quot;1.3.0&quot;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; In my target platform I add the the drools project I created (with<br>
&gt;&gt;&gt;&gt; drools-xx.jar (the necessary ones), I also added the following:<br>
&gt;&gt;&gt;&gt; -ant<br>
&gt;&gt;&gt;&gt; -antlr-runtime<br>
&gt;&gt;&gt;&gt; -janino<br>
&gt;&gt;&gt;&gt; -jsr94<br>
&gt;&gt;&gt;&gt; -xstream<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; But I can&#39;t seem to get it working... Does anyone know what can be<br>
&gt;&gt;&gt;&gt; done<br>
&gt;&gt;&gt;&gt; about this? Or a working example of Drools in Felix OSGi would also be<br>
&gt;&gt;&gt;&gt; helpful.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Any help is very much appreciated, I&#39;ve been looking into this for<br>
&gt;&gt;&gt;&gt; days.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Kind regards,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Aerv<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; View this message in context:<br>
&gt;&gt;&gt;&gt; <a href="http://n3.nabble.com/Drools-and-OSGi-tp694011p694011.html" target="_blank">http://n3.nabble.com/Drools-and-OSGi-tp694011p694011.html</a><br>
&gt;&gt;&gt;&gt; Sent from the Drools - User mailing list archive at Nabble.com.<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt;&gt; [hidden<br>
</div></div>&gt;&gt;&gt;&gt; email]&lt;<a href="http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698731&amp;i=1" target="_blank">http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698731&amp;i=1</a>&gt;<br>

<div class="im">&gt;&gt;&gt;&gt;<br>
&gt;&gt;&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;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt; [hidden<br>
</div>&gt;&gt;&gt; email]&lt;<a href="http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698731&amp;i=2" target="_blank">http://n3.nabble.com/user/SendEmail.jtp?type=node&amp;node=698731&amp;i=2</a>&gt;<br>
<div class="im">&gt;&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;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; __________________________________<br>
&gt;&gt; Van Isterdael Wouter<br>
&gt;&gt; Roesbeke 27<br>
&gt;&gt; 9402 Meerbeke<br>
&gt;&gt; 0496401476<br>
&gt;&gt;<br>
&gt;&gt; ------------------------------<br>
&gt;&gt; View this message in context: Re: Drools and<br>
</div>&gt;&gt; OSGi&lt;<a href="http://n3.nabble.com/Drools-and-OSGi-tp694011p698969.html" target="_blank">http://n3.nabble.com/Drools-and-OSGi-tp694011p698969.html</a>&gt;<br>
<div class="im">&gt;&gt;<br>
&gt;&gt; Sent from the Drools - User mailing list<br>
</div>&gt;&gt; archive&lt;<a href="http://n3.nabble.com/Drools-User-f47000.html" target="_blank">http://n3.nabble.com/Drools-User-f47000.html</a>&gt;at Nabble.com.<br>
<div class="im">&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;<br>
&gt;<br>
<br>
<br>
--<br>
</div>Erstellt mit Operas revolutionärem E-Mail-Modul: <a href="http://www.opera.com/mail/" target="_blank">http://www.opera.com/mail/</a><br>
<div><div></div><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>__________________________________<br>Van Isterdael Wouter<br>Roesbeke 27<br>9402 Meerbeke<br>0496401476<br>