Any ideas folks ?
From: Abhay B. Chaware
Sent: Friday, June 10, 2011 12:54
PM
To: '
Subject: RE: [rules-users] Drools
in non-eclipse environment
The ride’s real fun J
Got apache harmony’s beans.jar to work .. now , when I am reading
the serialized knowledgebase object on android, quite obvious, it is throwing
this error –
java.lang.UnsupportedOperationException: can't load this type of class
file
since my serialized knowledgebase object is in java format .. and not
dex. Can this serialized version be converted into .dex format using the
“dx” utility – pre or post serialization ? I tried the
“dx” tool on the serialized object, but it doesn’t seem to
understand the format.
-abhay
From:
rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org]
On Behalf Of Michael Anstis
Sent: Thursday, June 09, 2011 6:37
PM
To:
Subject: Re: [rules-users] Drools
in non-eclipse environment
http://meteatamel.wordpress.com/2010/08/25/android-api-and-java-beans-package/
http://meteatamel.wordpress.com/2010/09/28/android-api-and-java-beans-package-2/
Enjoy the ride ;)
2011/6/9 Abhay B. Chaware <Abhay.Chaware@kpitcummins.com>
woo hooo ! I got past that problem J But a new
one’s here now.
Looks like MVEL is not liking something J
W/dalvikvm(29977): VFY: unable to resolve static method 164:
Ljava/beans/Introspector;.decapitalize (Ljava/lang/String;)Ljava/lang
/String;
W/dalvikvm(29977): threadid=1: thread exiting with uncaught
exception (group=0x40020ac0)
E/AndroidRuntime(29977): FATAL EXCEPTION: main
E/AndroidRuntime(29977): java.lang.NoClassDefFoundError:
java.beans.Introspector
E/AndroidRuntime(29977):
at
org.drools.core.util.asm.ClassFieldInspector.calcFieldName(ClassFieldInspector.java:298)
E/AndroidRuntime(29977):
at
org.drools.core.util.asm.ClassFieldInspector.addToMapping(ClassFieldInspector.java:216)
E/AndroidRuntime(29977):
at
org.drools.core.util.asm.ClassFieldInspector.processClassWithoutByteCode(ClassFieldInspector.ja
va:148)
E/AndroidRuntime(29977):
at
org.drools.core.util.asm.ClassFieldInspector.<init>(ClassFieldInspector.java:83)
E/AndroidRuntime(29977):
at
org.drools.core.util.asm.ClassFieldInspector.<init>(ClassFieldInspector.java:64)
E/AndroidRuntime(29977):
at
org.drools.base.ClassFieldAccessorFactory.getClassFieldReader(ClassFieldAccessorFactory.java:11
8)
E/AndroidRuntime(29977):
at
org.drools.base.ClassFieldAccessorCache$CacheEntry.getReadAccessor(ClassFieldAccessorCache.java
:168)
E/AndroidRuntime(29977):
at
org.drools.base.ClassFieldAccessorCache.getReadAcessor(ClassFieldAccessorCache.java:101)
E/AndroidRuntime(29977):
at
org.drools.base.ClassFieldAccessorStore.wire(ClassFieldAccessorStore.java:404)
E/AndroidRuntime(29977):
at
org.drools.base.ClassFieldAccessorStore.wire(ClassFieldAccessorStore.java:374)
E/AndroidRuntime(29977):
at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295)
E/AndroidRuntime(29977):
at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:236)
E/AndroidRuntime(29977): at
org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:108)
E/AndroidRuntime(29977):
at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2127)
E/AndroidRuntime(29977):
at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:929)
E/AndroidRuntime(29977):
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2285)
E/AndroidRuntime(29977):
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2240)
E/AndroidRuntime(29977):
at com.ts.DBconnector.execPackageByPath(DBconnector.java:219)
E/AndroidRuntime(29977):
at com.first.FirstActivity.onCreate(FirstActivity.java:77)
E/AndroidRuntime(29977):
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(29977):
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
E/AndroidRuntime(29977):
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(29977):
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime(29977):
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime(29977):
at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(29977):
at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(29977):
at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(29977):
at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(29977):
at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(29977):
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(29977):
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(29977):
at dalvik.system.NativeStart.main(Native Method)
From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org]
On Behalf Of Michael Anstis
Sent: Thursday, June 09, 2011 4:51
PM
To:
Subject: Re: [rules-users] Drools in
non-eclipse environment
Great news :)
Please do feedback... if you get it working I'll make a blog entry on your
behalf as you are not the first (or last) to try Drools on Android.
With kind regards,
Mike
2011/6/9 Abhay B.
Chaware <Abhay.Chaware@kpitcummins.com>
That’s exactly what I am trying out at the moment .. option
– b. Pre-compile, serialize and unserialize …I’ll share
the results.
Also rule
file’s there at the location mentioned. So that’s not a problem.
I’ve gone
through the blog you mentioned … and as you indicated, it’s only
jbpm .. no rules …
thanks
abhay
From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org]
On Behalf Of Michael Anstis
Sent: Thursday, June 09, 2011 4:07
PM
To:
Subject: Re: [rules-users] Drools in
non-eclipse environment
Preparing to be
shouted down, but isn't it impossible to compile DRL on Android and the
suggestion is to load pre-serialised KnowledgeBases?
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?
Have you looked at http://blog.athico.com/2011/03/jbpm5-lightweight-running-on-android.html,
which might give some pointers - although it is only jBPM and not rules
themselves.
With kind regards,
Mike
On 9 June 2011
11:11, Abhay B. Chaware <Abhay.Chaware@kpitcummins.com> wrote:
This is what I
did.
Properties properties =
new Properties();
properties.put("drools.dialect.java.compiler",
"JANINO");
KnowledgeBuilderConfiguration kbConfig =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration( properties,
(ClassLoader[]) null );
KnowledgeBuilder
kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbConfig);
kbuilder.add(ResourceFactory.newInputStreamResource(is),
ResourceType.DRL);
I am getting same
error with KnowledgeBuilderConfiguration ..
W/System.err(27303): java.lang.NullPointerException
W/System.err(27303): at
org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:47)
W/System.err(27303): at
org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1161)
W/System.err(27303): at
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:637)
W/System.err(27303): at
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:267)
W/System.err(27303): at
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:459)
W/System.err(27303): at
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)
W/System.err(27303): at
com.ts.DBconnector.readKnowledgeBase(DBconnector.java:143)
W/System.err(27303): at
com.first.FirstActivity.onCreate(FirstActivity.java:64)
W/System.err(27303): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
W/System.err(27303): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
W/System.err(27303): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
W/System.err(27303): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
________________________________________
From: rules-users-bounces@lists.jboss.org
[rules-users-bounces@lists.jboss.org]
On Behalf Of Wolfgang Laun [wolfgang.laun@gmail.com]
Sent: Thursday, June 09, 2011 2:46 PM
To:
Subject: Re: [rules-users] Drools in non-eclipse environment
You might try
this:
Properties props = new Properties();
props.put( "drools.dialect.java.compiler",
"JANINO" );
KnowledgeBuilderConfiguration kbConfig =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration( props,
(ClassLoader[]) null );
Requires the janino jar in your classpath, which I have as
~/.m2/repository/janino/janino/2.5.15/janino-2.5.15.jar
-W
On 9 June 2011
10:29, Abhay B. Chaware <Abhay.Chaware@kpitcummins.com<mailto:Abhay.Chaware@kpitcummins.com>>
wrote:
I am using drools 5.1.0
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 -
antlr-runtime.jar
drools-api.jar
drools-compiler.jar
drools-core.jar
mvel2.jar
Do I need any other jar files ?
upon drilling down into the Null Pointer Exception, it appears that it is
throwing NPE at following line inside RuleBuilder.java
RuleConditionBuilder builder =
(RuleConditionBuilder)context.getDialect().getBuilder(ruleDescr.getLhs().getClass());
and on further drilling, I found that "context.getDialect()" is
retuning NULL.
Then I put some debug inside PackageBuilder.java
upon drilling down for the error, found out that it is not able to set the
context's dialect.
ctr.getDialect(pkgRegistry.getDialect()) gives "null" ...
DialectCompiletimeRegistry ctr = pkgRegistry.getDialectCompiletimeRegistry();
RuleBuildContext context = new RuleBuildContext(this, ruleDescr, ctr, pkg,
ctr.getDialect(pkgRegistry.getDialect()));
Is there any default setting /configuration that I am obviously missing ?
what could be the problem ?
-abhay
________________________________________
From: rules-users-bounces@lists.jboss.org<mailto:rules-users-bounces@lists.jboss.org>
[rules-users-bounces@lists.jboss.org<mailto:rules-users-bounces@lists.jboss.org>]
On Behalf Of Swindells, Thomas [TSwindells@nds.com<mailto:TSwindells@nds.com>]
Sent: Thursday,
June 09, 2011 1:40 PM
To:
Subject: Re: [rules-users] Drools in non-eclipse environment
Which version of drools is this?
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.
Thomas
> -----Original Message-----
> From: rules-users-bounces@lists.jboss.org<mailto:rules-users-bounces@lists.jboss.org>
[mailto:rules-users-<mailto:rules-users->
> bounces@lists.jboss.org<mailto:bounces@lists.jboss.org>]
On Behalf Of Abhay B. Chaware
> Sent: 09 June
2011 08:06
> To: rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>
> Subject:
[rules-users] Drools in non-eclipse environment
>
> Has anyone tried using drools in non-eclipse env ? meaning that
> org.eclipse.jdt.core_3.5.1.v_972_R35x.jar is not in the classpath ?
>
> Documentation says this :
>
> (http://docs.huihoo.com/drools/4.0.7/ch02s05.html)
>
> if you do not have Eclipse JDT Core in your classpath you must override
the
> compiler setting before you instantiate this PackageBuilder, you can
either
> do that with a packagebuilder properties file the ChainedProperties class
will
> find, or you can do it programmatically as shown below; note this time I
use
> properties to inject the value for startup.
>
> They also provide an example, but I am not able to figure out exactly how
to
> use this example/info.
>
> Here is my code :
>
> KnowledgeBuilder kbuilder
=
> KnowledgeBuilderFactory.newKnowledgeBuilder();
>
kbuilder.add(ResourceFactory.newInputStreamResource(is),
> ResourceType.DRL);
>
> where "is" is input stream containing the rule file ( .drl)
>
> How do I override the compiler setting ?
>
> I am getting a null pointer exception ( see below ) and I suspect that
> overriding the packagebuilderconfiguration will fix it ?
>
> W/System.err(25511): java.lang.NullPointerException
> W/System.err(25511): at
> org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:47)
> W/System.err(25511): at
> org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1161)
> W/System.err(25511): at
> org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:637)
> W/System.err(25511): at
> org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java
> :267)
> W/System.err(25511): at
> org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder
> .java:459)
> W/System.err(25511): at
> org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.ja
> va:28)
> W/System.err(25511): at
> com.ts.DBconnector.readKnowledgeBase(DBconnector.java:146)
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
**************************************************************************************
This message is
confidential and intended only for the addressee. If you have received this
message in error, please immediately notify the postmaster@nds.com<mailto:postmaster@nds.com> 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.
NDS Limited. Registered Office:
**************************************************************************************
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
This message contains information that may be privileged or confidential and is
the property of the KPIT Cummins Infosystems Ltd. It is intended only for the
person to whom it is addressed. If you are not the intended recipient, you are
not authorized to read, print, retain copy, disseminate, distribute, or use
this message or any part thereof. If you receive this message in error, please
notify the sender immediately and delete all copies of this message. KPIT
Cummins Infosystems Ltd. does not accept any liability for virus infected
mails.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
This message contains information that may be privileged or confidential and is
the property of the KPIT Cummins Infosystems Ltd. It is intended only for the
person to whom it is addressed. If you are not the intended recipient, you are
not authorized to read, print, retain copy, disseminate, distribute, or use
this message or any part thereof. If you receive this message in error, please
notify the sender immediately and delete all copies of this message. KPIT
Cummins Infosystems Ltd. does not accept any liability for virus infected
mails.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users