[jboss-svn-commits] JBL Code SVN: r18974 - in labs/jbossrules/branches/ming-serialization: drools-compiler/src/test/java/org/drools and 15 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 14 10:36:10 EDT 2008
Author: mingjin
Date: 2008-03-14 10:36:09 -0400 (Fri, 14 Mar 2008)
New Revision: 18974
Modified:
labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaFunction.mvel
labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/Primitives.java
labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/FactHandle.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBase.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseEventManager.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/WorkingMemoryEventManager.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FieldFactory.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FireAllRulesRuleBaseUpdateListener.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/accumulators/AccumulateFunction.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/Operator.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELGlobalVariable.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELKnowledgeHelper.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELLocalDeclarationVariable.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELPreviousDeclarationVariable.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELPredicateExpression.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueExpression.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/BetaConstraints.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultAgenda.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/NodeMemories.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObject.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Command.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/CommandExecutor.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/DefaultExecutorService.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/ExecutorService.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Future.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/RetractObject.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/DefaultRuleBaseEventListener.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/RuleBaseEventListener.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/DataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/BooleanDataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/FloatDataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/IntegerDataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ListDataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/StringDataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/UndefinedDataType.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Function.java
labs/jbossrules/branches/ming-serialization/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java
Log:
Making sure to to use ValueType.deternineValueType to restore staticreferences in readExternal
Modified: labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaFunction.mvel
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaFunction.mvel 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaFunction.mvel 2008-03-14 14:36:09 UTC (rev 18974)
@@ -8,10 +8,16 @@
import static @{importEntry};
@end{}
-public class @{className} {
+public class @{className} implements java.io.Externalizable {
private static final long serialVersionUID = 400L;
public static @{returnType} @{methodName}(@foreach{parameterTypes as type, parameterNames as name}@{type} @{name}@end{","}) throws Exception {
@{text}
}
+
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException {
+ }
+
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel 2008-03-14 14:36:09 UTC (rev 18974)
@@ -371,7 +371,7 @@
actionInvoker() ::=<<
package @{package};
-public class @{invokerClassName} implements org.drools.spi.Action
+public class @{invokerClassName} implements org.drools.spi.Action, java.io.Externalizable
{
private static final long serialVersionUID = 400L;
@@ -384,13 +384,19 @@
@foreach{globals as identifier} @{identifier}
@end{","} );
}
+
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException {
+ }
+
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ }
}
>>=::
returnValueEvaluatorInvoker() ::=<<
package @{package};
-public class @{invokerClassName} implements org.drools.spi.ReturnValueEvaluator
+public class @{invokerClassName} implements org.drools.spi.ReturnValueEvaluator, java.io.Externalizable
{
private static final long serialVersionUID = 400L;
@@ -403,5 +409,11 @@
@foreach{globals as identifier} @{identifier}
@end{","} );
}
+
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException {
+ }
+
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ }
}
>>=::
\ No newline at end of file
Modified: labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/Primitives.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/Primitives.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/Primitives.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,10 +1,7 @@
package org.drools;
-import java.util.Arrays;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
import java.io.Serializable;
+import java.util.Arrays;
/*
* Copyright 2005 JBoss Inc
Modified: labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,22 +16,8 @@
* limitations under the License.
*/
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import junit.framework.Assert;
import junit.framework.TestCase;
-
import org.acme.insurance.Driver;
import org.acme.insurance.Policy;
import org.drools.Address;
@@ -40,6 +26,7 @@
import org.drools.Cheese;
import org.drools.CheeseEqual;
import org.drools.Cheesery;
+import org.drools.Cheesery.Maturity;
import org.drools.Child;
import org.drools.FactA;
import org.drools.FactB;
@@ -73,8 +60,6 @@
import org.drools.StatelessSession;
import org.drools.TestParam;
import org.drools.WorkingMemory;
-import org.drools.reteoo.ReteooRuleBase;
-import org.drools.Cheesery.Maturity;
import org.drools.audit.WorkingMemoryFileLogger;
import org.drools.base.ClassObjectFilter;
import org.drools.common.AbstractWorkingMemory;
@@ -84,9 +69,9 @@
import org.drools.compiler.DroolsError;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.PackageBuilder.PackageMergeException;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.compiler.ParserError;
-import org.drools.compiler.PackageBuilder.PackageMergeException;
import org.drools.event.ActivationCancelledEvent;
import org.drools.event.ActivationCreatedEvent;
import org.drools.event.AfterActivationFiredEvent;
@@ -105,15 +90,28 @@
import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
+import org.drools.reteoo.ReteooRuleBase;
import org.drools.rule.InvalidRulePackage;
import org.drools.rule.Package;
-import org.drools.rule.Rule;
import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
import org.drools.spi.Activation;
import org.drools.spi.ConsequenceExceptionHandler;
import org.drools.spi.GlobalResolver;
import org.drools.xml.XmlDumper;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Reader;
+import java.io.StringReader;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/** Run all the tests with the ReteOO engine implementation */
public class MiscTest extends TestCase {
@@ -129,6 +127,104 @@
config );
}
+ public void testImportFunctions() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ImportFunctions.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+// ruleBase = SerializationHelper.serializeObject(ruleBase);
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheese cheese = new Cheese( "stilton",
+ 15 );
+ workingMemory.insert( cheese );
+ List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
+// workingMemory = SerializationHelper.serializeObject(workingMemory);
+ workingMemory.fireAllRules();
+
+ list = (List)workingMemory.getGlobal("list");
+ assertEquals( 4,
+ list.size() );
+
+ assertEquals( "rule1",
+ list.get( 0 ) );
+ assertEquals( "rule2",
+ list.get( 1 ) );
+ assertEquals( "rule3",
+ list.get( 2 ) );
+ assertEquals( "rule4",
+ list.get( 3 ) );
+ }
+
+ public void testStaticFieldReference() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_StaticField.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+// ruleBase = SerializationHelper.serializeObject(ruleBase);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
+
+ final Cheesery cheesery1 = new Cheesery();
+ cheesery1.setStatus( Cheesery.SELLING_CHEESE );
+ cheesery1.setMaturity( Maturity.OLD );
+ workingMemory.insert( cheesery1 );
+
+ final Cheesery cheesery2 = new Cheesery();
+ cheesery2.setStatus( Cheesery.MAKING_CHEESE );
+ cheesery2.setMaturity( Maturity.YOUNG );
+ workingMemory.insert( cheesery2 );
+
+ workingMemory.fireAllRules();
+
+ assertEquals( 2,
+ list.size() );
+
+ assertEquals( cheesery1,
+ list.get( 0 ) );
+ assertEquals( cheesery2,
+ list.get( 1 ) );
+ }
+
+ public void testPrimitiveArray() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_primitiveArray.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+// ruleBase = SerializationHelper.serializeObject(ruleBase);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List result = new ArrayList();
+ workingMemory.setGlobal( "result",
+ result );
+
+ final Primitives p1 = new Primitives();
+ p1.setPrimitiveArrayAttribute( new int[]{1, 2, 3} );
+ p1.setArrayAttribute( new String[]{"a", "b"} );
+
+ workingMemory.insert( p1 );
+
+ workingMemory.fireAllRules();
+ assertEquals( 3,
+ result.size() );
+ assertEquals( 3,
+ ((Integer) result.get( 0 )).intValue() );
+ assertEquals( 2,
+ ((Integer) result.get( 1 )).intValue() );
+ assertEquals( 3,
+ ((Integer) result.get( 2 )).intValue() );
+
+ }
+
public void testMVELSoundex() throws Exception {
// read in the source
@@ -138,11 +234,11 @@
ruleBase = SerializationHelper.serializeObject(ruleBase);
WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory = SerializationHelper.serializeObject(workingMemory);
Cheese c = new Cheese( "fubar",
2 );
workingMemory.insert( c );
-// workingMemory = SerializationHelper.serializeObject(workingMemory);
workingMemory.fireAllRules();
assertEquals( 42,
c.getPrice() );
@@ -170,11 +266,11 @@
5 );
workingMemory.insert( stilton );
-// workingMemory = SerializationHelper.serializeObject(workingMemory);
+ workingMemory = SerializationHelper.serializeObject(workingMemory);
workingMemory.fireAllRules();
assertEquals( new Integer( 5 ),
- list.get( 0 ) );
+ ((List)workingMemory.getGlobal("list")).get( 0 ) );
}
public void testGlobals2() throws Exception {
@@ -202,23 +298,24 @@
5 );
workingMemory.insert( stilton );
+ workingMemory = SerializationHelper.serializeObject(workingMemory);
workingMemory.fireAllRules();
assertEquals( 1,
- results.size() );
+ ((List)workingMemory.getGlobal("results")).size() );
assertEquals( "memberOf",
- results.get( 0 ) );
+ ((List)workingMemory.getGlobal("results")).get( 0 ) );
final Cheese brie = new Cheese( "brie",
5 );
workingMemory.insert( brie );
-// workingMemory = SerializationHelper.serializeObject(workingMemory);
+ workingMemory = SerializationHelper.serializeObject(workingMemory);
workingMemory.fireAllRules();
assertEquals( 2,
- results.size() );
+ ((List)workingMemory.getGlobal("results")).size() );
assertEquals( "not memberOf",
- results.get( 1 ) );
+ ((List)workingMemory.getGlobal("results")).get( 1 ) );
}
public void testCustomGlobalResolver() throws Exception {
@@ -1063,36 +1160,6 @@
}
- public void testImportFunctions() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ImportFunctions.drl" ) ) );
- final Package pkg = builder.getPackage();
-
- RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
-// ruleBase = SerializationHelper.serializeObject(ruleBase);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Cheese cheese = new Cheese( "stilton",
- 15 );
- workingMemory.insert( cheese );
- final List list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
- workingMemory.fireAllRules();
-
- assertEquals( 4,
- list.size() );
-
- assertEquals( "rule1",
- list.get( 0 ) );
- assertEquals( "rule2",
- list.get( 1 ) );
- assertEquals( "rule3",
- list.get( 2 ) );
- assertEquals( "rule4",
- list.get( 3 ) );
- }
-
public void testBasicFrom() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_From.drl" ) ) );
@@ -1745,41 +1812,6 @@
list.get( 1 ) );
}
- public void testStaticFieldReference() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_StaticField.drl" ) ) );
- final Package pkg = builder.getPackage();
-
- RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
-// ruleBase = SerializationHelper.serializeObject(ruleBase);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
-
- final Cheesery cheesery1 = new Cheesery();
- cheesery1.setStatus( Cheesery.SELLING_CHEESE );
- cheesery1.setMaturity( Maturity.OLD );
- workingMemory.insert( cheesery1 );
-
- final Cheesery cheesery2 = new Cheesery();
- cheesery2.setStatus( Cheesery.MAKING_CHEESE );
- cheesery2.setMaturity( Maturity.YOUNG );
- workingMemory.insert( cheesery2 );
-
- workingMemory.fireAllRules();
-
- assertEquals( 2,
- list.size() );
-
- assertEquals( cheesery1,
- list.get( 0 ) );
- assertEquals( cheesery2,
- list.get( 1 ) );
- }
-
public void testDuplicateRuleNames() throws Exception {
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DuplicateRuleName1.drl" ) ) );
@@ -2442,37 +2474,6 @@
ruleBase = SerializationHelper.serializeObject(ruleBase);
}
- public void testPrimitiveArray() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_primitiveArray.drl" ) ) );
- final Package pkg = builder.getPackage();
-
- RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
-// ruleBase = SerializationHelper.serializeObject(ruleBase);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List result = new ArrayList();
- workingMemory.setGlobal( "result",
- result );
-
- final Primitives p1 = new Primitives();
- p1.setPrimitiveArrayAttribute( new int[]{1, 2, 3} );
- p1.setArrayAttribute( new String[]{"a", "b"} );
-
- workingMemory.insert( p1 );
-
- workingMemory.fireAllRules();
- assertEquals( 3,
- result.size() );
- assertEquals( 3,
- ((Integer) result.get( 0 )).intValue() );
- assertEquals( 2,
- ((Integer) result.get( 1 )).intValue() );
- assertEquals( 3,
- ((Integer) result.get( 2 )).intValue() );
-
- }
-
public void testEmptyIdentifier() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_emptyIdentifier.drl" ) ) );
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/FactHandle.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/FactHandle.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/FactHandle.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -24,7 +24,6 @@
* @author <a href="mailto:bob at werken.com">bob mcwhirter </a>
*/
-import java.io.Serializable;
import java.io.Externalizable;
public interface FactHandle
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBase.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBase.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBase.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,7 +18,6 @@
import java.io.IOException;
import java.io.InputStream;
-import java.io.Serializable;
import java.io.Externalizable;
import org.drools.rule.Package;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,7 +16,6 @@
package org.drools;
-import java.io.Serializable;
import java.io.Externalizable;
import java.io.ObjectOutput;
import java.io.IOException;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseEventManager.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseEventManager.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/RuleBaseEventManager.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-import java.io.Serializable;
+import java.io.Externalizable;
import java.util.List;
import org.drools.event.RuleBaseEventListener;
@@ -27,7 +27,7 @@
*/
public interface RuleBaseEventManager
extends
- Serializable {
+ Externalizable {
/**
* Add an event listener.
*
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/WorkingMemoryEventManager.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/WorkingMemoryEventManager.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/WorkingMemoryEventManager.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-import java.io.Serializable;
+import java.io.Externalizable;
import java.util.List;
import org.drools.event.AgendaEventListener;
@@ -30,7 +30,7 @@
public interface WorkingMemoryEventManager
extends
RuleBaseEventManager,
- Serializable {
+ Externalizable {
/**
* Add an event listener.
*
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryConsoleLogger.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,14 +3,26 @@
import org.drools.WorkingMemory;
import org.drools.audit.event.LogEvent;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
+
public class WorkingMemoryConsoleLogger extends WorkingMemoryLogger {
- public WorkingMemoryConsoleLogger(WorkingMemory workingMemory) {
- super(workingMemory);
- }
-
- public void logEventCreated(LogEvent logEvent) {
- System.out.println(logEvent);
- }
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ super.readExternal(in);
+ }
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal(out);
+ }
+
+ public WorkingMemoryConsoleLogger(WorkingMemory workingMemory) {
+ super(workingMemory);
+ }
+
+ public void logEventCreated(LogEvent logEvent) {
+ System.out.println(logEvent);
+ }
+
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,16 +16,18 @@
* limitations under the License.
*/
+import com.thoughtworks.xstream.XStream;
+import org.drools.WorkingMemoryEventManager;
+import org.drools.audit.event.LogEvent;
+
import java.io.FileNotFoundException;
import java.io.FileWriter;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.List;
-import org.drools.WorkingMemoryEventManager;
-import org.drools.audit.event.LogEvent;
-
-import com.thoughtworks.xstream.XStream;
-
/**
* A logger of events generated by a working memory.
* It stores its information in a file that can be specified.
@@ -44,21 +46,44 @@
*/
public class WorkingMemoryFileLogger extends WorkingMemoryLogger {
- private final List<LogEvent> events = new ArrayList<LogEvent>();
+ private List<LogEvent> events = new ArrayList<LogEvent>();
private String fileName = "event";
private int maxEventsInMemory = 1000;
private int nbOfFile = 0;
private boolean split = true;
private boolean initialized = false;
+ public WorkingMemoryFileLogger() {
+ }
+
/**
* Creates a new WorkingMemoryFileLogger for the given working memory.
- * @param workingMemory
+ * @param workingMemoryEventManager
*/
public WorkingMemoryFileLogger(final WorkingMemoryEventManager workingMemoryEventManager) {
super( workingMemoryEventManager );
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ super.readExternal(in);
+ events = (List<LogEvent>)in.readObject();
+ fileName = (String)in.readObject();
+ maxEventsInMemory = in.readInt();
+ nbOfFile = in.readInt();
+ split = in.readBoolean();
+ initialized = in.readBoolean();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal(out);
+ out.writeObject(events);
+ out.writeObject(fileName);
+ out.writeInt(maxEventsInMemory);
+ out.writeInt(nbOfFile);
+ out.writeBoolean(split);
+ out.writeBoolean(initialized);
+ }
+
/**
* Sets the name of the file the events are logged in.
* No extensions should be given since .log is automatically appended
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryInMemoryLogger.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,16 +16,18 @@
* limitations under the License.
*/
+import com.thoughtworks.xstream.XStream;
+import org.drools.WorkingMemory;
+import org.drools.audit.event.LogEvent;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
-import org.drools.WorkingMemory;
-import org.drools.audit.event.LogEvent;
-
-import com.thoughtworks.xstream.XStream;
-
/**
* A logger of events generated by a working memory.
* It stores its information in memory, so it can be retrieved later.
@@ -34,8 +36,11 @@
*/
public class WorkingMemoryInMemoryLogger extends WorkingMemoryLogger {
- private final List events = new ArrayList();
+ private List events = new ArrayList();
+ public WorkingMemoryInMemoryLogger() {
+ }
+
/**
* Creates a new WorkingMemoryInMemoryLogger for the given working memory.
* @param workingMemory
@@ -44,6 +49,16 @@
super( workingMemory );
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ super.readExternal(in);
+ events = (List)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal(out);
+ out.writeObject(events);
+ }
+
public String getEvents() {
final XStream xstream = new XStream();
StringWriter writer = new StringWriter();
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -20,6 +20,9 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
import org.drools.WorkingMemoryEventManager;
import org.drools.FactHandle;
@@ -91,8 +94,11 @@
RuleFlowEventListener,
RuleBaseEventListener {
- private final List filters = new ArrayList();
+ private List filters = new ArrayList();
+ public WorkingMemoryLogger() {
+ }
+
/**
* Creates a new working memory logger for the given working memory.
*
@@ -105,6 +111,14 @@
workingMemoryEventManager.addEventListener( (RuleBaseEventListener) this );
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ filters = (List)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(filters);
+ }
+
/**
* This method is invoked every time a new log event is created.
* Subclasses should implement this method and store the event,
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/BaseEvaluator.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/BaseEvaluator.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -51,6 +51,8 @@
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
operator = (Operator)in.readObject();
type = (ValueType)in.readObject();
+ if (type != null)
+ type = ValueType.determineValueType(type.getClassType());
}
public void writeExternal(ObjectOutput out) throws IOException {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ClassFieldExtractorCache.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,9 @@
package org.drools.base;
-import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectInput;
+import java.io.IOException;
+import java.io.ObjectOutput;
import java.util.HashMap;
import java.util.Map;
@@ -53,13 +56,16 @@
private static class ExtractorKey
implements
- Serializable {
+ Externalizable {
private static final long serialVersionUID = 400;
- private final Class clazz;
- private final String fieldName;
- private final int hashCode;
+ private Class clazz;
+ private String fieldName;
+ private int hashCode;
+ public ExtractorKey() {
+ }
+
public ExtractorKey(Class clazz,
String fieldName) {
super();
@@ -73,6 +79,18 @@
this.hashCode = result;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ clazz = (Class)in.readObject();
+ fieldName = (String)in.readObject();
+ hashCode = in.readInt();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(clazz);
+ out.writeObject(fieldName);
+ out.writeInt(hashCode);
+ }
+
public Class getClazz() {
return clazz;
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FieldFactory.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FieldFactory.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FieldFactory.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,15 +16,15 @@
* limitations under the License.
*/
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
import org.drools.base.field.BooleanFieldImpl;
import org.drools.base.field.DoubleFieldImpl;
import org.drools.base.field.LongFieldImpl;
import org.drools.base.field.ObjectFieldImpl;
import org.drools.spi.FieldValue;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
public class FieldFactory {
private static final FieldFactory INSTANCE = new FieldFactory();
@@ -33,7 +33,6 @@
}
private FieldFactory() {
-
}
public static FieldValue getFieldValue(final String value,
@@ -43,53 +42,53 @@
valueType = ValueType.NULL_TYPE;
}
- if ( ValueType.NULL_TYPE.equals(valueType) ) {
+ if ( valueType == ValueType.NULL_TYPE ) {
field = new ObjectFieldImpl( null );
- } else if ( ValueType.PCHAR_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PCHAR_TYPE ) {
field = new LongFieldImpl( value.charAt( 0 ) );
- } else if ( ValueType.PBYTE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PBYTE_TYPE ) {
field = new LongFieldImpl( Long.parseLong( value ) );
- } else if ( ValueType.PSHORT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PSHORT_TYPE ) {
field = new LongFieldImpl( Long.parseLong( value ) );
- } else if ( ValueType.PINTEGER_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PINTEGER_TYPE ) {
field = new LongFieldImpl( Long.parseLong( stripNumericType( value ) ) );
- } else if ( ValueType.PLONG_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PLONG_TYPE ) {
field = new LongFieldImpl( Long.parseLong( stripNumericType( value ) ) );
- } else if ( ValueType.PFLOAT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PFLOAT_TYPE ) {
field = new DoubleFieldImpl( Float.parseFloat( stripNumericType( value ) ) );
- } else if ( ValueType.PDOUBLE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PDOUBLE_TYPE ) {
field = new DoubleFieldImpl( Double.parseDouble( stripNumericType( value ) ) );
- } else if ( ValueType.PBOOLEAN_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PBOOLEAN_TYPE ) {
field = new BooleanFieldImpl( Boolean.valueOf( value ).booleanValue() );
- } else if ( ValueType.CHAR_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.CHAR_TYPE ) {
field = new ObjectFieldImpl( new Character( value.charAt( 0 ) ) );
- } else if ( ValueType.BYTE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BYTE_TYPE ) {
field = new ObjectFieldImpl( new Byte( value ) );
- } else if ( ValueType.SHORT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.SHORT_TYPE ) {
field = new ObjectFieldImpl( new Short( value ) );
- } else if ( ValueType.INTEGER_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.INTEGER_TYPE ) {
field = new ObjectFieldImpl( new Integer( stripNumericType( value ) ) );
- } else if ( ValueType.LONG_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.LONG_TYPE ) {
field = new ObjectFieldImpl( new Long( stripNumericType( value ) ) );
- } else if ( ValueType.FLOAT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.FLOAT_TYPE ) {
field = new ObjectFieldImpl( new Float( stripNumericType( value ) ) );
- } else if ( ValueType.DOUBLE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.DOUBLE_TYPE ) {
field = new ObjectFieldImpl( new Double( stripNumericType( value ) ) );
- } else if ( ValueType.BOOLEAN_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BOOLEAN_TYPE ) {
field = new ObjectFieldImpl( Boolean.valueOf( value ) );
- } else if ( ValueType.STRING_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.STRING_TYPE ) {
field = new ObjectFieldImpl( value.intern() );
- } else if ( ValueType.DATE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.DATE_TYPE ) {
//MN: I think its fine like this, seems to work !
field = new ObjectFieldImpl( value );
- } else if ( ValueType.ARRAY_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.ARRAY_TYPE ) {
//MN: I think its fine like this.
field = new ObjectFieldImpl( value );
- } else if ( ValueType.OBJECT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.OBJECT_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.BIG_DECIMAL_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BIG_DECIMAL_TYPE ) {
field = new ObjectFieldImpl( new BigDecimal( value ) );
- } else if ( ValueType.BIG_INTEGER_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BIG_INTEGER_TYPE ) {
field = new ObjectFieldImpl( new BigInteger( value ) );
}
@@ -103,85 +102,85 @@
valueType = ValueType.NULL_TYPE;
}
- if ( ValueType.NULL_TYPE.equals(valueType) ) {
+ if ( valueType == ValueType.NULL_TYPE ) {
field = new ObjectFieldImpl( null );
- } else if ( ValueType.PCHAR_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.PCHAR_TYPE ) {
if( value instanceof String && ((String)value).length() == 1 ) {
field = new LongFieldImpl( ((String) value).charAt(0) );
} else {
field = new LongFieldImpl( ((Character) value).charValue() );
- }
- } else if ( ValueType.PBYTE_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PBYTE_TYPE ) {
if( value instanceof String ) {
field = new LongFieldImpl( Byte.parseByte( (String) value) );
} else {
field = new LongFieldImpl( ((Number) value).byteValue() );
- }
- } else if ( ValueType.PSHORT_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PSHORT_TYPE ) {
if( value instanceof String ) {
field = new LongFieldImpl( Short.parseShort( (String) value) );
} else {
field = new LongFieldImpl( ((Number) value).shortValue() );
- }
- } else if ( ValueType.PINTEGER_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PINTEGER_TYPE ) {
if( value instanceof String ) {
field = new LongFieldImpl( Integer.parseInt( stripNumericType( (String) value ) ) );
} else {
field = new LongFieldImpl( ((Number) value).intValue() );
- }
- } else if ( ValueType.PLONG_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PLONG_TYPE ) {
if( value instanceof String ) {
field = new LongFieldImpl( Long.parseLong( stripNumericType( (String) value ) ) );
} else {
field = new LongFieldImpl( ((Number) value).longValue() );
- }
- } else if ( ValueType.PFLOAT_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PFLOAT_TYPE ) {
if( value instanceof String ) {
field = new DoubleFieldImpl( Float.parseFloat( stripNumericType( (String) value ) ) );
} else {
field = new DoubleFieldImpl( ((Number) value).floatValue() );
- }
- } else if ( ValueType.PDOUBLE_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PDOUBLE_TYPE ) {
if( value instanceof String ) {
field = new DoubleFieldImpl( Double.parseDouble( stripNumericType( (String) value ) ) );
} else {
field = new DoubleFieldImpl( ((Number) value).doubleValue() );
- }
- } else if ( ValueType.PBOOLEAN_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.PBOOLEAN_TYPE ) {
if( value instanceof String ) {
field = new BooleanFieldImpl( Boolean.valueOf( (String) value).booleanValue() );
} else {
field = new BooleanFieldImpl( ((Boolean) value).booleanValue() );
- }
- } else if ( ValueType.CHAR_TYPE.equals(valueType) ) {
+ }
+ } else if ( valueType == ValueType.CHAR_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.BYTE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BYTE_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.SHORT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.SHORT_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.INTEGER_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.INTEGER_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.LONG_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.LONG_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.FLOAT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.FLOAT_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.DOUBLE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.DOUBLE_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.BOOLEAN_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BOOLEAN_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.STRING_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.STRING_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.DATE_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.DATE_TYPE ) {
//MN: I think its fine like this, seems to work !
field = new ObjectFieldImpl( value );
- } else if ( ValueType.ARRAY_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.ARRAY_TYPE ) {
//MN: I think its fine like this.
field = new ObjectFieldImpl( value );
- } else if ( ValueType.OBJECT_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.OBJECT_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.BIG_DECIMAL_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BIG_DECIMAL_TYPE ) {
field = new ObjectFieldImpl( value );
- } else if ( ValueType.BIG_INTEGER_TYPE.equals(valueType) ) {
+ } else if ( valueType == ValueType.BIG_INTEGER_TYPE ) {
field = new ObjectFieldImpl( value );
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FireAllRulesRuleBaseUpdateListener.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FireAllRulesRuleBaseUpdateListener.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/FireAllRulesRuleBaseUpdateListener.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,7 +3,10 @@
*/
package org.drools.base;
-import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.IOException;
import org.drools.StatefulSession;
import org.drools.event.BeforeRuleBaseUnlockedEvent;
@@ -13,13 +16,22 @@
public class FireAllRulesRuleBaseUpdateListener extends DefaultRuleBaseEventListener
implements
RuleBaseUpdateListener,
- Serializable {
+ Externalizable {
private StatefulSession session;
public FireAllRulesRuleBaseUpdateListener() {
+ }
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ super.readExternal(in);
+ session = (StatefulSession)in.readObject();
}
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal(out);
+ out.writeObject(session);
+ }
+
public void setSession(StatefulSession session) {
this.session = session;
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,10 @@
package org.drools.base;
import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
import org.drools.base.mvel.DroolsMVELKnowledgeHelper;
import org.drools.spi.KnowledgeHelper;
@@ -12,9 +16,15 @@
public class ModifyInterceptor
implements
Interceptor,
- Serializable {
+ Externalizable {
private static final long serialVersionUID = 400L;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public int doBefore(ASTNode node,
VariableResolverFactory factory) {
Object object = ((WithNode) node).getNestedStatement().getValue( null,
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/accumulators/AccumulateFunction.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/accumulators/AccumulateFunction.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/accumulators/AccumulateFunction.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -17,7 +17,6 @@
*/
package org.drools.base.accumulators;
-import java.io.Serializable;
import java.io.Externalizable;
/**
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -17,17 +17,16 @@
*/
package org.drools.base.evaluators;
-import java.io.Serializable;
+import org.drools.base.ValueType;
+import org.drools.spi.Evaluator;
+
import java.io.Externalizable;
+import java.io.IOException;
import java.io.ObjectInput;
-import java.io.IOException;
import java.io.ObjectOutput;
import java.util.HashMap;
import java.util.Map;
-import org.drools.base.ValueType;
-import org.drools.spi.Evaluator;
-
/**
* A simple helper class to store Evaluators for a given set of
* value types and operators
@@ -36,7 +35,6 @@
*/
public class EvaluatorCache implements Externalizable {
-
private static final long serialVersionUID = 5643974484372543392L;
private Map<ValueType, Map<Operator, Evaluator>> evaluators = new HashMap<ValueType, Map<Operator, Evaluator>>();
@@ -44,7 +42,12 @@
}
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- evaluators = (Map<ValueType, Map<Operator, Evaluator>>)in.readObject();
+ Map<ValueType, Map<Operator, Evaluator>> temp = (Map<ValueType, Map<Operator, Evaluator>>)in.readObject();
+
+ for (Map.Entry<ValueType, Map<Operator, Evaluator>> entry : temp.entrySet()) {
+ evaluators.put(ValueType.determineValueType(entry.getKey().getClassType()),
+ entry.getValue());
+ }
}
public void writeExternal(ObjectOutput out) throws IOException {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -17,7 +17,6 @@
*/
package org.drools.base.evaluators;
-import java.io.Serializable;
import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.IOException;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/Operator.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/Operator.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/evaluators/Operator.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,5 @@
package org.drools.base.evaluators;
-import java.io.Serializable;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,5 @@
package org.drools.base.mvel;
-import java.io.Serializable;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELGlobalVariable.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELGlobalVariable.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELGlobalVariable.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,13 +1,17 @@
package org.drools.base.mvel;
import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
import org.mvel.integration.VariableResolver;
public class DroolsMVELGlobalVariable
implements
VariableResolver,
- Serializable {
+ Externalizable {
private static final long serialVersionUID = -2480015657934353449L;
@@ -15,6 +19,9 @@
private Class knownType;
private DroolsMVELFactory factory;
+ public DroolsMVELGlobalVariable() {
+ }
+
public DroolsMVELGlobalVariable(final String identifier,
final Class knownType,
final DroolsMVELFactory factory) {
@@ -23,6 +30,18 @@
this.knownType = knownType;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ name = (String)in.readObject();
+ knownType = (Class)in.readObject();
+ factory = (DroolsMVELFactory)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(name);
+ out.writeObject(knownType);
+ out.writeObject(factory);
+ }
+
public String getName() {
return this.name;
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELKnowledgeHelper.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELKnowledgeHelper.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,10 @@
package org.drools.base.mvel;
import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
import org.drools.spi.KnowledgeHelper;
import org.mvel.integration.VariableResolver;
@@ -8,17 +12,28 @@
public class DroolsMVELKnowledgeHelper
implements
VariableResolver,
- Serializable {
+ Externalizable {
private static final long serialVersionUID = 9175428283083361478L;
private DroolsMVELFactory factory;
public static final String DROOLS = "drools";
+ public DroolsMVELKnowledgeHelper() {
+ }
+
public DroolsMVELKnowledgeHelper(final DroolsMVELFactory factory) {
this.factory = factory;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ factory = (DroolsMVELFactory)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(factory);
+ }
+
public String getName() {
return DROOLS;
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELLocalDeclarationVariable.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELLocalDeclarationVariable.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELLocalDeclarationVariable.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,9 @@
package org.drools.base.mvel;
-import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.Declaration;
@@ -9,19 +12,32 @@
public class DroolsMVELLocalDeclarationVariable
implements
VariableResolver,
- Serializable {
+ Externalizable {
private static final long serialVersionUID = -8081447010148362496L;
private Declaration declaration;
private DroolsMVELFactory factory;
+ public DroolsMVELLocalDeclarationVariable() {
+ }
+
public DroolsMVELLocalDeclarationVariable(final Declaration declaration,
final DroolsMVELFactory factory) {
this.declaration = declaration;
this.factory = factory;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ declaration = (Declaration)in.readObject();
+ factory = (DroolsMVELFactory)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(declaration);
+ out.writeObject(factory);
+ }
+
public String getName() {
return this.declaration.getIdentifier();
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELPreviousDeclarationVariable.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELPreviousDeclarationVariable.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELPreviousDeclarationVariable.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,9 @@
package org.drools.base.mvel;
-import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectOutput;
+import java.io.ObjectInput;
+import java.io.IOException;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.Declaration;
@@ -9,17 +12,30 @@
public class DroolsMVELPreviousDeclarationVariable
implements
VariableResolver,
- Serializable {
+ Externalizable {
private Declaration declaration;
private DroolsMVELFactory factory;
+ public DroolsMVELPreviousDeclarationVariable() {
+ }
+
public DroolsMVELPreviousDeclarationVariable(final Declaration declaration,
final DroolsMVELFactory factory) {
this.declaration = declaration;
this.factory = factory;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ declaration = (Declaration)in.readObject();
+ factory = (DroolsMVELFactory)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(declaration);
+ out.writeObject(factory);
+ }
+
public String getName() {
return this.declaration.getIdentifier();
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,30 +1,47 @@
package org.drools.base.mvel;
-import java.io.Serializable;
-
import org.drools.WorkingMemory;
import org.drools.rule.MVELDialectData;
import org.drools.rule.Package;
import org.drools.spi.Action;
+import org.mvel.MVEL;
import org.mvel.compiler.CompiledExpression;
-import org.mvel.MVEL;
import org.mvel.debug.DebugTools;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
public class MVELAction
implements
Action,
- Serializable {
+ Externalizable {
private static final long serialVersionUID = 400L;
- private final Serializable expr;
- private final DroolsMVELFactory prototype;
+ private Serializable expr;
+ private DroolsMVELFactory prototype;
+ public MVELAction() {
+ }
+
public MVELAction(final Serializable expr,
final DroolsMVELFactory factory) {
this.expr = expr;
this.prototype = factory;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ expr = (Serializable)in.readObject();
+ prototype = (DroolsMVELFactory)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(expr);
+ out.writeObject(prototype);
+ }
+
public String getDialect() {
return "mvel";
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,21 +1,20 @@
package org.drools.base.mvel;
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-
import org.drools.WorkingMemory;
-import org.drools.common.InternalRuleBase;
import org.drools.rule.MVELDialectData;
import org.drools.rule.Package;
import org.drools.spi.Consequence;
import org.drools.spi.KnowledgeHelper;
-import org.mvel.compiler.CompiledExpression;
import org.mvel.MVEL;
+import org.mvel.compiler.CompiledExpression;
import org.mvel.debug.DebugTools;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
public class MVELConsequence
implements
Consequence,
@@ -26,7 +25,6 @@
private DroolsMVELFactory prototype;
public MVELConsequence() {
-
}
public MVELConsequence(final Serializable expr,
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELPredicateExpression.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELPredicateExpression.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELPredicateExpression.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,11 +1,5 @@
package org.drools.base.mvel;
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-
import org.drools.WorkingMemory;
import org.drools.rule.Declaration;
import org.drools.rule.MVELDialectData;
@@ -14,6 +8,11 @@
import org.drools.spi.Tuple;
import org.mvel.MVEL;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
public class MVELPredicateExpression
implements
PredicateExpression {
@@ -23,7 +22,6 @@
private DroolsMVELFactory prototype;
public MVELPredicateExpression() {
-
}
public MVELPredicateExpression(final Serializable expr,
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,30 +1,47 @@
package org.drools.base.mvel;
-import java.io.Serializable;
-
import org.drools.WorkingMemory;
import org.drools.rule.MVELDialectData;
import org.drools.rule.Package;
import org.drools.spi.ReturnValueEvaluator;
+import org.mvel.MVEL;
import org.mvel.compiler.CompiledExpression;
-import org.mvel.MVEL;
import org.mvel.debug.DebugTools;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
public class MVELReturnValueEvaluator
implements
ReturnValueEvaluator,
- Serializable {
+ Externalizable {
private static final long serialVersionUID = 400L;
- private final Serializable expr;
- private final DroolsMVELFactory prototype;
+ private Serializable expr;
+ private DroolsMVELFactory prototype;
+ public MVELReturnValueEvaluator() {
+ }
+
public MVELReturnValueEvaluator(final Serializable expr,
final DroolsMVELFactory factory) {
this.expr = expr;
this.prototype = factory;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ expr = (Serializable)in.readObject();
+ prototype = (DroolsMVELFactory)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(expr);
+ out.writeObject(prototype);
+ }
+
public String getDialect() {
return "mvel";
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueExpression.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueExpression.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueExpression.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,11 +1,5 @@
package org.drools.base.mvel;
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectInput;
-import java.io.IOException;
-import java.io.ObjectOutput;
-
import org.drools.WorkingMemory;
import org.drools.rule.Declaration;
import org.drools.rule.MVELDialectData;
@@ -15,6 +9,12 @@
import org.drools.spi.Tuple;
import org.mvel.MVEL;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
public class MVELReturnValueExpression
implements
ReturnValueExpression,
@@ -25,7 +25,6 @@
private DroolsMVELFactory prototype;
public MVELReturnValueExpression() {
-
}
public MVELReturnValueExpression(final Serializable expr,
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,36 +16,14 @@
* limitations under the License.
*/
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ByteArrayInputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-import java.util.concurrent.locks.ReentrantLock;
-
-import org.drools.FactException;
import org.drools.PackageIntegrationException;
import org.drools.RuleBase;
import org.drools.RuleBaseConfiguration;
-import org.drools.RuleIntegrationException;
import org.drools.StatefulSession;
import org.drools.concurrent.CommandExecutor;
import org.drools.concurrent.ExecutorService;
import org.drools.event.RuleBaseEventListener;
import org.drools.event.RuleBaseEventSupport;
-import org.drools.reteoo.ReteooStatefulSession;
import org.drools.objenesis.Objenesis;
import org.drools.objenesis.ObjenesisStd;
import org.drools.process.core.Process;
@@ -55,13 +33,28 @@
import org.drools.rule.InvalidPatternException;
import org.drools.rule.MapBackedClassLoader;
import org.drools.rule.Package;
-import org.drools.rule.JavaDialectData;
import org.drools.rule.Rule;
-import org.drools.rule.DroolsClassLoader;
import org.drools.spi.ExecutorServiceFactory;
import org.drools.spi.FactHandleFactory;
import org.drools.util.ObjectHashSet;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.locks.ReentrantLock;
+
/**
* Implementation of <code>RuleBase</code>.
*
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -85,7 +85,6 @@
import org.drools.spi.FactHandleFactory;
import org.drools.spi.GlobalResolver;
import org.drools.spi.PropagationContext;
-import org.drools.temporal.SessionClock;
/**
* Implementation of <code>WorkingMemory</code>.
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/BetaConstraints.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/BetaConstraints.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/BetaConstraints.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,14 +1,13 @@
package org.drools.common;
-import java.io.Serializable;
-import java.io.Externalizable;
-
import org.drools.RuleBaseConfiguration;
import org.drools.reteoo.BetaMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.ContextEntry;
import org.drools.util.LinkedList;
+import java.io.Externalizable;
+
public interface BetaConstraints
extends
Externalizable {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultAgenda.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultAgenda.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultAgenda.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -43,7 +43,6 @@
import org.drools.spi.KnowledgeHelper;
import org.drools.spi.RuleFlowGroup;
import org.drools.util.LinkedListNode;
-import org.drools.util.Queueable;
/**
* Rule-firing Agenda.
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,14 +16,6 @@
* limitations under the License.
*/
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.util.ArrayList;
-import java.util.List;
-
import org.drools.RuleBaseConfiguration;
import org.drools.base.evaluators.Operator;
import org.drools.reteoo.BetaMemory;
@@ -34,6 +26,7 @@
import org.drools.rule.VariableConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Constraint;
+import org.drools.util.AbstractHashTable.FieldIndex;
import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactHashTable;
import org.drools.util.FactList;
@@ -41,8 +34,13 @@
import org.drools.util.LinkedListEntry;
import org.drools.util.TupleHashTable;
import org.drools.util.TupleIndexHashTable;
-import org.drools.util.AbstractHashTable.FieldIndex;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
+
public class DefaultBetaConstraints
implements
BetaConstraints {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,14 +16,6 @@
* limitations under the License.
*/
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.util.ArrayList;
-import java.util.List;
-
import org.drools.RuleBaseConfiguration;
import org.drools.base.evaluators.Operator;
import org.drools.reteoo.BetaMemory;
@@ -33,6 +25,7 @@
import org.drools.rule.ContextEntry;
import org.drools.rule.VariableConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.util.AbstractHashTable.FieldIndex;
import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactHashTable;
import org.drools.util.FactList;
@@ -40,8 +33,13 @@
import org.drools.util.LinkedListEntry;
import org.drools.util.TupleHashTable;
import org.drools.util.TupleIndexHashTable;
-import org.drools.util.AbstractHashTable.FieldIndex;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
+
public class DoubleBetaConstraints
implements
BetaConstraints {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,12 +16,6 @@
* limitations under the License.
*/
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
-
import org.drools.RuleBaseConfiguration;
import org.drools.reteoo.BetaMemory;
import org.drools.reteoo.FactHandleMemory;
@@ -32,6 +26,10 @@
import org.drools.util.LinkedList;
import org.drools.util.TupleHashTable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
public class EmptyBetaConstraints
implements
BetaConstraints {
@@ -52,11 +50,9 @@
}
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-
}
public void writeExternal(ObjectOutput out) throws IOException {
-
}
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/NodeMemories.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/NodeMemories.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/NodeMemories.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,7 +18,6 @@
package org.drools.common;
-import java.io.Serializable;
import java.io.Externalizable;
/**
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,14 +16,6 @@
* limitations under the License.
*/
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.util.ArrayList;
-import java.util.List;
-
import org.drools.RuleBaseConfiguration;
import org.drools.base.evaluators.Operator;
import org.drools.reteoo.BetaMemory;
@@ -33,6 +25,7 @@
import org.drools.rule.ContextEntry;
import org.drools.rule.VariableConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.util.AbstractHashTable.FieldIndex;
import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactHashTable;
import org.drools.util.FactList;
@@ -40,8 +33,13 @@
import org.drools.util.LinkedListEntry;
import org.drools.util.TupleHashTable;
import org.drools.util.TupleIndexHashTable;
-import org.drools.util.AbstractHashTable.FieldIndex;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
+
public class QuadroupleBetaConstraints
implements
BetaConstraints {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObject.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObject.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObject.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -5,6 +5,10 @@
import org.drools.WorkingMemory;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
+
public class AssertObject
implements
Command,
@@ -13,10 +17,25 @@
private volatile Object result;
private Exception e;
+ public AssertObject() {
+ }
+
public AssertObject(final Object object) {
this.object = object;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ object = in.readObject();
+ result = in.readObject();
+ e = (Exception)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(object);
+ out.writeObject(result);
+ out.writeObject(e);
+ }
+
public void execute(final WorkingMemory workingMemory) {
try {
this.result = workingMemory.insert( this.object );
@@ -27,16 +46,16 @@
public Object getObject() {
return this.result;
- }
+ }
public boolean isDone() {
return this.result != null;
}
-
+
public boolean exceptionThrown() {
return e != null;
}
-
+
public Exception getException() {
return this.e;
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,12 +3,15 @@
*/
package org.drools.concurrent;
+import org.drools.WorkingMemory;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.drools.WorkingMemory;
-
public class AssertObjects
implements
Command,
@@ -17,10 +20,25 @@
private volatile List results;
private Exception e;
+ public AssertObjects() {
+ }
+
public AssertObjects(final Object object) {
this.object = object;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ object = in.readObject();
+ results = (List)in.readObject();
+ e = (Exception)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(object);
+ out.writeObject(results);
+ out.writeObject(e);
+ }
+
public void execute(final WorkingMemory workingMemory) {
try {
if ( this.object instanceof Object[] ) {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Command.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Command.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Command.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,10 +3,10 @@
*/
package org.drools.concurrent;
-import java.io.Serializable;
-
import org.drools.WorkingMemory;
-public interface Command extends Serializable {
+import java.io.Externalizable;
+
+public interface Command extends Externalizable {
void execute(WorkingMemory workingMemory);
}
\ No newline at end of file
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/CommandExecutor.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/CommandExecutor.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/CommandExecutor.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,19 +3,22 @@
*/
package org.drools.concurrent;
-import java.io.Serializable;
+import org.drools.WorkingMemory;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
-import org.drools.WorkingMemory;
-
/**
* The CommandExecutor is a Producer/Consumer style classes that provides a queue of Commands
* in a LinkedBlockingQueue. This the run() method loops for continously until shutdown() is
* called.
*
*/
-public class CommandExecutor implements Runnable, Serializable {
+public class CommandExecutor implements Runnable, Externalizable {
private static final long serialVersionUID = 5924295088331461167L;
@@ -24,12 +27,27 @@
private volatile boolean run;
-
+
+ public CommandExecutor() {
+ }
+
public CommandExecutor(WorkingMemory workingMemory) {
this.workingMemory = workingMemory;
this.queue = new LinkedBlockingQueue();
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ workingMemory = (WorkingMemory)in.readObject();
+ queue = (BlockingQueue)in.readObject();
+ run = in.readBoolean();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(workingMemory);
+ out.writeObject(queue);
+ out.writeBoolean(run);
+ }
+
/**
* Allows the looping run() method to execute.
*
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/DefaultExecutorService.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/DefaultExecutorService.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/DefaultExecutorService.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,34 +3,48 @@
*/
package org.drools.concurrent;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
-public class DefaultExecutorService implements ExecutorService {
+public class DefaultExecutorService implements ExecutorService {
private static final long serialVersionUID = 7860812696865293690L;
private Thread thread;
private CommandExecutor executor;
private boolean running;
-
+
public DefaultExecutorService() {
-
}
-
+
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ thread = (Thread)in.readObject();
+ executor = (CommandExecutor)in.readObject();
+ running = in.readBoolean();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(thread);
+ out.writeObject(executor);
+ out.writeBoolean(running);
+ }
+
public void setCommandExecutor(CommandExecutor executor) {
this.executor = executor;
}
-
+
public void startUp() {
this.thread = new Thread( executor );
this.thread.start();
this.running = true;
}
-
+
public void shutDown() {
this.executor.shutdown();
this.running = false;
this.thread = null;
- }
-
+ }
+
public Future submit(Command command) {
if (!this.running) {
startUp();
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/ExecutorService.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/ExecutorService.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/ExecutorService.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -3,36 +3,35 @@
*/
package org.drools.concurrent;
-import java.io.Serializable;
+import java.io.Externalizable;
-
/**
* This class instance is configed by the RuleBaseConfiguration and is responsible for thread management
* of the async services.
*
*/
-public interface ExecutorService extends Serializable {
-
+public interface ExecutorService extends Externalizable {
+
/**
* The CommandExecutor is a producer/consumer style class that handles the queue and execution
* of the async actions
* @param executor
*/
public void setCommandExecutor(CommandExecutor executor);
-
+
/**
* Submit a command for execution, adds it ot the commandExecutor's queue
* @param command
* @return
*/
Future submit(Command command);
-
+
/**
* Shutdown this ExecutorService
*
*/
void shutDown();
-
+
/**
* Startup this ExecutorService, typically called on first submit for lazy startup.
*
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -6,6 +6,10 @@
import org.drools.WorkingMemory;
import org.drools.spi.AgendaFilter;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
public class FireAllRules
implements
Command,
@@ -14,10 +18,25 @@
private volatile boolean done;
private Exception e;
+ public FireAllRules() {
+ }
+
public FireAllRules(final AgendaFilter agendaFilter) {
this.agendaFilter = agendaFilter;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ agendaFilter = (AgendaFilter)in.readObject();
+ done = in.readBoolean();
+ e = (Exception)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(agendaFilter);
+ out.writeBoolean(done);
+ out.writeObject(e);
+ }
+
public void execute(final WorkingMemory workingMemory) {
try {
workingMemory.fireAllRules( this.agendaFilter );
@@ -34,12 +53,12 @@
public boolean isDone() {
return this.done;
}
-
+
public boolean exceptionThrown() {
return e != null;
}
-
+
public Exception getException() {
return this.e;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Future.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Future.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/Future.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,12 +1,12 @@
package org.drools.concurrent;
-import java.io.Serializable;
+import java.io.Externalizable;
-public interface Future extends Serializable {
+public interface Future extends Externalizable {
boolean isDone();
-
+
Object getObject();
-
+
boolean exceptionThrown();
Exception getException();
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/RetractObject.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/RetractObject.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/RetractObject.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -6,6 +6,10 @@
import org.drools.FactHandle;
import org.drools.WorkingMemory;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
public class RetractObject
implements
Command,
@@ -14,6 +18,9 @@
private volatile boolean done;
private Exception e;
+ public RetractObject() {
+ }
+
public RetractObject(final FactHandle factHandle) {
this.factHandle = factHandle;
}
@@ -24,6 +31,18 @@
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ factHandle = (FactHandle)in.readObject();
+ done = in.readBoolean();
+ e = (Exception)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(factHandle);
+ out.writeBoolean(done);
+ out.writeObject(e);
+ }
+
public Object getObject() {
return null;
}
@@ -31,12 +50,12 @@
public boolean isDone() {
return this.done;
}
-
+
public boolean exceptionThrown() {
return e != null;
}
-
+
public Exception getException() {
return this.e;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -6,6 +6,10 @@
import org.drools.FactHandle;
import org.drools.WorkingMemory;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
+
public class UpdateObject
implements
Command,
@@ -15,15 +19,32 @@
private volatile boolean done;
private Exception e;
+ public UpdateObject() {
+ }
+
public UpdateObject(final FactHandle factHandle,
final Object object) {
this.factHandle = factHandle;
this.object = object;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ factHandle = (FactHandle)in.readObject();
+ object = in.readObject();
+ done = in.readBoolean();
+ e = (Exception)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(factHandle);
+ out.writeObject(object);
+ out.writeBoolean(done);
+ out.writeObject(e);
+ }
+
public void execute(final WorkingMemory workingMemory) {
workingMemory.update( this.factHandle,
- this.object );
+ this.object );
this.done = true;
}
@@ -34,12 +55,12 @@
public boolean isDone() {
return this.done == true;
}
-
+
public boolean exceptionThrown() {
return e != null;
}
-
+
public Exception getException() {
return this.e;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/DefaultRuleBaseEventListener.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/DefaultRuleBaseEventListener.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/DefaultRuleBaseEventListener.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,4 +1,8 @@
package org.drools.event;
+
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
/*
* Copyright 2005 JBoss Inc
*
@@ -20,6 +24,12 @@
implements
RuleBaseEventListener {
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public void afterFunctionRemoved(AfterFunctionRemovedEvent event) {
// intentionally left blank
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/RuleBaseEventListener.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/RuleBaseEventListener.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/event/RuleBaseEventListener.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,10 +1,11 @@
package org.drools.event;
import java.util.EventListener;
+import java.io.Externalizable;
public interface RuleBaseEventListener
extends
- EventListener {
+ EventListener, Externalizable {
/**
* Method called before a new package is added to the rule base
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -17,6 +17,10 @@
package org.drools.facttemplates;
import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
import java.util.Arrays;
//import woolfel.engine.rule.Rule;
@@ -30,7 +34,7 @@
public class FactImpl
implements
Fact,
- Serializable {
+ Externalizable {
private static int hashCode(final Object[] array) {
final int PRIME = 31;
@@ -53,6 +57,9 @@
*/
private long id;
+ public FactImpl() {
+ }
+
/**
* this is the default constructor
* @param instance
@@ -73,6 +80,20 @@
this.id = id;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ factTemplate = (FactTemplate)in.readObject();
+ values = (Object[])in.readObject();
+ hashCode = in.readInt();
+ id = in.readLong();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(factTemplate);
+ out.writeObject(values);
+ out.writeInt(hashCode);
+ out.writeLong(id);
+ }
+
/**
* Method returns the value of the given slot at the
* id.
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,7 +16,6 @@
*/
package org.drools.facttemplates;
-import java.io.Serializable;
import java.io.Externalizable;
import org.drools.rule.Package;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -33,6 +33,8 @@
name = (String)in.readObject();
index = in.readInt();
valueType = (ValueType)in.readObject();
+ if (valueType != null)
+ valueType = ValueType.determineValueType(valueType.getClassType());
}
public void writeExternal(ObjectOutput out) throws IOException {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/DataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/DataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/DataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,14 +16,14 @@
* limitations under the License.
*/
-import java.io.Serializable;
+import java.io.Externalizable;
/**
* Abstract representation of a datatype.
*
* @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
*/
-public interface DataType extends Serializable {
+public interface DataType extends Externalizable {
/**
* Returns true if the given value is a valid value of this data type.
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/BooleanDataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/BooleanDataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/BooleanDataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,6 +18,10 @@
import org.drools.process.core.datatype.DataType;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
/**
* Representation of a boolean datatype.
*
@@ -29,6 +33,12 @@
private static final long serialVersionUID = 400L;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public boolean verifyDataType(final Object value) {
if ( value instanceof Boolean ) {
return true;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/FloatDataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/FloatDataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/FloatDataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,6 +18,10 @@
import org.drools.process.core.datatype.DataType;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
/**
* Representation of a float datatype.
*
@@ -29,6 +33,12 @@
private static final long serialVersionUID = 400L;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public boolean verifyDataType(final Object value) {
if ( value instanceof Float ) {
return true;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/IntegerDataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/IntegerDataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/IntegerDataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,6 +18,10 @@
import org.drools.process.core.datatype.DataType;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
/**
* Representation of an integer datatype.
*
@@ -29,6 +33,12 @@
private static final long serialVersionUID = 400L;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public boolean verifyDataType(final Object value) {
if ( value instanceof Integer ) {
return true;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ListDataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ListDataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ListDataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -16,24 +16,34 @@
* limitations under the License.
*/
-import java.io.Serializable;
+import org.drools.process.core.datatype.DataType;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.Iterator;
import java.util.List;
-import org.drools.process.core.datatype.DataType;
-
/**
* Representation of a list datatype.
* All elements in the list must have the same datatype.
*
* @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
*/
-public class ListDataType implements DataType, Serializable {
+public class ListDataType implements DataType {
private static final long serialVersionUID = 400L;
private DataType dataType;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ dataType = (DataType)in.readObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(dataType);
+ }
+
public void setDataType(final DataType dataType) {
this.dataType = dataType;
}
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/StringDataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/StringDataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/StringDataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,6 +18,10 @@
import org.drools.process.core.datatype.DataType;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
/**
* Representation of a string datatype.
*
@@ -29,6 +33,12 @@
private static final long serialVersionUID = 400L;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public boolean verifyDataType(final Object value) {
if ( value instanceof String ) {
return true;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/UndefinedDataType.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/UndefinedDataType.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/UndefinedDataType.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -18,6 +18,10 @@
import org.drools.process.core.datatype.DataType;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
+
/**
* Representation of an undefined datatype.
*
@@ -28,6 +32,12 @@
private static final long serialVersionUID = 400L;
private static UndefinedDataType instance;
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ }
+
public static UndefinedDataType getInstance() {
if (instance == null) {
instance = new UndefinedDataType();
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Function.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Function.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Function.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -1,6 +1,5 @@
package org.drools.rule;
-import java.io.Serializable;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java 2008-03-14 14:31:32 UTC (rev 18973)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java 2008-03-14 14:36:09 UTC (rev 18974)
@@ -234,11 +234,38 @@
private int beforeRuleRemoved = 0;
private int afterRuleRemoved = 0;
+ public TestRuleBaseListener() {
+ }
+
public TestRuleBaseListener(String id) {
super();
this.id = id;
}
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ id = (String)in.readObject();
+ beforePackageAdded = in.readInt();
+ afterPackageAdded = in.readInt();
+ beforePackageRemoved = in.readInt();
+ afterPackageRemoved = in.readInt();
+ beforeRuleAdded = in.readInt();
+ afterRuleAdded = in.readInt();
+ beforeRuleRemoved = in.readInt();
+ afterRuleRemoved = in.readInt();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(id);
+ out.writeInt(beforePackageAdded);
+ out.writeInt(afterPackageAdded);
+ out.writeInt(beforePackageRemoved);
+ out.writeInt(afterPackageRemoved);
+ out.writeInt(beforeRuleAdded);
+ out.writeInt(afterRuleAdded);
+ out.writeInt(beforeRuleRemoved);
+ out.writeInt(afterRuleRemoved);
+ }
+
public void afterPackageAdded(AfterPackageAddedEvent event) {
// System.out.println( this.id + event );
this.afterPackageAdded++;
More information about the jboss-svn-commits
mailing list