[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