[jboss-svn-commits] JBL Code SVN: r19124 - in labs/jbossrules/branches/fixing_bad_merge: drools-core/src/main/java/org/drools/common and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 19 13:13:59 EDT 2008


Author: mingjin
Date: 2008-03-19 13:13:59 -0400 (Wed, 19 Mar 2008)
New Revision: 19124

Added:
   labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBaseSerializationTest.java
   labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/integrationtests/
   labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/integrationtests/SerializationHelper.java
   labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/rule/EnumSerialiationTest.java
Modified:
   labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java
   labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/DroolsObjectOutputStream.java
   labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
   labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
Log:
JBRULES-1488 fixing bad merge
- pulled in new unit tests and implemented external for TypeDeclaration.

Modified: labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java	2008-03-19 16:07:33 UTC (rev 19123)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -7,9 +7,11 @@
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.StringReader;
+import java.io.ObjectOutput;
 
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
+import org.drools.common.DroolsObjectOutputStream;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
@@ -80,7 +82,7 @@
 			f.delete();
 
 		time = System.currentTimeMillis();
-		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
+		ObjectOutput out = new DroolsObjectOutputStream(new FileOutputStream(f));
 		out.writeObject(rb);
 		out.flush();
 		out.close();
@@ -165,7 +167,7 @@
 				+ (System.currentTimeMillis() - time));
 	}
 
-	private static String getHeader() {
+	public static String getHeader() {
 		return "package org.drools.test; \n " + "import org.drools.Person; \n "
 				+ "import org.drools.Cheese; \n "
 				+ "import org.drools.Cheesery; \n "
@@ -173,7 +175,7 @@
 				+ " global List list \n dialect 'mvel'\n  ";
 	}
 
-	private static String getTemplate1(String name, int status) {
+	public static String getTemplate1(String name, int status) {
 		return "rule 'match Person "
 				+ name
 				+ "' \n"

Added: labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBaseSerializationTest.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBaseSerializationTest.java	                        (rev 0)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBaseSerializationTest.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -0,0 +1,45 @@
+package org.drools.integrationtests;
+
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.PackageBuilder;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.rule.*;
+import org.drools.rule.Package;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+
+import java.io.StringReader;
+
+import junit.framework.TestCase;
+
+/**
+ * Created by IntelliJ IDEA. User: SG0521861 Date: Mar 18, 2008 Time: 1:22:50 PM To change this template use File |
+ * Settings | File Templates.
+ */
+public class LargeRuleBaseSerializationTest extends TestCase {
+    private static final int    RULE_COUNT  = 200;
+
+    public void testLargeRuleBase() throws Exception{
+        System.out.println("Generating "+RULE_COUNT+" rules");
+        StringBuilder   sb  = new StringBuilder(LargeRuleBase.getHeader());
+
+        for (int i = 0; i < RULE_COUNT; i++) {
+            sb.append(LargeRuleBase.getTemplate1("testRule"+i, i));
+        }
+        System.out.println("Parsing "+RULE_COUNT+" rules");
+        DrlParser ps = new DrlParser();
+        PackageDescr pkgDescr = ps.parse(new StringReader(sb.toString()));
+
+        PackageBuilder pkgBuilder = new PackageBuilder();
+        pkgBuilder.addPackage(pkgDescr);
+
+        Package pkg = pkgBuilder.getPackage();
+        RuleBase rb = RuleBaseFactory.newRuleBase();
+
+        rb.addPackage(pkg);
+
+        rb  = SerializationHelper.serializeObject(rb);
+
+    }
+
+}

Modified: labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/DroolsObjectOutputStream.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/DroolsObjectOutputStream.java	2008-03-19 16:07:33 UTC (rev 19123)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/DroolsObjectOutputStream.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -303,7 +303,6 @@
                 writeObjectOrReference(object, clazz);
             }
         }
-        flush();
     }
 
     /**

Modified: labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2008-03-19 16:07:33 UTC (rev 19123)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -300,7 +300,7 @@
             droolsStream    = (DroolsObjectOutputStream)out;
         } else {
              bytes = new ByteArrayOutputStream();
-             droolsStream   = new DroolsObjectOutputStream((OutputStream)new ObjectOutputStream(bytes));
+             droolsStream   = new DroolsObjectOutputStream(bytes);
         }
         droolsStream.writeObject(rules);
         droolsStream.writeObject(idGenerator);
@@ -322,18 +322,17 @@
             droolsStream    = (DroolsObjectInputStream)in;
         } else {
             bytes   = new ByteArrayInputStream((byte[])in.readObject());
-            droolsStream    = new DroolsObjectInputStream((InputStream)new ObjectInputStream(bytes));
+            droolsStream    = new DroolsObjectInputStream(bytes);
         }
         this.rules          = (Map)in.readObject();
         this.idGenerator    = (IdGenerator)in.readObject();
         this.ordered        = in.readBoolean();
-
-        // TODO: possible null for rule base.
         this.ruleBase       = (InternalRuleBase)droolsStream.readObject();
-        this.ruleBuilder    = new ReteooRuleBuilder();
         if (!isDrools) {
             bytes.close();
         }
+
+        this.ruleBuilder    = new ReteooRuleBuilder();
     }
 
 }

Modified: labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-03-19 16:07:33 UTC (rev 19123)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -251,5 +251,26 @@
         return matches;
     }
 
+    public boolean equals(Object obj) {
+        if (obj == this) {
+            return true;
+        } else if (obj instanceof TypeDeclaration) {
+            TypeDeclaration that    = (TypeDeclaration)obj;
+            return isObjectEqual(typeName, that.typeName) &&
+                   role == that.role &&
+                   format == that.format &&
+                   clockStrategy == that.clockStrategy &&
+                   isObjectEqual(timestampAttribute, that.timestampAttribute) &&
+                   isObjectEqual(durationAttribute, that.durationAttribute) &&
+                   typeClass == that.typeClass &&
+                   isObjectEqual(typeTemplate, that.typeTemplate);
+        }
+        return false;
+    }
 
+
+    private static boolean isObjectEqual(Object a, Object b) {
+        return a == b || a != null && a.equals(b);
+    }
+
 }

Added: labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/integrationtests/SerializationHelper.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/integrationtests/SerializationHelper.java	                        (rev 0)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/integrationtests/SerializationHelper.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -0,0 +1,29 @@
+package org.drools.integrationtests;
+
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.common.DroolsObjectInputStream;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ByteArrayInputStream;
+
+/**
+ * Marshalling helper class to perform serialize/de-serialize a given object
+ */
+public class SerializationHelper {
+    public static <T> T serializeObject(T obj) throws IOException, ClassNotFoundException {
+        return (T)serializeIn(serializeOut(obj));
+    }
+
+    public static byte[] serializeOut(Object obj) throws IOException {
+        ByteArrayOutputStream   out = new ByteArrayOutputStream();
+        new DroolsObjectOutputStream(out).writeObject(obj);
+        out.close();
+        return out.toByteArray();
+    }
+
+    public static Object serializeIn(byte[] bytes)
+            throws IOException, ClassNotFoundException {
+        return new DroolsObjectInputStream(new ByteArrayInputStream(bytes)).readObject();
+    }
+}

Added: labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/rule/EnumSerialiationTest.java
===================================================================
--- labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/rule/EnumSerialiationTest.java	                        (rev 0)
+++ labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/rule/EnumSerialiationTest.java	2008-03-19 17:13:59 UTC (rev 19124)
@@ -0,0 +1,20 @@
+package org.drools.rule;
+
+import junit.framework.TestCase;
+import org.drools.integrationtests.SerializationHelper;
+
+/**
+ * Created by IntelliJ IDEA. User: Ming Jin Date: Mar 19, 2008 Time: 11:11:45 AM To change this template use File |
+ * Settings | File Templates.
+ */
+public class EnumSerialiationTest extends TestCase {
+    private static final String TEST_NAME   = "test name";
+
+    public void testTypeDeclaration() throws Exception {
+        TypeDeclaration typeDec1 = new TypeDeclaration(TEST_NAME);
+
+        TypeDeclaration typeDec2    = SerializationHelper.serializeObject(typeDec1);
+
+        assertEquals(typeDec1, typeDec2);
+    }
+}




More information about the jboss-svn-commits mailing list