Preparing to be shouted down, but isn't it impossible to compile DRL on Android and the suggestion is to load pre-serialised KnowledgeBases?<br><br>Also, as another observation, are you sure the DRL was indeed found and the NPE is not caused by "com.ts.DBconnector.readKnowledgeBase(DBconnector.java:143)" perhaps passing a null to KnowledgeBuilder?<br>
<br>Have you looked at <a href="http://blog.athico.com/2011/03/jbpm5-lightweight-running-on-android.html">http://blog.athico.com/2011/03/jbpm5-lightweight-running-on-android.html</a>, which might give some pointers - although it is only jBPM and not rules themselves.<br>
<br>With kind regards,<br><br>Mike<br><br><div class="gmail_quote">On 9 June 2011 11:11, Abhay B. Chaware <span dir="ltr"><<a href="mailto:Abhay.Chaware@kpitcummins.com">Abhay.Chaware@kpitcummins.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">This is what I did.<br>
<br>
Properties properties = new Properties();<br>
properties.put("drools.dialect.java.compiler", "JANINO");<br>
KnowledgeBuilderConfiguration kbConfig = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration( properties, (ClassLoader[]) null );<br>
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbConfig);<br>
<div class="im"> kbuilder.add(ResourceFactory.newInputStreamResource(is), ResourceType.DRL);<br>
<br>
<br>
</div>I am getting same error with KnowledgeBuilderConfiguration ..<br>
<br>
W/System.err(27303): java.lang.NullPointerException<br>
W/System.err(27303): at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:47)<br>
W/System.err(27303): at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1161)<br>
W/System.err(27303): at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:637)<br>
W/System.err(27303): at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:267)<br>
W/System.err(27303): at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:459)<br>
W/System.err(27303): at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)<br>
W/System.err(27303): at com.ts.DBconnector.readKnowledgeBase(DBconnector.java:143)<br>
W/System.err(27303): at com.first.FirstActivity.onCreate(FirstActivity.java:64)<br>
W/System.err(27303): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)<br>
W/System.err(27303): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)<br>
W/System.err(27303): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)<br>
W/System.err(27303): at android.app.ActivityThread.access$2300(ActivityThread.java:125)<br>
<br>
<br>
________________________________________<br>
From: <a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a> [<a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>] On Behalf Of Wolfgang Laun [<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>]<br>
Sent: Thursday, June 09, 2011 2:46 PM<br>
<div class="im">To: Rules Users List<br>
Subject: Re: [rules-users] Drools in non-eclipse environment<br>
<br>
</div><div class="im">You might try this:<br>
<br>
Properties props = new Properties();<br>
props.put( "drools.dialect.java.compiler", "JANINO" );<br>
<br>
KnowledgeBuilderConfiguration kbConfig =<br>
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration( props, (ClassLoader[]) null );<br>
<br>
Requires the janino jar in your classpath, which I have as<br>
~/.m2/repository/janino/janino/2.5.15/janino-2.5.15.jar<br>
<br>
-W<br>
<br>
</div><div class="im">On 9 June 2011 10:29, Abhay B. Chaware <<a href="mailto:Abhay.Chaware@kpitcummins.com">Abhay.Chaware@kpitcummins.com</a><mailto:<a href="mailto:Abhay.Chaware@kpitcummins.com">Abhay.Chaware@kpitcummins.com</a>>> wrote:<br>
I am using drools 5.1.0<br>
<br>
Let me explain what I am trying to do. I am trying to write a drools app on to android platform. In my app, I have added following jars in the application classpath -<br>
<br>
antlr-runtime.jar<br>
drools-api.jar<br>
drools-compiler.jar<br>
drools-core.jar<br>
mvel2.jar<br>
<br>
Do I need any other jar files ?<br>
<br>
upon drilling down into the Null Pointer Exception, it appears that it is throwing NPE at following line inside RuleBuilder.java<br>
<br>
<br>
RuleConditionBuilder builder = (RuleConditionBuilder)context.getDialect().getBuilder(ruleDescr.getLhs().getClass());<br>
<br>
and on further drilling, I found that "context.getDialect()" is retuning NULL.<br>
<br>
Then I put some debug inside PackageBuilder.java<br>
<br>
upon drilling down for the error, found out that it is not able to set the context's dialect.<br>
ctr.getDialect(pkgRegistry.getDialect()) gives "null" ...<br>
<br>
DialectCompiletimeRegistry ctr = pkgRegistry.getDialectCompiletimeRegistry();<br>
RuleBuildContext context = new RuleBuildContext(this, ruleDescr, ctr, pkg, ctr.getDialect(pkgRegistry.getDialect()));<br>
<br>
Is there any default setting /configuration that I am obviously missing ?<br>
<br>
what could be the problem ?<br>
<br>
-abhay<br>
<br>
<br>
________________________________________<br>
</div>From: <a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a><mailto:<a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>> [<a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a><mailto:<a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>>] On Behalf Of Swindells, Thomas [<a href="mailto:TSwindells@nds.com">TSwindells@nds.com</a><mailto:<a href="mailto:TSwindells@nds.com">TSwindells@nds.com</a>>]<br>
<div class="im">Sent: Thursday, June 09, 2011 1:40 PM<br>
To: Rules Users List<br>
Subject: Re: [rules-users] Drools in non-eclipse environment<br>
<br>
Which version of drools is this?<br>
For drools 5.0.1 we just use maven to resolve the dependencies for us and it works fine. I can't obviously see any eclipse compiler in the jars that we distribute with our application.<br>
<br>
Thomas<br>
<br>
> -----Original Message-----<br>
</div>> From: <a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a><mailto:<a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>> [mailto:<a href="mailto:rules-users-">rules-users-</a><mailto:<a href="mailto:rules-users-">rules-users-</a>><br>
> <a href="mailto:bounces@lists.jboss.org">bounces@lists.jboss.org</a><mailto:<a href="mailto:bounces@lists.jboss.org">bounces@lists.jboss.org</a>>] On Behalf Of Abhay B. Chaware<br>
<div class="im">> Sent: 09 June 2011 08:06<br>
</div>> To: <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div><div></div><div class="h5">> Subject: [rules-users] Drools in non-eclipse environment<br>
><br>
> Has anyone tried using drools in non-eclipse env ? meaning that<br>
> org.eclipse.jdt.core_3.5.1.v_972_R35x.jar is not in the classpath ?<br>
><br>
> Documentation says this :<br>
><br>
> (<a href="http://docs.huihoo.com/drools/4.0.7/ch02s05.html" target="_blank">http://docs.huihoo.com/drools/4.0.7/ch02s05.html</a>)<br>
><br>
> if you do not have Eclipse JDT Core in your classpath you must override the<br>
> compiler setting before you instantiate this PackageBuilder, you can either<br>
> do that with a packagebuilder properties file the ChainedProperties class will<br>
> find, or you can do it programmatically as shown below; note this time I use<br>
> properties to inject the value for startup.<br>
><br>
> They also provide an example, but I am not able to figure out exactly how to<br>
> use this example/info.<br>
><br>
> Here is my code :<br>
><br>
> KnowledgeBuilder kbuilder =<br>
> KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
> kbuilder.add(ResourceFactory.newInputStreamResource(is),<br>
> ResourceType.DRL);<br>
><br>
> where "is" is input stream containing the rule file ( .drl)<br>
><br>
> How do I override the compiler setting ?<br>
><br>
> I am getting a null pointer exception ( see below ) and I suspect that<br>
> overriding the packagebuilderconfiguration will fix it ?<br>
><br>
> W/System.err(25511): java.lang.NullPointerException<br>
> W/System.err(25511): at<br>
> org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:47)<br>
> W/System.err(25511): at<br>
> org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1161)<br>
> W/System.err(25511): at<br>
> org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:637)<br>
> W/System.err(25511): at<br>
> org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java<br>
> :267)<br>
> W/System.err(25511): at<br>
> org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder<br>
> .java:459)<br>
> W/System.err(25511): at<br>
> org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.ja<br>
> va:28)<br>
> W/System.err(25511): at<br>
> com.ts.DBconnector.readKnowledgeBase(DBconnector.java:146)<br>
><br>
><br>
><br>
> _______________________________________________<br>
> rules-users mailing list<br>
</div></div>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div class="im">> <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
<br>
**************************************************************************************<br>
</div>This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the <a href="mailto:postmaster@nds.com">postmaster@nds.com</a><mailto:<a href="mailto:postmaster@nds.com">postmaster@nds.com</a>> and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary.<br>
<div class="im"><br>
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00<br>
**************************************************************************************<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
</div><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div class="im"><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
</div><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div><div></div><div class="h5"><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
<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>
</div></div></blockquote></div><br>