<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Great!<br>
      Glad to be able to return to the community.<br>
      --W<br>
      <br>
      On 10/29/2012 12:34 PM, Mario Fusco wrote:<br>
    </div>
    <blockquote
cite="mid:CAPYjU_mejhpdPfX1fwNqPKuH_gLZZ1EsnzLHHf2q709PeZZQDg@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">
        <div>I just pushed the fix for the issue you found.<br>
          <br>
          Regards and thank you again for having pointed it out,<br>
          Mario<br>
           </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">
          Hi All,<br>
          <br>
          As a first time GIT user... I think I have manager to "pull
          this off"<br>
          and submitted a pull request for a test case in the
          drools-compiler<br>
          project. This should add one file in src/test/ in the package<br>
          org.drools.compiler.integration as I deemed that to be the
          most<br>
          appropriate place.<br>
          <br>
          Regards,<br>
          Willem<br>
          <div class="HOEnZb">
            <div class="h5"><br>
              On 10/26/2012 06:37 AM, Mark Proctor wrote:<br>
              &gt; Would it be possible to submit a small self contains
              test, as a pull request. Here a detailed "how to" to get
              you started.<br>
              &gt; <a moz-do-not-send="true"
href="http://docs.jboss.org/drools/release/5.4.0.Final/droolsjbpm-introduction-docs/html/gettingstarted.html"
                target="_blank">http://docs.jboss.org/drools/release/5.4.0.Final/droolsjbpm-introduction-docs/html/gettingstarted.html</a><br>
              &gt;<br>
              &gt; Thanks<br>
              &gt;<br>
              &gt; Mark<br>
              &gt; On 25 Oct 2012, at 12:09, Willem van Asperen &lt;<a
                moz-do-not-send="true"
                href="mailto:willem@van.asperen.org">willem@van.asperen.org</a>&gt;
              wrote:<br>
              &gt;<br>
              &gt;&gt; Hi All,<br>
              &gt;&gt;<br>
              &gt;&gt; I have taken the liberty to log this in Jira at<br>
              &gt;&gt; <a moz-do-not-send="true"
                href="https://issues.jboss.org/browse/JBRULES-3670"
                target="_blank">https://issues.jboss.org/browse/JBRULES-3670</a><br>
              &gt;&gt;<br>
              &gt;&gt; Regards,<br>
              &gt;&gt; Willem<br>
              &gt;&gt;<br>
              &gt;&gt; On 10/25/2012 12:44 PM, Willem van Asperen wrote:<br>
              &gt;&gt;&gt; Hi All,<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; The difference between failing or not stems
              from using insert() and<br>
              &gt;&gt;&gt; retract() versus insertLogical(). The first
              two make the package fail to<br>
              &gt;&gt;&gt; load, the latter seems to work fine.<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; I can create a package that *does* load, by
              adding a cast to the full<br>
              &gt;&gt;&gt; class name in the rule:<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; rule "clean up possible slot lock, when no
              longer to schedule"<br>
              &gt;&gt;&gt;       when<br>
              &gt;&gt;&gt;           $p : PossibleSlotLock( $ship; )<br>
              &gt;&gt;&gt;           not ToScheduleLock( mover == $ship
              )<br>
              &gt;&gt;&gt;       then<br>
              &gt;&gt;&gt;           retract(
              (vcm.planner.lock.standard.PossibleSlotLock)$p );<br>
              &gt;&gt;&gt; end<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; and by stating the full class name in the
              inserts, like so:<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; insert(new
              vcm.planner.lock.standard.PossibleSlotLock($ship,
              $chamber,<br>
              &gt;&gt;&gt; $side, $schedule, $eta, $schedule.getTick(),
              "existing"));<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; This way the loading works fine.<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; So this is less about loading compiled files
              and more about class<br>
              &gt;&gt;&gt; loading for insert() and retract().<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; Hope this helps!<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; I have also managed to reproduce this in a
              simple case. jar attached.<br>
              &gt;&gt;&gt; Notice that when I change rule "now use it B"
              to have RHS "insert( new<br>
              &gt;&gt;&gt; Person( $christianName, null ) );" the
              loading works. I can imagine the<br>
              &gt;&gt;&gt; compiler / loader just assumes that a class
              with constructor Person(<br>
              &gt;&gt;&gt; String, ExternalClass ) may become available
              at run time?<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; Regards,<br>
              &gt;&gt;&gt; Willem<br>
              &gt;&gt;&gt;<br>
              &gt;&gt;&gt; On 10/25/2012 11:32 AM, Willem van Asperen
              wrote:<br>
              &gt;&gt;&gt;&gt; Hi All,<br>
              &gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt; To add to this, I've done some further
              testing.<br>
              &gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt; It seems that the particular order in
              which each of the compiled<br>
              &gt;&gt;&gt;&gt; packages is loaded does not matter.<br>
              &gt;&gt;&gt;&gt; Not all packages that declare local
              classes fail... I have now found the<br>
              &gt;&gt;&gt;&gt; two that do. I cannot see any striking
              differences between the ones that<br>
              &gt;&gt;&gt;&gt; do and do not fail...<br>
              &gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt; What I did find is that removing all the
              rules from the failing packages<br>
              &gt;&gt;&gt;&gt; (so only leaving the imports and declare)
              seems to remove this issue!<br>
              &gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt; I'll dig 'round some more.<br>
              &gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt; Regards,<br>
              &gt;&gt;&gt;&gt; Willem<br>
              &gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt; On 10/25/2012 01:45 AM, Wolfgang Laun
              wrote:<br>
              &gt;&gt;&gt;&gt;&gt; Folks,<br>
              &gt;&gt;&gt;&gt;&gt; it seems that something new in
              5.5.0.CR1 sabotages the ingestion of<br>
              &gt;&gt;&gt;&gt;&gt; compiled packages.<br>
              &gt;&gt;&gt;&gt;&gt; -W<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; ---------- Forwarded message
              ----------<br>
              &gt;&gt;&gt;&gt;&gt; From: Willem van Asperen &lt;<a
                moz-do-not-send="true"
                href="mailto:willem@van.asperen.org">willem@van.asperen.org</a>&gt;<br>
              &gt;&gt;&gt;&gt;&gt; Date: Thu, 25 Oct 2012 00:04:32 +0200<br>
              &gt;&gt;&gt;&gt;&gt; Subject: Re: [rules-users]
              ClassNotFound on class defined in drl with 5.5.0.CR1<br>
              &gt;&gt;&gt;&gt;&gt; To: Wolfgang Laun &lt;<a
                moz-do-not-send="true"
                href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt;,
              Rules Users List<br>
              &gt;&gt;&gt;&gt;&gt; &lt;<a moz-do-not-send="true"
                href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>&gt;<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; Hi,<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; This was a good idea. Here is my test
              case:<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; public class TestCompilation {<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;         private final static
              FileFilter RULES_FILES_FILTER = new FileFilter() {<br>
              &gt;&gt;&gt;&gt;&gt;             @Override<br>
              &gt;&gt;&gt;&gt;&gt;             public boolean
              accept(File pathname) {<br>
              &gt;&gt;&gt;&gt;&gt;                 return
              pathname.getName().endsWith(".drl");<br>
              &gt;&gt;&gt;&gt;&gt;             }<br>
              &gt;&gt;&gt;&gt;&gt;         };<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;         private void
              testCompilation() throws FileNotFoundException,<br>
              &gt;&gt;&gt;&gt;&gt; IOException {<br>
              &gt;&gt;&gt;&gt;&gt;            
              KnowledgeBuilderConfiguration configuration =<br>
              &gt;&gt;&gt;&gt;&gt;
              KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();<br>
              &gt;&gt;&gt;&gt;&gt;             KnowledgeBuilder kbuilder
              =<br>
              &gt;&gt;&gt;&gt;&gt;
              KnowledgeBuilderFactory.newKnowledgeBuilder(configuration);<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;             File folder = new
              File("src/main/rules/");<br>
              &gt;&gt;&gt;&gt;&gt;             for (File file :
              folder.listFiles(RULES_FILES_FILTER)) {<br>
              &gt;&gt;&gt;&gt;&gt;                
              System.out.println("compiling "+file.getAbsolutePath());<br>
              &gt;&gt;&gt;&gt;&gt;
              kbuilder.add(ResourceFactory.newFileResource(file.getAbsolutePath()),<br>
              &gt;&gt;&gt;&gt;&gt; ResourceType.DRL);<br>
              &gt;&gt;&gt;&gt;&gt;             }<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;            
              System.out.println("saving");<br>
              &gt;&gt;&gt;&gt;&gt;             ObjectOutputStream out =
              new ObjectOutputStream(new<br>
              &gt;&gt;&gt;&gt;&gt;
              FileOutputStream("test.drl.compiled"));<br>
              &gt;&gt;&gt;&gt;&gt;             out.writeObject(
              kbuilder.getKnowledgePackages());<br>
              &gt;&gt;&gt;&gt;&gt;             out.close();<br>
              &gt;&gt;&gt;&gt;&gt;         }<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;         private KnowledgeBase
              testLoad() throws FileNotFoundException,<br>
              &gt;&gt;&gt;&gt;&gt; IOException, ClassNotFoundException {<br>
              &gt;&gt;&gt;&gt;&gt;             Properties
              configProperties = new Properties();<br>
              &gt;&gt;&gt;&gt;&gt;            
              KnowledgeBaseConfiguration knowledgeBaseConfiguration =<br>
              &gt;&gt;&gt;&gt;&gt;
              KnowledgeBaseFactory.newKnowledgeBaseConfiguration(configProperties);<br>
              &gt;&gt;&gt;&gt;&gt;             KnowledgeBase kbase =<br>
              &gt;&gt;&gt;&gt;&gt;
              KnowledgeBaseFactory.newKnowledgeBase(knowledgeBaseConfiguration);<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;             ObjectInputStream in =
              new ObjectInputStream(new<br>
              &gt;&gt;&gt;&gt;&gt;
              FileInputStream("test.drl.compiled"));<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;            
              System.out.println("loading");<br>
              &gt;&gt;&gt;&gt;&gt;
              kbase.addKnowledgePackages((Collection&lt;KnowledgePackage&gt;)
              in.readObject());<br>
              &gt;&gt;&gt;&gt;&gt;             return kbase;<br>
              &gt;&gt;&gt;&gt;&gt;         }<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;         public static void
              main(String[] args) throws<br>
              &gt;&gt;&gt;&gt;&gt; FileNotFoundException, IOException,
              ClassNotFoundException {<br>
              &gt;&gt;&gt;&gt;&gt;             TestCompilation
              testCompilation = new TestCompilation();<br>
              &gt;&gt;&gt;&gt;&gt;            
              testCompilation.testCompilation();<br>
              &gt;&gt;&gt;&gt;&gt;            
              testCompilation.testLoad();<br>
              &gt;&gt;&gt;&gt;&gt;         }<br>
              &gt;&gt;&gt;&gt;&gt; }<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; The folder src/main/rules consists of
              a number of .drl files.<br>
              &gt;&gt;&gt;&gt;&gt; Compiling works fine.<br>
              &gt;&gt;&gt;&gt;&gt; This is the output:<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; SLF4J: Failed to load class
              "org.slf4j.impl.StaticLoggerBinder".<br>
              &gt;&gt;&gt;&gt;&gt; SLF4J: Defaulting to no-operation
              (NOP) logger implementation<br>
              &gt;&gt;&gt;&gt;&gt; SLF4J: See <a moz-do-not-send="true"
href="http://www.slf4j.org/codes.html#StaticLoggerBinder"
                target="_blank">http://www.slf4j.org/codes.html#StaticLoggerBinder</a>
              for<br>
              &gt;&gt;&gt;&gt;&gt; further details.<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
              /home/willem/development/workspace/VCM/src/main/rules/planner-lock.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/executable-action-selection.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
              /home/willem/development/workspace/VCM/src/main/rules/block-times-3.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
              /home/willem/development/workspace/VCM/src/main/rules/planner-bridge.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
              /home/willem/development/workspace/VCM/src/main/rules/routeplan.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/shift-management-brabant.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/plan-first-object-in-route.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
              /home/willem/development/workspace/VCM/src/main/rules/operator-lock.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/block-times-route-call.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/shift-management.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/planner-process-data.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/plan-last-moment.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/operator-bridge.drl<br>
              &gt;&gt;&gt;&gt;&gt; compiling<br>
              &gt;&gt;&gt;&gt;&gt;
/home/willem/development/workspace/VCM/src/main/rules/operator-management.drl<br>
              &gt;&gt;&gt;&gt;&gt; saving<br>
              &gt;&gt;&gt;&gt;&gt; loading<br>
              &gt;&gt;&gt;&gt;&gt; Exception in thread "main"
              java.lang.ClassNotFoundException:<br>
              &gt;&gt;&gt;&gt;&gt;
              vcm.planner.lock.standard.PossibleSlotLock<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.net.URLClassLoader$1.run(URLClassLoader.java:366)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.net.URLClassLoader$1.run(URLClassLoader.java:355)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.security.AccessController.doPrivileged(Native Method)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.net.URLClassLoader.findClass(URLClassLoader.java:354)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.ClassLoader.loadClass(ClassLoader.java:423)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.ClassLoader.loadClass(ClassLoader.java:356)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.Class.forName0(Native Method)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.Class.forName(Class.java:264)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:85)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:97)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readClass(ObjectInputStream.java:1480)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1330)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.rule.ConsequenceMetaData$Statement.readExternal(ConsequenceMetaData.java:61)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.util.ArrayList.readObject(ArrayList.java:733)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              sun.reflect.GeneratedMethodAccessor7.invoke(Unknown
              Source)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.reflect.Method.invoke(Method.java:601)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.rule.ConsequenceMetaData.readExternal(ConsequenceMetaData.java:19)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              org.drools.rule.Rule.readExternal(Rule.java:207)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.util.HashMap.readObject(HashMap.java:1155)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              sun.reflect.NativeMethodAccessorImpl.invoke0(Native
              Method)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.reflect.Method.invoke(Method.java:601)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:58)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              org.drools.rule.Package.readExternal(Package.java:208)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:157)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.util.ArrayList.readObject(ArrayList.java:733)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              sun.reflect.NativeMethodAccessorImpl.invoke0(Native
              Method)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.lang.reflect.Method.invoke(Method.java:601)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;         at
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.test.TestCompilation.testLoad(TestCompilation.java:57)<br>
              &gt;&gt;&gt;&gt;&gt;         at<br>
              &gt;&gt;&gt;&gt;&gt;
              com.paconsulting.pase.test.TestCompilation.main(TestCompilation.java:64)<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; The class PossibleSlotLock is just a
              locally declared fact class. It is<br>
              &gt;&gt;&gt;&gt;&gt; only being used in that particular
              .drl file. Every .drl file has it's<br>
              &gt;&gt;&gt;&gt;&gt; own package name.<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; The head of the .drl file:<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; package vcm.planner.lock.standard;<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; import java.util.Set;<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.core.schedule.CurrentTime;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.core.duration.FixedDuration;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.ScheduleManagingContainer;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.movers.Ship;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.water.Lock;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.water.LockChamber;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.base.WaterLevel;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.components.action.ActionFactory;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.actions.IAction;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.components.action.IActionable;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.actions.NonTransactionAction;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.actions.ExecutableAction;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.components.containing.IContainer;<br>
              &gt;&gt;&gt;&gt;&gt; import<br>
              &gt;&gt;&gt;&gt;&gt;
              com.paconsulting.pase.transport.components.containing.IContainer.UpDown;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.components.moving.IMover;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.components.moving.TransferSchedule;<br>
              &gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.components.moving.ToScheduleLock;<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; declare PossibleSlotLock<br>
              &gt;&gt;&gt;&gt;&gt;         ship : IMover<br>
              &gt;&gt;&gt;&gt;&gt;         chamber : IContainer<br>
              &gt;&gt;&gt;&gt;&gt;         side : IContainer.UpDown<br>
              &gt;&gt;&gt;&gt;&gt;         schedule : TransferSchedule<br>
              &gt;&gt;&gt;&gt;&gt;         eta : double<br>
              &gt;&gt;&gt;&gt;&gt;         at : double<br>
              &gt;&gt;&gt;&gt;&gt;         cause : String<br>
              &gt;&gt;&gt;&gt;&gt; end<br>
              &gt;&gt;&gt;&gt;&gt; ....<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; Same issue like in my previous email,
              different class that cannot be found.<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; This works in 5.4.0.Final<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; Any clue?<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; This seems to me like a really basic
              thing so either I am missing the<br>
              &gt;&gt;&gt;&gt;&gt; plot somehow or no-one has yet used a
              locally declared fact classes -<br>
              &gt;&gt;&gt;&gt;&gt; which I think is just not true...<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; Regards,<br>
              &gt;&gt;&gt;&gt;&gt; Willem<br>
              &gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt; On 10/24/2012 07:29 PM, Wolfgang Laun
              wrote:<br>
              &gt;&gt;&gt;&gt;&gt;&gt; It would be interesting to know
              (and perhaps help to isolate the problem<br>
              &gt;&gt;&gt;&gt;&gt;&gt; apparently introduced in 5.5.0)
              if you could try and compile and<br>
              &gt;&gt;&gt;&gt;&gt;&gt; serialize into a single file, and
              load that in a single readObject.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt; -W<br>
              &gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt; On 24/10/2012, Willem van Asperen
              &lt;<a moz-do-not-send="true"
                href="mailto:willem@van.asperen.org">willem@van.asperen.org</a>&gt;
              wrote:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi Wolfgang,<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks for picking this up. I
              am indeed compiling these separate .drl<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; files into separate
              .drl.compiled files and then creating a kbase using<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; addKnowledgePackages on the
              individual .drl.compiled files.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; But: the classes declared in
              some of by .drl files are only going to be<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; used in that particular .drl
              file - not anywhere else.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Also: this did work in
              5.4.0.Final but now has given up on me.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Point is that I need to be
              flexible in mixing different .drl.compiled<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; files into a kbase, based on
              user specifications.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Alternative is that I do not
              pre-compile these .drl files and only<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; compile them, in combination,
              in the mix that is required by the user...<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; If that would solve the
              problem... But it seems to be more cumbersome...<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Regards,<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; Willem<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt; On 10/24/2012 03:39 PM,
              Wolfgang Laun wrote:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; The code you use for
              loading where you load many .pkg files isn't<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; quite the counterpart for
              compiling where you compile one DRL.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Do you compile and output
              the .drl files one by one? Apparently you<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; load them individually?<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Try compiling them all,
              and then take the Collection&lt;KnowledgePackage&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; and writeObject it to a
              single .pkg from which you load them in one<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; go.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Could it be that the type
              declared in one .drl is used in another .drl<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; in the same package?
              Reading this in the wrong order might cause the<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; CNF.<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -W<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 24/10/2012, Willem van
              Asperen &lt;<a moz-do-not-send="true"
                href="mailto:willem@van.asperen.org">willem@van.asperen.org</a>&gt;
              wrote:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Dear All,<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I use the Drools
              compiler to compile a set of drl files:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;              
              KnowledgeBuilder kbuilder =<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              KnowledgeBuilderFactory.newKnowledgeBuilder(configuration);<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;              
              kbuilder.add(ResourceFactory.newFileResource(fileName),<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ResourceType.DRL);<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;              
              KnowledgeBuilderErrors errors = kbuilder.getErrors();<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;               if
              (errors.size() &gt; 0) {<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                   for
              (KnowledgeBuilderError error: errors) {<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                      
              logger.error(error);<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                   }<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                  
              throw new IllegalArgumentException("Could not parse<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; knowledge.");<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;               }<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;              
              ObjectOutputStream out = new ObjectOutputStream(new<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              FileOutputStream(fileName+".compiled"));<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;              
              out.writeObject( kbuilder.getKnowledgePackages());<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;              
              out.close();<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I then load these
              *.compiled files into my application:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;               for
              (String packageName : packages) {<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                  
              InputStream is =<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              getClass().getResourceAsStream("/"+packageName+".drl.compiled");<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                   if
              (is != null) {<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                      
              logger.debug("adding package '"+packageName+"'");<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                      
              ObjectInputStream in = new ObjectInputStream(is);<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              kbase.addKnowledgePackages((Collection&lt;KnowledgePackage&gt;)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; in.readObject());<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                      
              in.close();<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                   }
              else<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                      
              throw new FileNotFoundException("could not find<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; resource for package
              "+packageName);<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;                  
              is.close();<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;               }<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; In some of these drl
              files I declare a class, for instance:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; package
              vcm.selection.standard;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.ShiftWorker;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.VCMShiftWorker;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.actions.ExecutableAction;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.ScheduleManagingContainer;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.water.Bridge;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.movers.AbstractMover;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.movers.Ship;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; import
              com.paconsulting.pase.transport.agents.movers.VCMShip;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; declare
              RelevantExecutableAction<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           agent :
              ShiftWorker<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;          
              executableAction : ExecutableAction<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; end<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ...<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; When running the<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              kbase.addKnowledgePackages((Collection&lt;KnowledgePackage&gt;)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; in.readObject()) I
              get the following ClassNotFound stack trace:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.lang.ClassNotFoundException:<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              vcm.selection.standard.RelevantExecutableAction<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.net.URLClassLoader$1.run(URLClassLoader.java:366)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.net.URLClassLoader$1.run(URLClassLoader.java:355)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.security.AccessController.doPrivileged(Native Method)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.net.URLClassLoader.findClass(URLClassLoader.java:354)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.ClassLoader.loadClass(ClassLoader.java:423)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.ClassLoader.loadClass(ClassLoader.java:356)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.Class.forName0(Native Method)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.Class.forName(Class.java:264)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:85)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:97)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readClass(ObjectInputStream.java:1480)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1330)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.rule.ConsequenceMetaData$Statement.readExternal(ConsequenceMetaData.java:61)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.util.ArrayList.readObject(ArrayList.java:733)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              sun.reflect.NativeMethodAccessorImpl.invoke0(Native
              Method)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.reflect.Method.invoke(Method.java:601)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.rule.ConsequenceMetaData.readExternal(ConsequenceMetaData.java:19)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              org.drools.rule.Rule.readExternal(Rule.java:207)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.util.HashMap.readObject(HashMap.java:1155)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              sun.reflect.GeneratedMethodAccessor2.invoke(Unknown
              Source)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.reflect.Method.invoke(Method.java:601)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:58)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              org.drools.rule.Package.readExternal(Package.java:208)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:157)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.util.ArrayList.readObject(ArrayList.java:733)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              sun.reflect.NativeMethodAccessorImpl.invoke0(Native
              Method)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at
              java.lang.reflect.Method.invoke(Method.java:601)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.definition.KnowledgebaseDefinition.addPackages(KnowledgebaseDefinition.java:48)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.definition.KnowledgebaseDefinition.materialize(KnowledgebaseDefinition.java:59)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.definition.TeamDefinition.materialize(TeamDefinition.java:97)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.definition.OperatingModelDefinition.materialize(OperatingModelDefinition.java:36)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.Run.&lt;init&gt;(Run.java:31)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.definition.RunDefinition.materialize(RunDefinition.java:53)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;           at<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
com.paconsulting.pase.core.configuration.runconfig.RunConfigExecutor$ScheduleExecutorWrapper.run(RunConfigExecutor.java:69)<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ...<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I'm sure I miss
              something as this is basic functionality. Maybe I must<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; tell the kbase where
              to load the classes...<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Can someone point me
              in the right direction?<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks,<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Willem<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              _______________________________________________<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; rules-users mailing
              list<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a
                moz-do-not-send="true"
                href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a
                moz-do-not-send="true"
                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;&gt;&gt;&gt;&gt;&gt;<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
              _______________________________________________<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; rules-users mailing list<br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a
                moz-do-not-send="true"
                href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
              &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a
                moz-do-not-send="true"
                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;&gt; rules-dev mailing list<br>
              &gt;&gt;&gt;&gt; <a moz-do-not-send="true"
                href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
              &gt;&gt;&gt;&gt; <a moz-do-not-send="true"
                href="https://lists.jboss.org/mailman/listinfo/rules-dev"
                target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
              &gt;&gt; _______________________________________________<br>
              &gt;&gt; rules-dev mailing list<br>
              &gt;&gt; <a moz-do-not-send="true"
                href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
              &gt;&gt; <a moz-do-not-send="true"
                href="https://lists.jboss.org/mailman/listinfo/rules-dev"
                target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
              &gt;<br>
              &gt; _______________________________________________<br>
              &gt; rules-dev mailing list<br>
              &gt; <a moz-do-not-send="true"
                href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
              &gt; <a moz-do-not-send="true"
                href="https://lists.jboss.org/mailman/listinfo/rules-dev"
                target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
              <br>
              _______________________________________________<br>
              rules-dev mailing list<br>
              <a moz-do-not-send="true"
                href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
              <a moz-do-not-send="true"
                href="https://lists.jboss.org/mailman/listinfo/rules-dev"
                target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
  </body>
</html>