<div><br></div> Yes, the only mandatory external dependency of drools-core/drools-api is MVEL. No way around it, because we use MVEL internally for a few things, even when the actual rules use java dialect.<div><br></div>
<div> Edson<br><br><div class="gmail_quote">2010/6/25 Greg Barton <span dir="ltr"><<a href="mailto:greg_barton@yahoo.com">greg_barton@yahoo.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top" style="font:inherit">It was my understanding that even if you set the dialect to java that mvel is still used to execute some LHS expressions. (Except for code inside an accumulate expression.) It's the RHS that is mainly affected.<br>
<br>--- On <b>Fri, 6/25/10, Wolfgang Laun <i><<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>></i></b> wrote:<br><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px">
<br>From: Wolfgang Laun <<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>><br>Subject: [rules-users] Minimum jar set in 5.1.0.M2 contains lib/mvel2.jar - a show stopper for us<br>
To: "Rules Users List" <<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>><br>Date: Friday, June 25, 2010, 3:05 AM<div><div></div><div class="h5"><br><br><div>I've read somewhere that the minimum jar set for execution with a precompiled .pkg is just<br>
drools-api-5.1.0.M2.jar<br>
drools-core-5.1.0.M2.jar<br><br>However, trying to run an application with just a .pkg file, this jar set results in the stack<br>
dump shown below, due to a missing "org.mvel2..." class. Adding lib/mvel2-2.0.16.jar to the<br>CLASSPATH fixes this, but (for reasons I don't care to elaborate here) be we can't have this<br>in our application. <br>
<br>Can this .jar be avoided? <br><br>Note: I'm not using mvel, and the .drl file begins with "package movie; dialect "java".<br><br>-W<br><br><br>Exception in thread "main" java.lang.NoClassDefFoundError: org/mvel2/integration/impl/MapVariableResolverFactory<br>
at java.lang.ClassLoader.defineClass1(Native Method)<br> at java.lang.ClassLoader.defineClass(ClassLoader.java:632)<br> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)<br> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)<br>
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)<br> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)<br> at java.security.AccessController.doPrivileged(Native Method)<br> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)<br>
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)<br> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)<br> at java.lang.ClassLoader.loadClass(ClassLoader.java:264)<br> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)<br>
at java.lang.Class.getDeclaredFields0(Native Method)<br> at java.lang.Class.privateGetDeclaredFields(Class.java:2308)<br> at java.lang.Class.getDeclaredField(Class.java:1897)<br> at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1627)<br>
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:69)<br> at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:442)<br> at java.security.AccessController.doPrivileged(Native Method)<br> at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:430)<br>
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:327)<br> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:564)<br> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)<br>
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)<br> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)<br> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br> at java.util.HashMap.readObject(HashMap.java:1047)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br> at java.lang.reflect.Method.invoke(Method.java:616)<br> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)<br>
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)<br> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)<br> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br> at org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:41)<br> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1809)<br>
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)<br> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>
at org.drools.rule.Package.readExternal(Package.java:198)<br> at org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:99)<br> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1809)<br>
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)<br> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>
at java.util.ArrayList.readObject(ArrayList.java:696)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
at java.lang.reflect.Method.invoke(Method.java:616)<br> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)<br> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)<br>
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)<br>
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br> at movie.Main.init(Main.java:40)<br> at movie.Main.main(Main.java:89)<br>
Caused by: java.lang.ClassNotFoundException: org.mvel2.integration.impl.MapVariableResolverFactory<br> at java.net.URLClassLoader$1.run(URLClassLoader.java:217)<br> at java.security.AccessController.doPrivileged(Native Method)<br>
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)<br> at java.lang.ClassLoader.loadClass(ClassLoader.java:319)<br> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)<br> at java.lang.ClassLoader.loadClass(ClassLoader.java:264)<br>
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)<br> ... 60 more<br><br><br>
</div><br></div></div>-----Inline Attachment Follows-----<div class="im"><br><br><div>_______________________________________________<br>rules-users mailing list<br><a href="http://mc/compose?to=rules-users@lists.jboss.org" target="_blank">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></td></tr></tbody></table><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>
<br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>
</div>