[jboss-svn-commits] JBL Code SVN: r19048 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 17 21:30:13 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-03-17 21:30:13 -0400 (Mon, 17 Mar 2008)
New Revision: 19048

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/billasurf.jar
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
Log:
adding some serialization tests

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java	2008-03-18 01:12:02 UTC (rev 19047)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java	2008-03-18 01:30:13 UTC (rev 19048)
@@ -47,7 +47,7 @@
 	 * Subsequent ones follow the above column definitions:
 	 * attributeCols, then conditionCols, then actionCols, in that order, left to right.
 	 */
-	public String[][] data;
+	public String[][] data = new String[0][0];
 
 	//TODO: add in precondition(s)
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java	2008-03-18 01:12:02 UTC (rev 19047)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java	2008-03-18 01:30:13 UTC (rev 19048)
@@ -1,6 +1,19 @@
 package org.drools.integrationtests;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+
 import junit.framework.TestCase;
+
 import org.drools.Cheese;
 import org.drools.Person;
 import org.drools.Primitives;
@@ -9,19 +22,14 @@
 import org.drools.RuleBaseFactory;
 import org.drools.StatefulSession;
 import org.drools.WorkingMemory;
+import org.drools.common.DroolsObjectInputStream;
 import org.drools.common.InternalFactHandle;
 import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.rule.MapBackedClassLoader;
 import org.drools.rule.Package;
 import org.drools.rule.Rule;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 public class MarshallingTest extends TestCase {
     public void testSerializable() throws Exception {
 
@@ -418,6 +426,48 @@
 
     }
 
+    /**
+     * In this case we are dealing with facts which are not on the systems classpath.
+     *
+     */
+    public void testSerializabilityWithJarFacts() throws Exception {
+        MapBackedClassLoader loader = new MapBackedClassLoader( this.getClass().getClassLoader() );
+
+        JarInputStream jis = new JarInputStream(this.getClass().getResourceAsStream("/billasurf.jar"));
+
+        JarEntry entry = null;
+        byte[] buf = new byte[1024];
+        int len = 0;
+        while ( (entry = jis.getNextJarEntry()) != null ) {
+            if ( !entry.isDirectory() ) {
+                ByteArrayOutputStream out = new ByteArrayOutputStream();
+                while ( (len = jis.read( buf )) >= 0 ) {
+                    out.write( buf, 0, len );
+                }
+                loader.addResource( entry.getName() , out.toByteArray() );
+            }
+        }
+
+        String drl = "package foo.bar \n" +
+        			"import com.billasurf.Board\n" +
+        			"rule 'MyGoodRule' \n dialect 'mvel' \n when Board() then System.err.println(42); \n end\n";
+
+        PackageBuilder builder = new PackageBuilder(new PackageBuilderConfiguration(loader));
+        builder.addPackageFromDrl(new StringReader(drl));
+        assertFalse(builder.hasErrors());
+
+        Package p = builder.getPackage();
+        byte[] ser = SerializationHelper.serializeOut(p);
+
+        //now read it back
+        DroolsObjectInputStream in = new DroolsObjectInputStream(new ByteArrayInputStream(ser), loader);
+        Package p_ = (Package) in.readObject();
+        assertNotNull(p_);
+
+    }
+
+
+
     protected RuleBase getRuleBase() throws Exception {
 
         return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/billasurf.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/billasurf.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-svn-commits mailing list