[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