[jboss-svn-commits] JBL Code SVN: r19126 - in labs/jbossrules/trunk: drools-clips/src/test/java/org/drools/clips and 48 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 19 14:11:52 EDT 2008


Author: tirelli
Date: 2008-03-19 14:11:50 -0400 (Wed, 19 Mar 2008)
New Revision: 19126

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBaseSerializationTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/integrationtests/
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/integrationtests/SerializationHelper.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/EnumSerialiationTest.java
Removed:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBaseSerializationTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EntryPointInterface.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/integrationtests/SerializationHelper.java
Modified:
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ActionError.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DescrBuildError.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleFlowLoadError.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ReturnValueEvaluatorBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaProcessBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaRuleBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaReturnValueEvaluatorBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialectConfiguration.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHelperHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AndHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/CollectHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/EvalHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExistsHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldBindingHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldConstraintHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ForallHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FromHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/LiteralRestrictionHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/NotHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/OrHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PatternHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PredicateHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/RestrictionConnectiveHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ReturnValueRestrictionHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/VariableRestrictionsHandler.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Address.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/DataEnumLoaderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/RuleErrorTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulSessionTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/Stage.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/MVELDumperTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaAccumulateBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzerTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ModifyBlock.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Serializable.drl
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultConsequenceExceptionHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MVELDataProvider.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BaseNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSource.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatefulSession.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TerminalNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldValue.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/FileScannerTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/BaseNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSink.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
   labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-1488: restoring trunk after bad merge. Serialization changes are included.

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clips/Shell.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,6 +3,21 @@
  */
 package org.drools.clips;
 
+import java.io.PrintStream;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.StringReader;
+import java.io.ObjectInput;
+import java.io.IOException;
+import java.io.ObjectOutput;
+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 org.antlr.runtime.ANTLRReaderStream;
 import org.antlr.runtime.CommonTokenStream;
 import org.drools.FactHandle;
@@ -25,23 +40,11 @@
 import org.mvel.MVEL;
 import org.mvel.ParserContext;
 import org.mvel.ast.Function;
+import org.mvel.compiler.CompiledExpression;
 import org.mvel.compiler.ExpressionCompiler;
+import org.mvel.debug.DebugTools;
+import org.mvel.util.CompilerTools;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.PrintStream;
-import java.io.Reader;
-import java.io.Serializable;
-import java.io.StringReader;
-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;
-
 public class Shell
     implements
     ParserHandler,

Modified: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clips/ShellTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,8 +1,17 @@
 package org.drools.clips;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+
 import junit.framework.TestCase;
+
 import org.drools.Person;
 import org.drools.WorkingMemory;
+import org.drools.clips.FunctionHandlers;
+import org.drools.clips.Shell;
 import org.drools.clips.functions.AssertFunction;
 import org.drools.clips.functions.BindFunction;
 import org.drools.clips.functions.CallFunction;
@@ -25,10 +34,6 @@
 import org.drools.rule.Package;
 import org.drools.rule.Rule;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
 public class ShellTest extends TestCase {
     private ByteArrayOutputStream baos;
 
@@ -269,7 +274,8 @@
         this.shell.eval( "(defrule testRule (Person (name ?name&bob) ) => (printout t hello) (printout t \" \" ?name))" );
         this.shell.eval( "(assert (Person (name mark) ) )" );
         this.shell.eval( "(run)" );
-// @FIXME_testTwoSimpleRulesWithModify
+// @FIXME testTwoSimpleRulesWithModify
+// commenting out failed test
 //        assertEquals( "hello markhello bob",
 //                      new String( this.baos.toByteArray() ) );
     }
@@ -281,7 +287,8 @@
         text += "(assert (Person (name mark) ) )";
         text += "(run)";
         this.shell.eval( text );
-// @FIXME_testBlockEval        
+// @FIXME testBlockEval
+// commenting out failed test
 //        assertEquals( "hello markhello bob",
 //                      new String( this.baos.toByteArray() ) );
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,6 +3,10 @@
 
 public class ActionCol extends DTColumnConfig {
 
-    public String header;
+	/**
+	 * The header to be displayed.
+	 */
+	public String header;
 
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -45,11 +45,9 @@
 	 */
 	public String operator;
 
-
 	/**
 	 * A comma separated list of valid values. Optional.
 	 */
 	public String valueList;
 
-
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -6,7 +6,6 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ActionError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ActionError.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ActionError.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -18,7 +18,6 @@
 
 import org.drools.commons.jci.problems.CompilationProblem;
 import org.drools.lang.descr.BaseDescr;
-import org.drools.rule.Rule;
 
 public class ActionError extends DroolsError {
     private BaseDescr descr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DescrBuildError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DescrBuildError.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DescrBuildError.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -18,7 +18,6 @@
 
 import org.drools.commons.jci.problems.CompilationProblem;
 import org.drools.lang.descr.BaseDescr;
-import org.drools.rule.Rule;
 
 public class DescrBuildError extends DroolsError {
     private BaseDescr      parentDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -454,7 +454,7 @@
             if ( duration != null ) {
                 type.setDurationAttribute( duration );
             }
-
+            
             this.pkg.addTypeDeclaration( type );
         }
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleFlowLoadError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleFlowLoadError.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleFlowLoadError.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,7 +1,5 @@
 package org.drools.compiler;
 
-import java.io.PrintStream;
-import java.io.StringWriter;
 
 /**
  * This is used for reporting errors with loading a ruleflow.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,12 +3,16 @@
 	package org.drools.lang;
 
 
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
 import java.util.HashMap;
+
+import org.antlr.runtime.BaseRecognizer;
+import org.antlr.runtime.CharStream;
+import org.antlr.runtime.DFA;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.Lexer;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.RecognitionException;
 public class DRLLexer extends Lexer {
     public static final int ACCUMULATE=46;
     public static final int PACKAGE=4;
@@ -94,7 +98,7 @@
     public static final int C_STYLE_SINGLE_LINE_COMMENT=73;
     public static final int DATE_EXPIRES=24;
     public static final int STRING=16;
-    public DRLLexer() {;}
+    public DRLLexer() {;} 
     public DRLLexer(CharStream input) {
         super(input);
         ruleMemo = new HashMap[84+1];
@@ -365,7 +369,7 @@
             } while (true);
 
             if ( backtracking==0 ) {
-               channel=HIDDEN;
+               channel=HIDDEN; 
             }
 
             }
@@ -2337,7 +2341,7 @@
 
             mEOL(); if (failed) return ;
             if ( backtracking==0 ) {
-               channel=HIDDEN;
+               channel=HIDDEN; 
             }
 
             }
@@ -2398,7 +2402,7 @@
             match("*/"); if (failed) return ;
 
             if ( backtracking==0 ) {
-               channel=HIDDEN;
+               channel=HIDDEN; 
             }
 
             }
@@ -2988,7 +2992,7 @@
     }
 
     // $ANTLR start synpred1
-    public final void synpred1_fragment() throws RecognitionException {
+    public final void synpred1_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1745:14: ( '\\r\\n' )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1745:16: '\\r\\n'
         {
@@ -3504,6 +3508,6 @@
             return "1:1: Tokens : ( T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | DECLARE | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | ENTRY_POINT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC );";
         }
     }
+ 
 
-
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,20 +1,68 @@
 // $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-03-10 18:35:53
 
 	package org.drools.lang;
-	import java.util.List;
 	import java.util.ArrayList;
-	import java.util.Iterator;
-	import java.util.HashMap;
-	import java.util.StringTokenizer;
-	import org.drools.lang.descr.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
 
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
+import org.antlr.runtime.BaseRecognizer;
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.CommonToken;
+import org.antlr.runtime.DFA;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.FailedPredicateException;
+import org.antlr.runtime.IntStream;
+import org.antlr.runtime.MismatchedNotSetException;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.MismatchedTokenException;
+import org.antlr.runtime.MismatchedTreeNodeException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.Parser;
+import org.antlr.runtime.ParserRuleReturnScope;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.Token;
+import org.antlr.runtime.TokenStream;
+import org.drools.lang.descr.AccessorDescr;
+import org.drools.lang.descr.AccumulateDescr;
+import org.drools.lang.descr.AndDescr;
+import org.drools.lang.descr.AttributeDescr;
+import org.drools.lang.descr.BaseDescr;
+import org.drools.lang.descr.CollectDescr;
+import org.drools.lang.descr.ConditionalElementDescr;
+import org.drools.lang.descr.DeclarativeInvokerDescr;
+import org.drools.lang.descr.DescrFactory;
+import org.drools.lang.descr.EntryPointDescr;
+import org.drools.lang.descr.EvalDescr;
+import org.drools.lang.descr.ExistsDescr;
+import org.drools.lang.descr.FactTemplateDescr;
+import org.drools.lang.descr.FieldAccessDescr;
+import org.drools.lang.descr.FieldBindingDescr;
+import org.drools.lang.descr.FieldConstraintDescr;
+import org.drools.lang.descr.FieldTemplateDescr;
+import org.drools.lang.descr.ForallDescr;
+import org.drools.lang.descr.FromDescr;
+import org.drools.lang.descr.FunctionCallDescr;
+import org.drools.lang.descr.FunctionDescr;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.LiteralRestrictionDescr;
+import org.drools.lang.descr.MethodAccessDescr;
+import org.drools.lang.descr.NotDescr;
+import org.drools.lang.descr.OrDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.PatternSourceDescr;
+import org.drools.lang.descr.PredicateDescr;
+import org.drools.lang.descr.QualifiedIdentifierRestrictionDescr;
+import org.drools.lang.descr.QueryDescr;
+import org.drools.lang.descr.RestrictionConnectiveDescr;
+import org.drools.lang.descr.RestrictionDescr;
+import org.drools.lang.descr.ReturnValueRestrictionDescr;
+import org.drools.lang.descr.RuleDescr;
+import org.drools.lang.descr.TypeDeclarationDescr;
+import org.drools.lang.descr.VariableRestrictionDescr;
 public class DRLParser extends Parser {
     public static final String[] tokenNames = new String[] {
         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE", "IMPORT", "FUNCTION", "ID", "DOT", "GLOBAL", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "DECLARE", "LEFT_CURLY", "RIGHT_CURLY", "STRING", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "DIALECT", "LOCK_ON_ACTIVE", "OR", "DOUBLE_PIPE", "AND", "DOUBLE_AMPER", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "ACCUMULATE", "INIT", "ACTION", "REVERSE", "RESULT", "COLLECT", "ENTRY_POINT", "CONTAINS", "EXCLUDES", "MATCHES", "SOUNDSLIKE", "MEMBEROF", "TILDE", "IN", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "EVENT", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "MISC", "';'", "'.*'", "':'", "'->'", "'=='", "'>'", "'>='", "'<'", "'<='", "'!!
 ='"
@@ -97,8 +145,8 @@
             super(input);
             ruleMemo = new HashMap[86+1];
          }
+        
 
-
     public String[] getTokenNames() { return tokenNames; }
     public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g"; }
 
@@ -110,58 +158,58 @@
     	private DescrFactory factory = new DescrFactory();
     	private boolean parserDebug = false;
     	private Location location = new Location( Location.LOCATION_UNKNOWN );
-
+    	
     	// THE FOLLOWING LINES ARE DUMMY ATTRIBUTES TO WORK AROUND AN ANTLR BUG
     	private BaseDescr from = null;
     	private FieldConstraintDescr fc = null;
     	private RestrictionConnectiveDescr and = null;
     	private RestrictionConnectiveDescr or = null;
     	private ConditionalElementDescr base = null;
-
+    	
     	public void setParserDebug(boolean parserDebug) {
     		this.parserDebug = parserDebug;
     	}
-
+    	
     	public void debug(String message) {
-    		if ( parserDebug )
+    		if ( parserDebug ) 
     			System.err.println( "drl parser: " + message );
     	}
-
+    	
     	public void setSource(String source) {
     		this.source = source;
     	}
     	public DescrFactory getFactory() {
     		return factory;
-    	}
+    	}	
 
     	public String getSource() {
     		return this.source;
     	}
-
+    	
     	public PackageDescr getPackageDescr() {
     		return packageDescr;
     	}
-
+    	
     	private int offset(int line) {
     		return line + lineOffset;
     	}
-
+    	
     	/**
-    	 * This will set the offset to record when reparsing. Normally is zero of course
+    	 * This will set the offset to record when reparsing. Normally is zero of course 
     	 */
     	public void setLineOffset(int i) {
     	 	this.lineOffset = i;
     	}
-
+    	
     	private String getString(String token) {
     		return safeSubstring( token, 1, token.length() -1 );
     	}
-
+    	
     	private String cleanupSpaces( String input ) {
                     return input.replaceAll( "\\s", "" );
             }
-
-
+    	
+    	
     	public void reportError(RecognitionException ex) {
     	        // if we've already reported an error and have not matched a token
                     // yet successfully, don't report any errors.
@@ -171,14 +219,14 @@
                     errorRecovery = true;
 
     		ex.line = offset(ex.line); //add the offset if there is one
-    		errors.add( ex );
+    		errors.add( ex ); 
     	}
-
+         	
          	/** return the raw RecognitionException errors */
          	public List getErrors() {
          		return errors;
          	}
-
+         	
          	/** Return a list of pretty strings summarising the errors */
          	public List getErrorMessages() {
          		List messages = new ArrayList();
@@ -187,16 +235,16 @@
          	     	}
          	     	return messages;
          	}
-
+         	
          	/** return true if any parser errors were accumulated */
          	public boolean hasErrors() {
       		return ! errors.isEmpty();
          	}
-
+         	
          	/** This will take a RecognitionException, and create a sensible error message out of it */
          	public String createErrorMessage(RecognitionException e)
             {
-    		StringBuffer message = new StringBuffer();
+    		StringBuffer message = new StringBuffer();		
                     message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
                     if ( e instanceof MismatchedTokenException ) {
                             MismatchedTokenException mte = (MismatchedTokenException)e;
@@ -262,25 +310,25 @@
     			message.append(" " + e.getMessage());
     		}
                    	return message.toString();
-            }
-
+            }   
+            
             void checkTrailingSemicolon(String text, int line) {
             	if (text.trim().endsWith( ";" ) ) {
             		this.errors.add( new GeneralParseException( "Trailing semi-colon not allowed", offset(line) ) );
             	}
             }
-
+            
             public Location getLocation() {
                     return this.location;
             }
-
+            
             private String safeSubstring( String text, int start, int end ) {
                 	return text.substring( Math.min( start, text.length() ), Math.min( Math.max( start, end ), text.length() ) );
             }
+          
 
 
 
-
     // $ANTLR start opt_semicolon
     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:195:1: opt_semicolon : ( ';' )? ;
     public final void opt_semicolon() throws RecognitionException {
@@ -327,7 +375,7 @@
 
         		// reset Location information
         		this.location = new Location( Location.LOCATION_UNKNOWN );
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:204:2: ( prolog ( statement )* EOF )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:204:4: prolog ( statement )* EOF
@@ -372,7 +420,7 @@
         catch ( RecognitionException e ) {
 
             		reportError( e );
-
+            	
         }
         finally {
         }
@@ -389,7 +437,7 @@
 
 
         		String packageName = "";
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:216:2: ( (pkgstmt= package_statement )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:216:4: (pkgstmt= package_statement )?
@@ -410,7 +458,7 @@
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       packageName = pkgstmt;
+                       packageName = pkgstmt; 
                     }
 
                     }
@@ -419,9 +467,9 @@
             }
 
             if ( backtracking==0 ) {
-
-              			this.packageDescr = factory.createPackage( packageName );
-
+               
+              			this.packageDescr = factory.createPackage( packageName ); 
+              		
             }
 
             }
@@ -538,7 +586,7 @@
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       this.packageDescr.addAttribute( a );
+                       this.packageDescr.addAttribute( a ); 
                     }
 
                     }
@@ -591,7 +639,7 @@
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       this.packageDescr.addFactTemplate( t );
+                       this.packageDescr.addFactTemplate( t ); 
                     }
 
                     }
@@ -604,7 +652,7 @@
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       this.packageDescr.addRule( r );
+                       this.packageDescr.addRule( r ); 
                     }
 
                     }
@@ -617,7 +665,7 @@
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       this.packageDescr.addRule( q );
+                       this.packageDescr.addRule( q ); 
                     }
 
                     }
@@ -630,7 +678,7 @@
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       this.packageDescr.addTypeDeclaration( d );
+                       this.packageDescr.addTypeDeclaration( d ); 
                     }
 
                     }
@@ -659,7 +707,7 @@
 
 
         		packageName = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:239:2: ( PACKAGE n= dotted_name opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:240:3: PACKAGE n= dotted_name opt_semicolon
@@ -676,7 +724,7 @@
             if ( backtracking==0 ) {
 
               			packageName = n;
-
+              		
             }
 
             }
@@ -700,7 +748,7 @@
 
 
                 	ImportDescr importDecl = null;
-
+                
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:252:2: ( IMPORT import_name[importDecl] opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:252:4: IMPORT import_name[importDecl] opt_semicolon
@@ -714,7 +762,7 @@
               		    if (packageDescr != null) {
               			packageDescr.addImport( importDecl );
               		    }
-
+              	        
             }
             pushFollow(FOLLOW_import_name_in_import_statement282);
             import_name(importDecl);
@@ -746,7 +794,7 @@
 
 
                 	FunctionImportDescr importDecl = null;
-
+                
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:267:2: ( IMPORT FUNCTION import_name[importDecl] opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:267:4: IMPORT FUNCTION import_name[importDecl] opt_semicolon
@@ -761,7 +809,7 @@
               		    if (packageDescr != null) {
               			packageDescr.addFunctionImport( importDecl );
               		    }
-
+              	        
             }
             pushFollow(FOLLOW_import_name_in_function_import_statement334);
             import_name(importDecl);
@@ -799,7 +847,7 @@
 
 
         		name = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:282:2: ( ID ( DOT id= identifier )* (star= '.*' )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:283:3: ID ( DOT id= identifier )* (star= '.*' )?
@@ -807,11 +855,11 @@
             ID3=(Token)input.LT(1);
             match(input,ID,FOLLOW_ID_in_import_name362); if (failed) return name;
             if ( backtracking==0 ) {
-
-              		    name =ID3.getText();
+               
+              		    name =ID3.getText(); 
               		    importDecl.setTarget( name );
               		    importDecl.setEndCharacter( ((CommonToken)ID3).getStopIndex() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:289:3: ( DOT id= identifier )*
             loop5:
@@ -835,11 +883,11 @@
             	    _fsp--;
             	    if (failed) return name;
             	    if ( backtracking==0 ) {
-
-            	      		        name = name + DOT4.getText() + input.toString(id.start,id.stop);
+            	       
+            	      		        name = name + DOT4.getText() + input.toString(id.start,id.stop); 
             	      			importDecl.setTarget( name );
             	      		        importDecl.setEndCharacter( ((CommonToken)((Token)id.start)).getStopIndex() );
-
+            	      		    
             	    }
 
             	    }
@@ -864,11 +912,11 @@
                     star=(Token)input.LT(1);
                     match(input,77,FOLLOW_77_in_import_name402); if (failed) return name;
                     if ( backtracking==0 ) {
-
-                      		        name = name + star.getText();
+                       
+                      		        name = name + star.getText(); 
                       			importDecl.setTarget( name );
                       		        importDecl.setEndCharacter( ((CommonToken)star).getStopIndex() );
-
+                      		    
                     }
 
                     }
@@ -902,7 +950,7 @@
 
 
         	    GlobalDescr global = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:310:2: ( GLOBAL type= dotted_name id= identifier opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:311:3: GLOBAL type= dotted_name id= identifier opt_semicolon
@@ -914,7 +962,7 @@
               		    global = factory.createGlobal();
               	            global.setStartCharacter( ((CommonToken)GLOBAL5).getStartIndex() );
               		    packageDescr.addGlobal( global );
-
+              		
             }
             pushFollow(FOLLOW_dotted_name_in_global447);
             type=dotted_name();
@@ -923,7 +971,7 @@
             if ( backtracking==0 ) {
 
               		    global.setType( type );
-
+              		
             }
             pushFollow(FOLLOW_identifier_in_global458);
             id=identifier();
@@ -937,7 +985,7 @@
 
               		    global.setIdentifier( input.toString(id.start,id.stop) );
               		    global.setEndCharacter( ((CommonToken)((Token)id.start)).getStopIndex() );
-
+              		
             }
 
             }
@@ -972,7 +1020,7 @@
 
         		FunctionDescr f = null;
         		String type = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:334:2: ( FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:335:3: FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk
@@ -1016,7 +1064,7 @@
               			f.setLocation(offset(FUNCTION6.getLine()), FUNCTION6.getCharPositionInLine());
               	        	f.setStartCharacter( ((CommonToken)FUNCTION6).getStartIndex() );
               			packageDescr.addFunction( f );
-
+              		
             }
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function503); if (failed) return ;
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:4: ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )?
@@ -1055,7 +1103,7 @@
 
                       					type = paramType != null ? paramType : null;
                       					f.addParameter( type, paramName );
-
+                      				
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:350:5: ( COMMA (paramType= dotted_name )? paramName= argument )*
                     loop10:
@@ -1098,7 +1146,7 @@
 
                     	      						type = paramType != null ? paramType : null;
                     	      						f.addParameter( type, paramName );
-
+                    	      					
                     	    }
 
                     	    }
@@ -1126,7 +1174,7 @@
               			f.setText( safeSubstring( input.toString(body.start,body.stop), 1, input.toString(body.start,body.stop).length()-1 ) );
               			f.setEndCharacter( ((CommonToken)((Token)body.stop)).getStopIndex() );
               			f.setEndLocation(offset(((Token)body.stop).getLine()), ((Token)body.stop).getCharPositionInLine());
-
+              		
             }
 
             }
@@ -1153,7 +1201,7 @@
 
 
         		name = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:2: (id= identifier ( '[' ']' )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:4: id= identifier ( '[' ']' )*
@@ -1163,7 +1211,7 @@
             _fsp--;
             if (failed) return name;
             if ( backtracking==0 ) {
-               name =input.toString(id.start,id.stop);
+               name =input.toString(id.start,id.stop); 
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:38: ( '[' ']' )*
             loop12:
@@ -1219,7 +1267,7 @@
 
 
                         declaration = factory.createTypeDeclaration();
-
+                
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:378:9: ( DECLARE id= identifier LEFT_CURLY type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )* RIGHT_CURLY )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:378:11: DECLARE id= identifier LEFT_CURLY type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )* RIGHT_CURLY
@@ -1232,7 +1280,7 @@
             if ( backtracking==0 ) {
 
                                           declaration.setTypeName( input.toString(id.start,id.stop) );
-
+                                      
             }
             match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_type_declaration694); if (failed) return declaration;
             pushFollow(FOLLOW_type_decl_attribute_in_type_declaration720);
@@ -1327,7 +1375,7 @@
                     if ( backtracking==0 ) {
 
                                           declaration.addAttribute( input.toString(att.start,att.stop), getString( val.getText() ) );
-
+                                      
                     }
 
                     }
@@ -1342,7 +1390,7 @@
                     if ( backtracking==0 ) {
 
                                           declaration.addAttribute( input.toString(att.start,att.stop), cl );
-
+                                      
                     }
 
                     }
@@ -1382,9 +1430,9 @@
         		query = null;
         		AndDescr lhs = null;
         		List params = null;
-        		List types = null;
-
-
+        		List types = null;		
+         
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:408:2: ( QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:409:3: QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon
@@ -1396,14 +1444,14 @@
             _fsp--;
             if (failed) return query;
             if ( backtracking==0 ) {
-
-              			query = factory.createQuery( queryName.name );
+               
+              			query = factory.createQuery( queryName.name ); 
               			query.setLocation( offset(QUERY7.getLine()), QUERY7.getCharPositionInLine() );
               			query.setStartCharacter( ((CommonToken)QUERY7).getStartIndex() );
-              			lhs = new AndDescr(); query.setLhs( lhs );
+              			lhs = new AndDescr(); query.setLhs( lhs ); 
               			lhs.setLocation( offset(QUERY7.getLine()), QUERY7.getCharPositionInLine() );
                                       location.setType( Location.LOCATION_RULE_HEADER );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:418:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?
             int alt19=2;
@@ -1458,7 +1506,7 @@
                             paramName=(Token)input.LT(1);
                             match(input,ID,FOLLOW_ID_in_query976); if (failed) return query;
                             if ( backtracking==0 ) {
-                               params.add( paramName.getText() ); String type = (paramType != null) ? paramType.text : "Object"; types.add( type );
+                               params.add( paramName.getText() ); String type = (paramType != null) ? paramType.text : "Object"; types.add( type ); 
                             }
 
                             }
@@ -1507,7 +1555,7 @@
                             	    paramName=(Token)input.LT(1);
                             	    match(input,ID,FOLLOW_ID_in_query1006); if (failed) return query;
                             	    if ( backtracking==0 ) {
-                            	       params.add( paramName.getText() );  String type = (paramType != null) ? paramType.text : "Object"; types.add( type );
+                            	       params.add( paramName.getText() );  String type = (paramType != null) ? paramType.text : "Object"; types.add( type );  
                             	    }
 
                             	    }
@@ -1519,9 +1567,9 @@
                             } while (true);
 
                             if ( backtracking==0 ) {
-                              	query.setParameters( (String[]) params.toArray( new String[params.size()] ) );
-                              		            	query.setParameterTypes( (String[]) types.toArray( new String[types.size()] ) );
-
+                              	query.setParameters( (String[]) params.toArray( new String[params.size()] ) ); 
+                              		            	query.setParameterTypes( (String[]) types.toArray( new String[types.size()] ) ); 
+                              		            
                             }
 
                             }
@@ -1539,7 +1587,7 @@
             if ( backtracking==0 ) {
 
                                       location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-
+              	        
             }
             pushFollow(FOLLOW_normal_lhs_block_in_query1085);
             normal_lhs_block(lhs);
@@ -1554,7 +1602,7 @@
             if ( backtracking==0 ) {
 
               			query.setEndCharacter( ((CommonToken)END8).getStopIndex() );
-
+              		
             }
 
             }
@@ -1584,8 +1632,8 @@
 
 
 
-        		template = null;
-
+        		template = null;		
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:444:2: ( TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:445:3: TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon
@@ -1603,9 +1651,9 @@
             if ( backtracking==0 ) {
 
               			template = new FactTemplateDescr(templateName.name);
-              			template.setLocation( offset(TEMPLATE9.getLine()), TEMPLATE9.getCharPositionInLine() );
+              			template.setLocation( offset(TEMPLATE9.getLine()), TEMPLATE9.getCharPositionInLine() );			
               			template.setStartCharacter( ((CommonToken)TEMPLATE9).getStartIndex() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:451:3: (slot= template_slot )+
             int cnt20=0;
@@ -1630,7 +1678,7 @@
             	    if ( backtracking==0 ) {
 
             	      				template.addFieldTemplate( slot );
-
+            	      			
             	    }
 
             	    }
@@ -1655,7 +1703,7 @@
             if ( backtracking==0 ) {
 
               			template.setEndCharacter( ((CommonToken)END10).getStopIndex() );
-
+              		
             }
 
             }
@@ -1684,7 +1732,7 @@
 
 
         		field = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:467:2: (fieldType= qualified_id id= identifier opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:468:11: fieldType= qualified_id id= identifier opt_semicolon
@@ -1692,7 +1740,7 @@
             if ( backtracking==0 ) {
 
               			field = factory.createFieldTemplate();
-
+              	         
             }
             pushFollow(FOLLOW_qualified_id_in_template_slot1204);
             fieldType=qualified_id();
@@ -1703,7 +1751,7 @@
               		        field.setClassType( fieldType.text );
               			field.setStartCharacter( ((CommonToken)((Token)fieldType.start)).getStartIndex() );
               			field.setEndCharacter( ((CommonToken)((Token)fieldType.stop)).getStopIndex() );
-
+              		 
             }
             pushFollow(FOLLOW_identifier_in_template_slot1220);
             id=identifier();
@@ -1718,7 +1766,7 @@
               		        field.setName( input.toString(id.start,id.stop) );
               			field.setLocation( offset(((Token)id.start).getLine()), ((Token)id.start).getCharPositionInLine() );
               			field.setEndCharacter( ((CommonToken)((Token)id.start)).getStopIndex() );
-
+              		 
             }
 
             }
@@ -1748,7 +1796,7 @@
 
         		rule = null;
         		AndDescr lhs = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:2: ( RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:3: RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule]
@@ -1760,15 +1808,15 @@
             _fsp--;
             if (failed) return rule;
             if ( backtracking==0 ) {
-
+               
               			location.setType( Location.LOCATION_RULE_HEADER );
               			debug( "start rule: " + ruleName.name );
-              			rule = new RuleDescr( ruleName.name, null );
+              			rule = new RuleDescr( ruleName.name, null ); 
               			rule.setLocation( offset(RULE11.getLine()), RULE11.getCharPositionInLine() );
               			rule.setStartCharacter( ((CommonToken)RULE11).getStartIndex() );
-              			lhs = new AndDescr();
-              			rule.setLhs( lhs );
-
+              			lhs = new AndDescr(); 
+              			rule.setLhs( lhs ); 
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:502:3: ( rule_attributes[$rule] )?
             int alt21=2;
@@ -1823,11 +1871,11 @@
                     }
 
                     if ( backtracking==0 ) {
-
+                       
                       				this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
                       				lhs.setLocation( offset(WHEN12.getLine()), WHEN12.getCharPositionInLine() );
                       				lhs.setStartCharacter( ((CommonToken)WHEN12).getStartIndex() );
-
+                      			
                     }
                     pushFollow(FOLLOW_normal_lhs_block_in_rule1291);
                     normal_lhs_block(lhs);
@@ -1892,7 +1940,7 @@
             _fsp--;
             if (failed) return ;
             if ( backtracking==0 ) {
-               rule.addAttribute( attr );
+               rule.addAttribute( attr ); 
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:2: ( ( ',' )? attr= rule_attribute )*
             loop26:
@@ -1932,7 +1980,7 @@
             	    _fsp--;
             	    if (failed) return ;
             	    if ( backtracking==0 ) {
-            	       rule.addAttribute( attr );
+            	       rule.addAttribute( attr ); 
             	    }
 
             	    }
@@ -1968,7 +2016,7 @@
 
 
         		attr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:533:2: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect )
             int alt27=12;
@@ -2167,7 +2215,7 @@
             if ( backtracking==0 ) {
 
               		attr = a;
-
+              	
             }
         }
         catch (RecognitionException re) {
@@ -2191,7 +2239,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:551:2: ( DATE_EFFECTIVE STRING )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:552:3: DATE_EFFECTIVE STRING
@@ -2206,7 +2254,7 @@
               			descr.setLocation( offset( DATE_EFFECTIVE14.getLine() ), DATE_EFFECTIVE14.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)DATE_EFFECTIVE14).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)STRING13).getStopIndex() );
-
+              		
             }
 
             }
@@ -2233,7 +2281,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:566:2: ( DATE_EXPIRES STRING )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:566:4: DATE_EXPIRES STRING
@@ -2248,7 +2296,7 @@
               			descr.setLocation( offset(DATE_EXPIRES16.getLine()), DATE_EXPIRES16.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)DATE_EXPIRES16).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)STRING15).getStopIndex() );
-
+              		
             }
 
             }
@@ -2275,7 +2323,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:2: ( ENABLED BOOL )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:5: ENABLED BOOL
@@ -2290,7 +2338,7 @@
               				descr.setLocation( offset(ENABLED18.getLine()), ENABLED18.getCharPositionInLine() );
               				descr.setStartCharacter( ((CommonToken)ENABLED18).getStartIndex() );
               				descr.setEndCharacter( ((CommonToken)BOOL17).getStopIndex() );
-
+              			
             }
 
             }
@@ -2319,7 +2367,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:592:2: ( SALIENCE ( INT | txt= paren_chunk ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:3: SALIENCE ( INT | txt= paren_chunk )
@@ -2331,7 +2379,7 @@
               			descr = new AttributeDescr( "salience" );
               			descr.setLocation( offset(SALIENCE19.getLine()), SALIENCE19.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)SALIENCE19).getStartIndex() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:599:3: ( INT | txt= paren_chunk )
             int alt28=2;
@@ -2360,7 +2408,7 @@
 
                       			descr.setValue( INT20.getText() );
                       			descr.setEndCharacter( ((CommonToken)INT20).getStopIndex() );
-
+                      		
                     }
 
                     }
@@ -2376,7 +2424,7 @@
 
                       			descr.setValue( input.toString(txt.start,txt.stop) );
                       			descr.setEndCharacter( ((CommonToken)((Token)txt.stop)).getStopIndex() );
-
+                      		
                     }
 
                     }
@@ -2409,7 +2457,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:616:2: ( NO_LOOP ( BOOL )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:616:4: NO_LOOP ( BOOL )?
@@ -2422,7 +2470,7 @@
               			descr.setLocation( offset(NO_LOOP21.getLine()), NO_LOOP21.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)NO_LOOP21).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)NO_LOOP21).getStopIndex() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:3: ( BOOL )?
             int alt29=2;
@@ -2441,7 +2489,7 @@
 
                       				descr.setValue( BOOL22.getText() );
                       				descr.setEndCharacter( ((CommonToken)BOOL22).getStopIndex() );
-
+                      			
                     }
 
                     }
@@ -2474,7 +2522,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:635:2: ( AUTO_FOCUS ( BOOL )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:635:4: AUTO_FOCUS ( BOOL )?
@@ -2487,7 +2535,7 @@
               			descr.setLocation( offset(AUTO_FOCUS23.getLine()), AUTO_FOCUS23.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)AUTO_FOCUS23).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)AUTO_FOCUS23).getStopIndex() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:3: ( BOOL )?
             int alt30=2;
@@ -2506,7 +2554,7 @@
 
                       				descr.setValue( BOOL24.getText() );
                       				descr.setEndCharacter( ((CommonToken)BOOL24).getStopIndex() );
-
+                      			
                     }
 
                     }
@@ -2539,7 +2587,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:654:2: ( ACTIVATION_GROUP STRING )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:654:4: ACTIVATION_GROUP STRING
@@ -2554,7 +2602,7 @@
               			descr.setLocation( offset(ACTIVATION_GROUP26.getLine()), ACTIVATION_GROUP26.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)ACTIVATION_GROUP26).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)STRING25).getStopIndex() );
-
+              		
             }
 
             }
@@ -2581,7 +2629,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:667:2: ( RULEFLOW_GROUP STRING )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:667:4: RULEFLOW_GROUP STRING
@@ -2596,7 +2644,7 @@
               			descr.setLocation( offset(RULEFLOW_GROUP28.getLine()), RULEFLOW_GROUP28.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)RULEFLOW_GROUP28).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)STRING27).getStopIndex() );
-
+              		
             }
 
             }
@@ -2623,7 +2671,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:680:2: ( AGENDA_GROUP STRING )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:680:4: AGENDA_GROUP STRING
@@ -2638,7 +2686,7 @@
               			descr.setLocation( offset(AGENDA_GROUP30.getLine()), AGENDA_GROUP30.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)AGENDA_GROUP30).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)STRING29).getStopIndex() );
-
+              		
             }
 
             }
@@ -2665,7 +2713,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:2: ( DURATION INT )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:4: DURATION INT
@@ -2680,7 +2728,7 @@
               			descr.setLocation( offset(DURATION32.getLine()), DURATION32.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)DURATION32).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)INT31).getStopIndex() );
-
+              		
             }
 
             }
@@ -2707,7 +2755,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:2: ( DIALECT STRING )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:4: DIALECT STRING
@@ -2722,7 +2770,7 @@
               			descr.setLocation( offset(DIALECT34.getLine()), DIALECT34.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)DIALECT34).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)STRING33).getStopIndex() );
-
+              		
             }
 
             }
@@ -2749,7 +2797,7 @@
 
 
         		descr = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:2: ( LOCK_ON_ACTIVE ( BOOL )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:4: LOCK_ON_ACTIVE ( BOOL )?
@@ -2762,7 +2810,7 @@
               			descr.setLocation( offset(LOCK_ON_ACTIVE35.getLine()), LOCK_ON_ACTIVE35.getCharPositionInLine() );
               			descr.setStartCharacter( ((CommonToken)LOCK_ON_ACTIVE35).getStartIndex() );
               			descr.setEndCharacter( ((CommonToken)LOCK_ON_ACTIVE35).getStopIndex() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:3: ( BOOL )?
             int alt31=2;
@@ -2781,7 +2829,7 @@
 
                       				descr.setValue( BOOL36.getText() );
                       				descr.setEndCharacter( ((CommonToken)BOOL36).getStopIndex() );
-
+                      			
                     }
 
                     }
@@ -2812,7 +2860,7 @@
 
 
         		location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:738:2: ( (d= lhs[$descr] )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:3: (d= lhs[$descr] )*
@@ -2837,7 +2885,7 @@
             	    _fsp--;
             	    if (failed) return ;
             	    if ( backtracking==0 ) {
-            	       if( d != null) descr.addDescr( d );
+            	       if( d != null) descr.addDescr( d ); 
             	    }
 
             	    }
@@ -2873,7 +2921,7 @@
 
 
         		d =null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:749:2: (l= lhs_or )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:749:4: l= lhs_or
@@ -2883,7 +2931,7 @@
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
-               d = l;
+               d = l; 
             }
 
             }
@@ -2915,7 +2963,7 @@
 
         		d = null;
         		OrDescr or = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:758:2: ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* )
             int alt35=2;
@@ -2959,7 +3007,7 @@
                       			or = new OrDescr();
                       			d = or;
                       			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
-
+                      		
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:764:3: (lhsand= lhs_and )+
                     int cnt33=0;
@@ -2984,7 +3032,7 @@
                     	    if ( backtracking==0 ) {
 
                     	      			or.addDescr( lhsand );
-
+                    	      		
                     	    }
 
                     	    }
@@ -3012,7 +3060,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = left;
+                       d = left; 
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:771:3: ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
                     loop34:
@@ -3043,7 +3091,7 @@
                     	    if ( backtracking==0 ) {
 
                     	      				location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
-
+                    	      			
                     	    }
                     	    pushFollow(FOLLOW_lhs_and_in_lhs_or2082);
                     	    right=lhs_and();
@@ -3056,9 +3104,9 @@
                     	      					or.addDescr( left );
                     	      					d = or;
                     	      				}
-
+                    	      				
                     	      				or.addDescr( right );
-
+                    	      			
                     	    }
 
                     	    }
@@ -3101,7 +3149,7 @@
 
         		d = null;
         		AndDescr and = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:793:2: ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* )
             int alt38=2;
@@ -3145,7 +3193,7 @@
                       			and = new AndDescr();
                       			d = and;
                       			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
-
+                      		
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:3: (lhsunary= lhs_unary )+
                     int cnt36=0;
@@ -3170,7 +3218,7 @@
                     	    if ( backtracking==0 ) {
 
                     	      			and.addDescr( lhsunary );
-
+                    	      		
                     	    }
 
                     	    }
@@ -3198,7 +3246,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = left;
+                       d = left; 
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:3: ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
                     loop37:
@@ -3229,7 +3277,7 @@
                     	    if ( backtracking==0 ) {
 
                     	      				location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
-
+                    	      			
                     	    }
                     	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2179);
                     	    right=lhs_unary();
@@ -3242,9 +3290,9 @@
                     	      					and.addDescr( left );
                     	      					d = and;
                     	      				}
-
+                    	      				
                     	      				and.addDescr( right );
-
+                    	      			
                     	    }
 
                     	    }
@@ -3284,7 +3332,7 @@
 
 
         		d = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:2: ( ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon
@@ -3327,7 +3375,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = u;
+                       d = u; 
                     }
 
                     }
@@ -3340,7 +3388,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = u;
+                       d = u; 
                     }
 
                     }
@@ -3353,7 +3401,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = u;
+                       d = u; 
                     }
 
                     }
@@ -3366,7 +3414,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = u;
+                       d = u; 
                     }
 
                     }
@@ -3381,7 +3429,7 @@
                     if (failed) return d;
                     match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2303); if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = u;
+                       d = u; 
                     }
 
                     }
@@ -3394,7 +3442,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       d = (BaseDescr) ps;
+                       d = (BaseDescr) ps; 
                     }
 
                     }
@@ -3439,7 +3487,7 @@
 
 
         		d = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:841:2: (u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:3: u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
@@ -3449,7 +3497,7 @@
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
-               d = u;
+               d = u; 
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:3: ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
             int alt41=3;
@@ -3478,7 +3526,7 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) ep);
+                       if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) ep); 
                     }
 
                     }
@@ -3494,7 +3542,7 @@
 
                       				location.setType(Location.LOCATION_LHS_FROM);
                       				location.setProperty(Location.LOCATION_FROM_CONTENT, "");
-
+                      		        
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853:11: ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
                     int alt40=3;
@@ -3556,7 +3604,7 @@
                             _fsp--;
                             if (failed) return d;
                             if ( backtracking==0 ) {
-                               if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) ac);
+                               if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) ac); 
                             }
 
                             }
@@ -3575,7 +3623,7 @@
                             _fsp--;
                             if (failed) return d;
                             if ( backtracking==0 ) {
-                               if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) cs);
+                               if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) cs); 
                             }
 
                             }
@@ -3594,7 +3642,7 @@
                             _fsp--;
                             if (failed) return d;
                             if ( backtracking==0 ) {
-                               if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) fm);
+                               if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) fm); 
                             }
 
                             }
@@ -3640,7 +3688,7 @@
 
 
         		d = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:2: ( EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:4: EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
@@ -3649,11 +3697,11 @@
             match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist2589); if (failed) return d;
             if ( backtracking==0 ) {
 
-              			d = new ExistsDescr( );
+              			d = new ExistsDescr( ); 
               			d.setLocation( offset(EXISTS37.getLine()), EXISTS37.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)EXISTS37).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:873:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
             int alt42=2;
@@ -3685,12 +3733,12 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       if ( or != null ) ((ExistsDescr)d).addDescr( or );
+                       if ( or != null ) ((ExistsDescr)d).addDescr( or ); 
                     }
                     RIGHT_PAREN38=(Token)input.LT(1);
                     match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2643); if (failed) return d;
                     if ( backtracking==0 ) {
-                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN38).getStopIndex() );
+                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN38).getStopIndex() ); 
                     }
 
                     }
@@ -3711,7 +3759,7 @@
                       	                		((ExistsDescr)d).addDescr( pattern );
                       	                		d.setEndCharacter( pattern.getEndCharacter() );
                       	                	}
-
+                      	                
                     }
 
                     }
@@ -3748,7 +3796,7 @@
 
 
         		d = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:2: ( NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:4: NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
@@ -3757,11 +3805,11 @@
             match(input,NOT,FOLLOW_NOT_in_lhs_not2745); if (failed) return d;
             if ( backtracking==0 ) {
 
-              			d = new NotDescr( );
+              			d = new NotDescr( ); 
               			d.setLocation( offset(NOT39.getLine()), NOT39.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)NOT39).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
             int alt43=2;
@@ -3793,12 +3841,12 @@
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
-                       if ( or != null ) d.addDescr( or );
+                       if ( or != null ) d.addDescr( or ); 
                     }
                     RIGHT_PAREN40=(Token)input.LT(1);
                     match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2793); if (failed) return d;
                     if ( backtracking==0 ) {
-                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN40).getStopIndex() );
+                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN40).getStopIndex() ); 
                     }
 
                     }
@@ -3819,7 +3867,7 @@
                       	                		d.addDescr( pattern );
                       	                		d.setEndCharacter( pattern.getEndCharacter() );
                       	                	}
-
+                      	                
                     }
 
                     }
@@ -3853,7 +3901,7 @@
 
 
         		d = new EvalDescr( );
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:919:2: ( EVAL c= paren_chunk )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:920:3: EVAL c= paren_chunk
@@ -3863,14 +3911,14 @@
             if ( backtracking==0 ) {
 
               			location.setType( Location.LOCATION_LHS_INSIDE_EVAL );
-
+              		
             }
             pushFollow(FOLLOW_paren_chunk_in_lhs_eval2887);
             c=paren_chunk();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
-
+               
               			d.setStartCharacter( ((CommonToken)EVAL41).getStartIndex() );
               		        if( input.toString(c.start,c.stop) != null ) {
               	  		    this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
@@ -3882,7 +3930,7 @@
               			if( ((Token)c.stop) != null ) {
               			    d.setEndCharacter( ((CommonToken)((Token)c.stop)).getStopIndex() );
               			}
-
+              		
             }
 
             }
@@ -3913,7 +3961,7 @@
 
 
         		d = factory.createForall();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:2: ( FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:4: FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN
@@ -3931,7 +3979,7 @@
               		        // adding the base pattern
               		        d.addDescr( base );
               			d.setLocation( offset(FORALL42.getLine()), FORALL42.getCharPositionInLine() );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:951:3: (pattern= lhs_pattern )*
             loop44:
@@ -3956,7 +4004,7 @@
 
             	      		        // adding additional patterns
             	      			d.addDescr( pattern );
-
+            	      		   
             	    }
 
             	    }
@@ -3972,7 +4020,7 @@
             if ( backtracking==0 ) {
 
               		        d.setEndCharacter( ((CommonToken)RIGHT_PAREN43).getStopIndex() );
-
+              		
             }
 
             }
@@ -3999,7 +4047,7 @@
 
 
         		d =null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:2: (f= fact_binding | f= fact[null] )
             int alt45=2;
@@ -4055,7 +4103,7 @@
             if ( backtracking==0 ) {
 
               		d =f;
-
+              	
             }
         }
         catch (RecognitionException re) {
@@ -4079,7 +4127,7 @@
 
 
         		d =factory.createFrom();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:978:2: (ds= from_source[$d] )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:979:2: ds= from_source[$d]
@@ -4091,7 +4139,7 @@
             if ( backtracking==0 ) {
 
               		d.setDataSource( ds );
-
+              	
             }
 
             }
@@ -4123,7 +4171,7 @@
 
 
         		d = factory.createAccumulate();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:990:2: ( ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:10: ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN
@@ -4131,11 +4179,11 @@
             ACCUMULATE44=(Token)input.LT(1);
             match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement3055); if (failed) return d;
             if ( backtracking==0 ) {
-
+               
               			d.setLocation( offset(ACCUMULATE44.getLine()), ACCUMULATE44.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)ACCUMULATE44).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE );
-
+              		
             }
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement3065); if (failed) return d;
             pushFollow(FOLLOW_lhs_or_in_accumulate_statement3069);
@@ -4163,7 +4211,7 @@
             if ( backtracking==0 ) {
 
               		        d.setInput( inputCE );
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )
             int alt51=2;
@@ -4193,7 +4241,7 @@
                     if ( backtracking==0 ) {
 
                       				location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE_INIT );
-
+                      			
                     }
                     pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3102);
                     text=paren_chunk();
@@ -4224,7 +4272,7 @@
                       					location.setProperty(Location.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT, d.getInitCode());
                       					location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION );
                       				}
-
+                      			
                     }
                     match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement3115); if (failed) return d;
                     pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3119);
@@ -4256,7 +4304,7 @@
                       	       				location.setProperty(Location.LOCATION_PROPERTY_FROM_ACCUMULATE_ACTION_CONTENT, d.getActionCode());
                       					location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE );
                       				}
-
+                      			
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:4: ( REVERSE text= paren_chunk ( COMMA )? )?
                     int alt50=2;
@@ -4299,7 +4347,7 @@
                               	       				location.setProperty(Location.LOCATION_PROPERTY_FROM_ACCUMULATE_REVERSE_CONTENT, d.getReverseCode());
                               					location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT );
                               				}
-
+                              			
                             }
 
                             }
@@ -4318,7 +4366,7 @@
                       				        d.setResultCode( safeSubstring( input.toString(text.start,text.stop), 1, input.toString(text.start,text.stop).length()-1 ) );
                       					location.setProperty(Location.LOCATION_PROPERTY_FROM_ACCUMULATE_RESULT_CONTENT, d.getResultCode());
                       				}
-
+                      			
                     }
 
                     }
@@ -4348,7 +4396,7 @@
                       				        d.setExpression( safeSubstring( input.toString(text.start,text.stop), 1, input.toString(text.start,text.stop).length()-1 ) );
                       	       				location.setProperty(Location.LOCATION_PROPERTY_FROM_ACCUMULATE_EXPRESSION_CONTENT, d.getExpression());
                       				}
-
+                      			
                     }
 
                     }
@@ -4365,7 +4413,7 @@
 
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
               			d.setEndCharacter( ((CommonToken)RIGHT_PAREN45).getStopIndex() );
-
+              		
             }
 
             }
@@ -4396,7 +4444,7 @@
         		ds = null;
         		AccessorDescr ad = null;
         		FunctionCallDescr fc = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:2: (ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:4: ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )?
@@ -4407,13 +4455,13 @@
             if (failed) return ds;
             if ( backtracking==0 ) {
 
-              			ad = new AccessorDescr(ident.start.getText());
+              			ad = new AccessorDescr(ident.start.getText());	
               			ad.setLocation( offset(ident.start.getLine()), ident.start.getCharPositionInLine() );
               			ad.setStartCharacter( ((CommonToken)ident.start).getStartIndex() );
               			ad.setEndCharacter( ((CommonToken)ident.start).getStopIndex() );
               			ds = ad;
               			location.setProperty(Location.LOCATION_FROM_CONTENT, ident.start.getText());
-
+              		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1076:3: ( options {k=1; } : args= paren_chunk )?
             int alt52=2;
@@ -4435,14 +4483,14 @@
                       			if( input.toString(args.start,args.stop) != null ) {
                       				ad.setVariableName( null );
                       				fc = new FunctionCallDescr(((Token)ident.start).getText());
-                      				fc.setLocation( offset(((Token)ident.start).getLine()), ((Token)ident.start).getCharPositionInLine() );
+                      				fc.setLocation( offset(((Token)ident.start).getLine()), ((Token)ident.start).getCharPositionInLine() );			
                       				fc.setArguments(input.toString(args.start,args.stop));
                       				fc.setStartCharacter( ((CommonToken)((Token)ident.start)).getStartIndex() );
                       				fc.setEndCharacter( ((CommonToken)((Token)ident.start)).getStopIndex() );
                       				location.setProperty(Location.LOCATION_FROM_CONTENT, input.toString(args.start,args.stop));
                       				from.setEndCharacter( ((CommonToken)((Token)args.stop)).getStopIndex() );
                       			}
-
+                      		
                     }
 
                     }
@@ -4487,7 +4535,7 @@
             			}
             			location.setProperty(Location.LOCATION_FROM_CONTENT, ad.toString() );
             		}
-
+            	
         }
         return ds;
     }
@@ -4506,8 +4554,8 @@
 
 
           		FieldAccessDescr fa = null;
-        	    	MethodAccessDescr ma = null;
-
+        	    	MethodAccessDescr ma = null;	
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:2: ( ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1114:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
@@ -4522,11 +4570,11 @@
             if (failed) return ;
             if ( backtracking==0 ) {
 
-              	        fa = new FieldAccessDescr(((Token)field.start).getText());
+              	        fa = new FieldAccessDescr(((Token)field.start).getText());	
               		fa.setLocation( offset(((Token)field.start).getLine()), ((Token)field.start).getCharPositionInLine() );
               		fa.setStartCharacter( ((CommonToken)((Token)field.start)).getStartIndex() );
               		fa.setEndCharacter( ((CommonToken)((Token)field.start)).getStopIndex() );
-
+              	    
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?
             int alt54=3;
@@ -4541,9 +4589,9 @@
                     if (failed) return ;
                     if ( backtracking==0 ) {
 
-                      	          fa.setArgument( input.toString(sqarg.start,sqarg.stop) );
+                      	          fa.setArgument( input.toString(sqarg.start,sqarg.stop) );	
                       		  from.setEndCharacter( ((CommonToken)((Token)sqarg.stop)).getStopIndex() );
-
+                      	      
                     }
 
                     }
@@ -4557,11 +4605,11 @@
                     if (failed) return ;
                     if ( backtracking==0 ) {
 
-                      	    	  ma = new MethodAccessDescr( ((Token)field.start).getText(), input.toString(paarg.start,paarg.stop) );
+                      	    	  ma = new MethodAccessDescr( ((Token)field.start).getText(), input.toString(paarg.start,paarg.stop) );	
                       		  ma.setLocation( offset(((Token)field.start).getLine()), ((Token)field.start).getCharPositionInLine() );
                       		  ma.setStartCharacter( ((CommonToken)((Token)field.start)).getStartIndex() );
                       		  from.setEndCharacter( ((CommonToken)((Token)paarg.stop)).getStopIndex() );
-
+                      		
                     }
 
                     }
@@ -4609,7 +4657,7 @@
             		} else {
             			as.addFirstInvoker( fa );
             		}
-
+            	
         }
         return ;
     }
@@ -4628,7 +4676,7 @@
 
 
         		d = factory.createCollect();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154:2: ( COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155:10: COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN
@@ -4636,11 +4684,11 @@
             COLLECT46=(Token)input.LT(1);
             match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3445); if (failed) return d;
             if ( backtracking==0 ) {
-
+               
               			d.setLocation( offset(COLLECT46.getLine()), COLLECT46.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)COLLECT46).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_FROM_COLLECT );
-
+              		
             }
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3455); if (failed) return d;
             pushFollow(FOLLOW_pattern_source_in_collect_statement3459);
@@ -4654,7 +4702,7 @@
               		        d.setInputPattern( (PatternDescr) pattern );
               			d.setEndCharacter( ((CommonToken)RIGHT_PAREN47).getStopIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-
+              		
             }
 
             }
@@ -4682,7 +4730,7 @@
 
 
         		d = factory.createEntryPoint();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1173:2: ( ENTRY_POINT id= name )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1174:10: ENTRY_POINT id= name
@@ -4690,11 +4738,11 @@
             ENTRY_POINT48=(Token)input.LT(1);
             match(input,ENTRY_POINT,FOLLOW_ENTRY_POINT_in_entrypoint_statement3498); if (failed) return d;
             if ( backtracking==0 ) {
-
+               
               			d.setLocation( offset(ENTRY_POINT48.getLine()), ENTRY_POINT48.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)ENTRY_POINT48).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_FROM_ENTRY_POINT );
-
+              		
             }
             pushFollow(FOLLOW_name_in_entrypoint_statement3510);
             id=name();
@@ -4705,7 +4753,7 @@
               		        d.setEntryId( id.name );
               			d.setEndCharacter( ((CommonToken)((Token)id.stop)).getStopIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-
+              		
             }
 
             }
@@ -4738,7 +4786,7 @@
 
         		d =null;
         		OrDescr or = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1193:3: ( ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1194:4: ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
@@ -4751,7 +4799,7 @@
                		        // handling incomplete parsing
                		        d = new PatternDescr( );
                		        ((PatternDescr) d).setIdentifier( ID49.getText() );
-
+               		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1200:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
             int alt57=2;
@@ -4785,7 +4833,7 @@
                        			if( d != null ) {
                          			    d.setStartCharacter( ((CommonToken)ID49).getStartIndex() );
                          			}
-
+                       		
                     }
 
                     }
@@ -4805,7 +4853,7 @@
                        			if( d != null ) {
                          			    d.setStartCharacter( ((CommonToken)ID49).getStartIndex() );
                          			}
-
+                       		
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:4: ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )*
                     loop56:
@@ -4845,7 +4893,7 @@
                     	      					d = or;
                     	      				}
                     	      				or.addDescr( right );
-
+                    	       			
                     	    }
 
                     	    }
@@ -4891,7 +4939,7 @@
 
         		d =null;
         		PatternDescr pattern = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1237:3: (id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1238:11: id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )?
@@ -4902,21 +4950,21 @@
                			if( ident != null ) {
                				pattern.setIdentifier( ident );
                			}
-               			d = pattern;
-
+               			d = pattern; 
+               	        
             }
             pushFollow(FOLLOW_qualified_id_in_fact3676);
             id=qualified_id();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
-
+               
                			if( id != null ) {
               	 		        pattern.setObjectType( id.text );
                			        pattern.setEndCharacter( -1 );
               				pattern.setStartCharacter( ((CommonToken)((Token)id.start)).getStartIndex() );
                			}
-
+               		
             }
             LEFT_PAREN50=(Token)input.LT(1);
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3686); if (failed) return d;
@@ -4924,10 +4972,10 @@
 
               		        location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START );
                           		location.setProperty( Location.LOCATION_PROPERTY_CLASS_NAME, id.text );
-
+               				
                			pattern.setLocation( offset(LEFT_PAREN50.getLine()), LEFT_PAREN50.getCharPositionInLine() );
                			pattern.setLeftParentCharacter( ((CommonToken)LEFT_PAREN50).getStartIndex() );
-
+               		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:4: ( constraints[pattern] )?
             int alt58=2;
@@ -4956,11 +5004,11 @@
 
               		        if( ")".equals( RIGHT_PAREN51.getText() ) ) {
               				this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-              				pattern.setEndLocation( offset(RIGHT_PAREN51.getLine()), RIGHT_PAREN51.getCharPositionInLine() );
+              				pattern.setEndLocation( offset(RIGHT_PAREN51.getLine()), RIGHT_PAREN51.getCharPositionInLine() );	
               				pattern.setEndCharacter( ((CommonToken)RIGHT_PAREN51).getStopIndex() );
               		        	pattern.setRightParentCharacter( ((CommonToken)RIGHT_PAREN51).getStartIndex() );
               		        }
-
+               		
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:4: ( EOF )?
             int alt59=2;
@@ -5023,7 +5071,7 @@
             	    {
             	    match(input,COMMA,FOLLOW_COMMA_in_constraints3739); if (failed) return ;
             	    if ( backtracking==0 ) {
-            	       location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START );
+            	       location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START ); 
             	    }
             	    pushFollow(FOLLOW_constraint_in_constraints3748);
             	    constraint(pattern);
@@ -5060,7 +5108,7 @@
         		ConditionalElementDescr top = null;
         		location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
         		location.setProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME, input.LT(1).getText() );
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1288:2: ( or_constr[top] )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1289:3: or_constr[top]
@@ -5068,7 +5116,7 @@
             if ( backtracking==0 ) {
 
               			top = pattern.getConstraint();
-
+              		
             }
             pushFollow(FOLLOW_or_constr_in_constraint3781);
             or_constr(top);
@@ -5094,7 +5142,7 @@
     public final void or_constr(ConditionalElementDescr base) throws RecognitionException {
 
         		OrDescr or = new OrDescr();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1299:2: ( and_constr[or] ( DOUBLE_PIPE and_constr[or] )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1300:3: and_constr[or] ( DOUBLE_PIPE and_constr[or] )*
@@ -5122,7 +5170,7 @@
             	    if ( backtracking==0 ) {
 
             	      			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
-
+            	      		
             	    }
             	    pushFollow(FOLLOW_and_constr_in_or_constr3821);
             	    and_constr(or);
@@ -5144,7 +5192,7 @@
               		        } else if ( or.getDescrs().size() > 1 ) {
               		        	base.addDescr( or );
               		        }
-
+              		
             }
 
             }
@@ -5166,7 +5214,7 @@
     public final void and_constr(ConditionalElementDescr base) throws RecognitionException {
 
         		AndDescr and = new AndDescr();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1320:2: ( unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:3: unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )*
@@ -5194,7 +5242,7 @@
             	    if ( backtracking==0 ) {
 
             	      			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
-
+            	      		
             	    }
             	    pushFollow(FOLLOW_unary_constr_in_and_constr3870);
             	    unary_constr(and);
@@ -5216,7 +5264,7 @@
               		        } else if( and.getDescrs().size() > 1) {
               		        	base.addDescr( and );
               		        }
-
+              		
             }
 
             }
@@ -5351,7 +5399,7 @@
         		FieldBindingDescr fbd = null;
         		FieldConstraintDescr fc = null;
         		RestrictionConnectiveDescr top = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1351:2: ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) )
             int alt65=2;
@@ -5395,14 +5443,14 @@
                     match(input,ID,FOLLOW_ID_in_field_constraint3958); if (failed) return ;
                     match(input,78,FOLLOW_78_in_field_constraint3960); if (failed) return ;
                     if ( backtracking==0 ) {
-
+                       
                       			fbd = new FieldBindingDescr();
                       			fbd.setIdentifier( ID52.getText() );
                       			fbd.setLocation( offset(ID52.getLine()), ID52.getCharPositionInLine() );
                       			fbd.setStartCharacter( ((CommonToken)ID52).getStartIndex() );
                       			base.addDescr( fbd );
 
-
+                      		    
                     }
                     pushFollow(FOLLOW_accessor_path_in_field_constraint3979);
                     f=accessor_path();
@@ -5415,23 +5463,23 @@
                       		    if( f.text != null ) {
                       			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
                       			location.setProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME, f.text);
-
+                      		    
                       			if ( fbd != null ) {
                       			    fbd.setFieldName( f.text );
                       			    // may have been overwritten
                       			    fbd.setStartCharacter( ((CommonToken)ID52).getStartIndex() );
-                      			}
+                      			} 
                       			fc = new FieldConstraintDescr(f.text);
                       			fc.setLocation( offset(((Token)f.start).getLine()), ((Token)f.start).getCharPositionInLine() );
                       			fc.setStartCharacter( ((CommonToken)((Token)f.start)).getStartIndex() );
                       			top = fc.getRestriction();
-
+                      			
                       			// it must be a field constraint, as it is not a binding
                       			if( ID52 == null ) {
                       			    base.addDescr( fc );
                       			}
                       		    }
-
+                      		
                     }
                     // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1387:3: ( or_restr_connective[top] | '->' predicate[$base] )?
                     int alt64=3;
@@ -5457,7 +5505,7 @@
                               				if( ID52 != null) {
                               				    base.addDescr( fc );
                               				}
-
+                              			
                             }
 
                             }
@@ -5499,15 +5547,15 @@
                       		    if( f.text != null ) {
                       			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
                       			location.setProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME, f.text);
-
+                      		    
                       			fc = new FieldConstraintDescr(f.text);
                       			fc.setLocation( offset(((Token)f.start).getLine()), ((Token)f.start).getCharPositionInLine() );
                       			fc.setStartCharacter( ((CommonToken)((Token)f.start)).getStartIndex() );
                       			top = fc.getRestriction();
-
+                      			
                       			base.addDescr( fc );
                       		    }
-
+                      		
                     }
                     pushFollow(FOLLOW_or_restr_connective_in_field_constraint4045);
                     or_restr_connective(top);
@@ -5533,7 +5581,7 @@
             			base.addDescr( fc );
             	    }
             	    throw nvae;
-
+            	
         }
         finally {
         }
@@ -5547,7 +5595,7 @@
     public final void or_restr_connective(RestrictionConnectiveDescr base) throws RecognitionException {
 
         		RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1440:2: ( and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1441:3: and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
@@ -5623,7 +5671,7 @@
             	    if ( backtracking==0 ) {
 
             	      				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
-
+            	      			
             	    }
             	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4127);
             	    and_restr_connective(or);
@@ -5653,7 +5701,7 @@
             	        } else if ( or.getRestrictions().size() > 1 ) {
             	        	base.addRestriction( or );
             	        }
-
+            	
         }
         return ;
     }
@@ -5667,7 +5715,7 @@
 
 
         		RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1463:2: ( constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1464:3: constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
@@ -5836,7 +5884,7 @@
             	    if ( backtracking==0 ) {
 
             	      				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
-
+            	      			
             	    }
             	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4190);
             	    constraint_expression(and);
@@ -5866,7 +5914,7 @@
             	        } else if ( and.getRestrictions().size() > 1 ) {
             	        	base.addRestriction( and );
             	        }
-
+            	
         }
         return ;
     }
@@ -5964,7 +6012,7 @@
                     if ( backtracking==0 ) {
 
                       			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
-
+                      		
                     }
                     pushFollow(FOLLOW_or_restr_connective_in_constraint_expression4251);
                     or_restr_connective(base);
@@ -6006,7 +6054,7 @@
         		String op = null;
         		String paramText = null;
         		boolean isNegated = false;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:2: ( (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1501:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText]
@@ -6307,8 +6355,8 @@
                	            isNegated = n != null;
                	            if( param != null ) {
                                       paramText = safeSubstring( input.toString(param.start,param.stop), 1, input.toString(param.start,param.stop).length()-1 );
-               	            }
-
+               	            } 
+              		
             }
             pushFollow(FOLLOW_expression_value_in_simple_operator4611);
             rd=expression_value(base,  op,  isNegated,  paramText);
@@ -6327,7 +6375,7 @@
             		if ( rd == null && op != null ) {
             		        base.addRestriction( new LiteralRestrictionDescr(op, false, null) );
             		}
-
+            	
         }
         return ;
     }
@@ -6343,7 +6391,7 @@
 
         		String op = null;
         		RestrictionConnectiveDescr group = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1540:2: ( ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:3: ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN
@@ -6377,7 +6425,7 @@
                       			  base.addRestriction( group );
                         		    	  location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
                                           	  location.setProperty(Location.LOCATION_PROPERTY_OPERATOR, "in");
-
+                      			
                     }
 
                     }
@@ -6394,7 +6442,7 @@
                       			  base.addRestriction( group );
                         		    	  location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
                                           	  location.setProperty(Location.LOCATION_PROPERTY_OPERATOR, "in");
-
+                      			
                     }
 
                     }
@@ -6440,7 +6488,7 @@
             if ( backtracking==0 ) {
 
               			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
-
+              		
             }
 
             }
@@ -6471,7 +6519,7 @@
 
 
         		rd = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1570:2: ( (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1571:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
@@ -6537,13 +6585,13 @@
                     _fsp--;
                     if (failed) return rd;
                     if ( backtracking==0 ) {
-
+                       
                       			        if( ap.text.indexOf( '.' ) > -1 || ap.text.indexOf( '[' ) > -1) {
                       					rd = new QualifiedIdentifierRestrictionDescr(op, isNegated, paramText, ap.text);
                       				} else {
                       					rd = new VariableRestrictionDescr(op, isNegated, paramText, ap.text);
                       				}
-
+                      			
                     }
 
                     }
@@ -6556,9 +6604,9 @@
                     _fsp--;
                     if (failed) return rd;
                     if ( backtracking==0 ) {
-
+                       
                       				rd = new LiteralRestrictionDescr(op, isNegated, paramText, lc.text, lc.type );
-
+                      			
                     }
 
                     }
@@ -6571,9 +6619,9 @@
                     _fsp--;
                     if (failed) return rd;
                     if ( backtracking==0 ) {
-
-                      				rd = new ReturnValueRestrictionDescr(op, isNegated, paramText, safeSubstring( input.toString(rvc.start,rvc.stop), 1, input.toString(rvc.start,rvc.stop).length()-1) );
-
+                       
+                      				rd = new ReturnValueRestrictionDescr(op, isNegated, paramText, safeSubstring( input.toString(rvc.start,rvc.stop), 1, input.toString(rvc.start,rvc.stop).length()-1) );							
+                      			
                     }
 
                     }
@@ -6587,7 +6635,7 @@
               				base.addRestriction( rd );
               			}
               			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
-
+              		
             }
 
             }
@@ -6618,7 +6666,7 @@
 
 
         		retval.text = null;
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
@@ -6666,7 +6714,7 @@
                     t=(Token)input.LT(1);
                     match(input,STRING,FOLLOW_STRING_in_literal_constraint4805); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.text = getString( t.getText() ); retval.type = LiteralRestrictionDescr.TYPE_STRING;
+                       retval.text = getString( t.getText() ); retval.type = LiteralRestrictionDescr.TYPE_STRING; 
                     }
 
                     }
@@ -6677,7 +6725,7 @@
                     t=(Token)input.LT(1);
                     match(input,INT,FOLLOW_INT_in_literal_constraint4816); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
+                       retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER; 
                     }
 
                     }
@@ -6688,7 +6736,7 @@
                     t=(Token)input.LT(1);
                     match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4829); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
+                       retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER; 
                     }
 
                     }
@@ -6699,7 +6747,7 @@
                     t=(Token)input.LT(1);
                     match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4840); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_BOOLEAN;
+                       retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_BOOLEAN; 
                     }
 
                     }
@@ -6710,7 +6758,7 @@
                     t=(Token)input.LT(1);
                     match(input,NULL,FOLLOW_NULL_in_literal_constraint4852); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.text = null; retval.type = LiteralRestrictionDescr.TYPE_NULL;
+                       retval.text = null; retval.type = LiteralRestrictionDescr.TYPE_NULL; 
                     }
 
                     }
@@ -6743,7 +6791,7 @@
 
 
         		PredicateDescr d = null;
-
+                
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:2: (text= paren_chunk )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1613:3: text= paren_chunk
@@ -6760,7 +6808,7 @@
               				d.setEndCharacter( ((CommonToken)((Token)text.stop)).getStopIndex() );
               				base.addDescr( d );
               		        }
-
+              		
             }
 
             }
@@ -7029,7 +7077,7 @@
 
 
         	        StringBuffer buf = new StringBuffer();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:2: ( ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:5: ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
@@ -7108,7 +7156,7 @@
             if ( backtracking==0 ) {
 
               	        retval.text = buf != null ? buf.toString() : "";
-
+              	
             }
         }
         catch (RecognitionException re) {
@@ -7132,7 +7180,7 @@
 
 
         	        StringBuffer buf = new StringBuffer();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:2: (i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:4: i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
@@ -7211,7 +7259,7 @@
             if ( backtracking==0 ) {
 
               	        text = buf != null ? buf.toString() : "";
-
+              	
             }
         }
         catch (RecognitionException re) {
@@ -7239,7 +7287,7 @@
 
 
         	        StringBuffer buf = new StringBuffer();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:2: (a= accessor_element ( DOT a= accessor_element )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:4: a= accessor_element ( DOT a= accessor_element )*
@@ -7291,7 +7339,7 @@
             if ( backtracking==0 ) {
 
               	        retval.text = buf != null ? buf.toString() : "";
-
+              	
             }
         }
         catch (RecognitionException re) {
@@ -7317,7 +7365,7 @@
 
 
         	        StringBuffer buf = new StringBuffer();
-
+        	
         try {
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:2: (i= identifier (s= square_chunk )* )
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:3: i= identifier (s= square_chunk )*
@@ -7366,7 +7414,7 @@
             if ( backtracking==0 ) {
 
               	        text = buf != null ? buf.toString() : "";
-
+              	
             }
         }
         catch (RecognitionException re) {
@@ -7393,7 +7441,7 @@
             THEN55=(Token)input.LT(1);
             match(input,THEN,FOLLOW_THEN_in_rhs_chunk5202); if (failed) return ;
             if ( backtracking==0 ) {
-               location.setType( Location.LOCATION_RHS );
+               location.setType( Location.LOCATION_RHS ); 
             }
             // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:3: (~ END )*
             loop85:
@@ -7452,7 +7500,7 @@
                    		    rule.setConsequenceLocation(offset(THEN55.getLine()), THEN55.getCharPositionInLine());
                		    rule.setEndCharacter( ((CommonToken)loc).getStopIndex() );
                		    location.setProperty( Location.LOCATION_RHS_CONTENT, rule.getConsequence() );
-
+                              
             }
 
             }
@@ -7506,7 +7554,7 @@
                     ID56=(Token)input.LT(1);
                     match(input,ID,FOLLOW_ID_in_name5270); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.name = ID56.getText();
+                       retval.name = ID56.getText(); 
                     }
 
                     }
@@ -7517,7 +7565,7 @@
                     STRING57=(Token)input.LT(1);
                     match(input,STRING,FOLLOW_STRING_in_name5278); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.name = getString( STRING57.getText() );
+                       retval.name = getString( STRING57.getText() ); 
                     }
 
                     }
@@ -7578,7 +7626,7 @@
     // $ANTLR end identifier
 
     // $ANTLR start synpred1
-    public final void synpred1_fragment() throws RecognitionException {
+    public final void synpred1_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:6: ( EXISTS )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:8: EXISTS
         {
@@ -7589,7 +7637,7 @@
     // $ANTLR end synpred1
 
     // $ANTLR start synpred2
-    public final void synpred2_fragment() throws RecognitionException {
+    public final void synpred2_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:5: ( NOT )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:7: NOT
         {
@@ -7600,7 +7648,7 @@
     // $ANTLR end synpred2
 
     // $ANTLR start synpred3
-    public final void synpred3_fragment() throws RecognitionException {
+    public final void synpred3_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:829:5: ( EVAL )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:829:7: EVAL
         {
@@ -7611,7 +7659,7 @@
     // $ANTLR end synpred3
 
     // $ANTLR start synpred4
-    public final void synpred4_fragment() throws RecognitionException {
+    public final void synpred4_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:5: ( FORALL )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:7: FORALL
         {
@@ -7622,7 +7670,7 @@
     // $ANTLR end synpred4
 
     // $ANTLR start synpred5
-    public final void synpred5_fragment() throws RecognitionException {
+    public final void synpred5_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:5: ( LEFT_PAREN )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:7: LEFT_PAREN
         {
@@ -7633,7 +7681,7 @@
     // $ANTLR end synpred5
 
     // $ANTLR start synpred6
-    public final void synpred6_fragment() throws RecognitionException {
+    public final void synpred6_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:13: ( FROM ENTRY_POINT )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:14: FROM ENTRY_POINT
         {
@@ -7645,7 +7693,7 @@
     // $ANTLR end synpred6
 
     // $ANTLR start synpred9
-    public final void synpred9_fragment() throws RecognitionException {
+    public final void synpred9_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:6: ( LEFT_SQUARE )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:8: LEFT_SQUARE
         {
@@ -7656,7 +7704,7 @@
     // $ANTLR end synpred9
 
     // $ANTLR start synpred10
-    public final void synpred10_fragment() throws RecognitionException {
+    public final void synpred10_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:6: ( LEFT_PAREN )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:8: LEFT_PAREN
         {
@@ -7667,7 +7715,7 @@
     // $ANTLR end synpred10
 
     // $ANTLR start synpred11
-    public final void synpred11_fragment() throws RecognitionException {
+    public final void synpred11_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1444:4: ( DOUBLE_PIPE and_restr_connective[or] )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1444:4: DOUBLE_PIPE and_restr_connective[or]
         {
@@ -7682,7 +7730,7 @@
     // $ANTLR end synpred11
 
     // $ANTLR start synpred12
-    public final void synpred12_fragment() throws RecognitionException {
+    public final void synpred12_fragment() throws RecognitionException {   
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1466:5: ( DOUBLE_AMPER constraint_expression[and] )
         // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1466:5: DOUBLE_AMPER constraint_expression[and]
         {
@@ -8197,10 +8245,10 @@
         public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
             switch ( s ) {
-                    case 0 :
+                    case 0 : 
                         int LA54_40 = input.LA(1);
 
-
+                         
                         int index54_40 = input.index();
                         input.rewind();
                         s = -1;
@@ -8208,14 +8256,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_40);
                         if ( s>=0 ) return s;
                         break;
-                    case 1 :
+                    case 1 : 
                         int LA54_29 = input.LA(1);
 
-
+                         
                         int index54_29 = input.index();
                         input.rewind();
                         s = -1;
@@ -8231,14 +8279,14 @@
 
                         else if ( ((LA54_29>=PACKAGE && LA54_29<=ID)||LA54_29==GLOBAL||LA54_29==COMMA||(LA54_29>=DECLARE && LA54_29<=NULL)||(LA54_29>=RIGHT_SQUARE && LA54_29<=77)||(LA54_29>=79 && LA54_29<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_29);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 :
+                    case 2 : 
                         int LA54_27 = input.LA(1);
 
-
+                         
                         int index54_27 = input.index();
                         input.rewind();
                         s = -1;
@@ -8254,14 +8302,14 @@
 
                         else if ( ((LA54_27>=PACKAGE && LA54_27<=ID)||LA54_27==GLOBAL||LA54_27==COMMA||(LA54_27>=DECLARE && LA54_27<=NULL)||(LA54_27>=RIGHT_SQUARE && LA54_27<=77)||(LA54_27>=79 && LA54_27<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_27);
                         if ( s>=0 ) return s;
                         break;
-                    case 3 :
+                    case 3 : 
                         int LA54_11 = input.LA(1);
 
-
+                         
                         int index54_11 = input.index();
                         input.rewind();
                         s = -1;
@@ -8277,14 +8325,14 @@
 
                         else if ( ((LA54_11>=PACKAGE && LA54_11<=ID)||LA54_11==GLOBAL||LA54_11==COMMA||(LA54_11>=DECLARE && LA54_11<=NULL)||(LA54_11>=RIGHT_SQUARE && LA54_11<=77)||(LA54_11>=79 && LA54_11<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_11);
                         if ( s>=0 ) return s;
                         break;
-                    case 4 :
+                    case 4 : 
                         int LA54_35 = input.LA(1);
 
-
+                         
                         int index54_35 = input.index();
                         input.rewind();
                         s = -1;
@@ -8292,14 +8340,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_35);
                         if ( s>=0 ) return s;
                         break;
-                    case 5 :
+                    case 5 : 
                         int LA54_63 = input.LA(1);
 
-
+                         
                         int index54_63 = input.index();
                         input.rewind();
                         s = -1;
@@ -8307,14 +8355,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_63);
                         if ( s>=0 ) return s;
                         break;
-                    case 6 :
+                    case 6 : 
                         int LA54_7 = input.LA(1);
 
-
+                         
                         int index54_7 = input.index();
                         input.rewind();
                         s = -1;
@@ -8326,14 +8374,14 @@
 
                         else if ( ((LA54_7>=PACKAGE && LA54_7<=FUNCTION)||(LA54_7>=DOT && LA54_7<=GLOBAL)||LA54_7==COMMA||(LA54_7>=DECLARE && LA54_7<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_7);
                         if ( s>=0 ) return s;
                         break;
-                    case 7 :
+                    case 7 : 
                         int LA54_31 = input.LA(1);
 
-
+                         
                         int index54_31 = input.index();
                         input.rewind();
                         s = -1;
@@ -8341,14 +8389,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_31);
                         if ( s>=0 ) return s;
                         break;
-                    case 8 :
+                    case 8 : 
                         int LA54_18 = input.LA(1);
 
-
+                         
                         int index54_18 = input.index();
                         input.rewind();
                         s = -1;
@@ -8356,14 +8404,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_18);
                         if ( s>=0 ) return s;
                         break;
-                    case 9 :
+                    case 9 : 
                         int LA54_34 = input.LA(1);
 
-
+                         
                         int index54_34 = input.index();
                         input.rewind();
                         s = -1;
@@ -8375,14 +8423,14 @@
 
                         else if ( (LA54_34==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_34);
                         if ( s>=0 ) return s;
                         break;
-                    case 10 :
+                    case 10 : 
                         int LA54_58 = input.LA(1);
 
-
+                         
                         int index54_58 = input.index();
                         input.rewind();
                         s = -1;
@@ -8394,14 +8442,14 @@
 
                         else if ( (LA54_58==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_58);
                         if ( s>=0 ) return s;
                         break;
-                    case 11 :
+                    case 11 : 
                         int LA54_62 = input.LA(1);
 
-
+                         
                         int index54_62 = input.index();
                         input.rewind();
                         s = -1;
@@ -8413,14 +8461,14 @@
 
                         else if ( (LA54_62==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_62);
                         if ( s>=0 ) return s;
                         break;
-                    case 12 :
+                    case 12 : 
                         int LA54_43 = input.LA(1);
 
-
+                         
                         int index54_43 = input.index();
                         input.rewind();
                         s = -1;
@@ -8432,14 +8480,14 @@
 
                         else if ( (LA54_43==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_43);
                         if ( s>=0 ) return s;
                         break;
-                    case 13 :
+                    case 13 : 
                         int LA54_9 = input.LA(1);
 
-
+                         
                         int index54_9 = input.index();
                         input.rewind();
                         s = -1;
@@ -8449,14 +8497,14 @@
 
                         else if ( ((LA54_9>=PACKAGE && LA54_9<=GLOBAL)||LA54_9==COMMA||(LA54_9>=DECLARE && LA54_9<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_9);
                         if ( s>=0 ) return s;
                         break;
-                    case 14 :
+                    case 14 : 
                         int LA54_50 = input.LA(1);
 
-
+                         
                         int index54_50 = input.index();
                         input.rewind();
                         s = -1;
@@ -8464,14 +8512,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_50);
                         if ( s>=0 ) return s;
                         break;
-                    case 15 :
+                    case 15 : 
                         int LA54_39 = input.LA(1);
 
-
+                         
                         int index54_39 = input.index();
                         input.rewind();
                         s = -1;
@@ -8487,14 +8535,14 @@
 
                         else if ( ((LA54_39>=PACKAGE && LA54_39<=ID)||LA54_39==GLOBAL||LA54_39==COMMA||(LA54_39>=DECLARE && LA54_39<=NULL)||(LA54_39>=RIGHT_SQUARE && LA54_39<=77)||(LA54_39>=79 && LA54_39<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_39);
                         if ( s>=0 ) return s;
                         break;
-                    case 16 :
+                    case 16 : 
                         int LA54_36 = input.LA(1);
 
-
+                         
                         int index54_36 = input.index();
                         input.rewind();
                         s = -1;
@@ -8510,14 +8558,14 @@
 
                         else if ( ((LA54_36>=PACKAGE && LA54_36<=ID)||LA54_36==GLOBAL||LA54_36==COMMA||(LA54_36>=DECLARE && LA54_36<=NULL)||(LA54_36>=RIGHT_SQUARE && LA54_36<=77)||(LA54_36>=79 && LA54_36<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_36);
                         if ( s>=0 ) return s;
                         break;
-                    case 17 :
+                    case 17 : 
                         int LA54_19 = input.LA(1);
 
-
+                         
                         int index54_19 = input.index();
                         input.rewind();
                         s = -1;
@@ -8533,14 +8581,14 @@
 
                         else if ( ((LA54_19>=PACKAGE && LA54_19<=ID)||LA54_19==GLOBAL||LA54_19==COMMA||(LA54_19>=DECLARE && LA54_19<=NULL)||(LA54_19>=RIGHT_SQUARE && LA54_19<=77)||(LA54_19>=79 && LA54_19<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_19);
                         if ( s>=0 ) return s;
                         break;
-                    case 18 :
+                    case 18 : 
                         int LA54_8 = input.LA(1);
 
-
+                         
                         int index54_8 = input.index();
                         input.rewind();
                         s = -1;
@@ -8552,14 +8600,14 @@
 
                         else if ( ((LA54_8>=PACKAGE && LA54_8<=FUNCTION)||(LA54_8>=DOT && LA54_8<=GLOBAL)||LA54_8==COMMA||(LA54_8>=DECLARE && LA54_8<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_8);
                         if ( s>=0 ) return s;
                         break;
-                    case 19 :
+                    case 19 : 
                         int LA54_52 = input.LA(1);
 
-
+                         
                         int index54_52 = input.index();
                         input.rewind();
                         s = -1;
@@ -8571,14 +8619,14 @@
 
                         else if ( ((LA54_52>=PACKAGE && LA54_52<=FUNCTION)||(LA54_52>=DOT && LA54_52<=GLOBAL)||LA54_52==COMMA||(LA54_52>=DECLARE && LA54_52<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_52);
                         if ( s>=0 ) return s;
                         break;
-                    case 20 :
+                    case 20 : 
                         int LA54_2 = input.LA(1);
 
-
+                         
                         int index54_2 = input.index();
                         input.rewind();
                         s = -1;
@@ -8602,14 +8650,14 @@
 
                         else if ( (LA54_2==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-
+                         
                         input.seek(index54_2);
                         if ( s>=0 ) return s;
                         break;
-                    case 21 :
+                    case 21 : 
                         int LA54_59 = input.LA(1);
 
-
+                         
                         int index54_59 = input.index();
                         input.rewind();
                         s = -1;
@@ -8617,14 +8665,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_59);
                         if ( s>=0 ) return s;
                         break;
-                    case 22 :
+                    case 22 : 
                         int LA54_20 = input.LA(1);
 
-
+                         
                         int index54_20 = input.index();
                         input.rewind();
                         s = -1;
@@ -8632,14 +8680,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_20);
                         if ( s>=0 ) return s;
                         break;
-                    case 23 :
+                    case 23 : 
                         int LA54_46 = input.LA(1);
 
-
+                         
                         int index54_46 = input.index();
                         input.rewind();
                         s = -1;
@@ -8655,14 +8703,14 @@
 
                         else if ( ((LA54_46>=PACKAGE && LA54_46<=ID)||LA54_46==GLOBAL||LA54_46==COMMA||(LA54_46>=DECLARE && LA54_46<=NULL)||(LA54_46>=RIGHT_SQUARE && LA54_46<=77)||(LA54_46>=79 && LA54_46<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_46);
                         if ( s>=0 ) return s;
                         break;
-                    case 24 :
+                    case 24 : 
                         int LA54_25 = input.LA(1);
 
-
+                         
                         int index54_25 = input.index();
                         input.rewind();
                         s = -1;
@@ -8678,14 +8726,14 @@
 
                         else if ( ((LA54_25>=PACKAGE && LA54_25<=ID)||LA54_25==GLOBAL||LA54_25==COMMA||(LA54_25>=DECLARE && LA54_25<=NULL)||(LA54_25>=RIGHT_SQUARE && LA54_25<=77)||(LA54_25>=79 && LA54_25<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_25);
                         if ( s>=0 ) return s;
                         break;
-                    case 25 :
+                    case 25 : 
                         int LA54_49 = input.LA(1);
 
-
+                         
                         int index54_49 = input.index();
                         input.rewind();
                         s = -1;
@@ -8701,14 +8749,14 @@
 
                         else if ( ((LA54_49>=PACKAGE && LA54_49<=ID)||LA54_49==GLOBAL||LA54_49==COMMA||(LA54_49>=DECLARE && LA54_49<=NULL)||(LA54_49>=RIGHT_SQUARE && LA54_49<=77)||(LA54_49>=79 && LA54_49<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_49);
                         if ( s>=0 ) return s;
                         break;
-                    case 26 :
+                    case 26 : 
                         int LA54_64 = input.LA(1);
 
-
+                         
                         int index54_64 = input.index();
                         input.rewind();
                         s = -1;
@@ -8722,14 +8770,14 @@
 
                         else if ( ((LA54_64>=PACKAGE && LA54_64<=ID)||LA54_64==GLOBAL||LA54_64==COMMA||(LA54_64>=DECLARE && LA54_64<=NULL)||(LA54_64>=RIGHT_SQUARE && LA54_64<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_64);
                         if ( s>=0 ) return s;
                         break;
-                    case 27 :
+                    case 27 : 
                         int LA54_24 = input.LA(1);
 
-
+                         
                         int index54_24 = input.index();
                         input.rewind();
                         s = -1;
@@ -8739,14 +8787,14 @@
 
                         else if ( ((LA54_24>=PACKAGE && LA54_24<=GLOBAL)||LA54_24==COMMA||(LA54_24>=DECLARE && LA54_24<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_24);
                         if ( s>=0 ) return s;
                         break;
-                    case 28 :
+                    case 28 : 
                         int LA54_55 = input.LA(1);
 
-
+                         
                         int index54_55 = input.index();
                         input.rewind();
                         s = -1;
@@ -8754,14 +8802,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_55);
                         if ( s>=0 ) return s;
                         break;
-                    case 29 :
+                    case 29 : 
                         int LA54_22 = input.LA(1);
 
-
+                         
                         int index54_22 = input.index();
                         input.rewind();
                         s = -1;
@@ -8773,14 +8821,14 @@
 
                         else if ( ((LA54_22>=PACKAGE && LA54_22<=FUNCTION)||(LA54_22>=DOT && LA54_22<=GLOBAL)||LA54_22==COMMA||(LA54_22>=DECLARE && LA54_22<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_22);
                         if ( s>=0 ) return s;
                         break;
-                    case 30 :
+                    case 30 : 
                         int LA54_30 = input.LA(1);
 
-
+                         
                         int index54_30 = input.index();
                         input.rewind();
                         s = -1;
@@ -8788,14 +8836,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_30);
                         if ( s>=0 ) return s;
                         break;
-                    case 31 :
+                    case 31 : 
                         int LA54_17 = input.LA(1);
 
-
+                         
                         int index54_17 = input.index();
                         input.rewind();
                         s = -1;
@@ -8805,14 +8853,14 @@
 
                         else if ( ((LA54_17>=PACKAGE && LA54_17<=GLOBAL)||LA54_17==COMMA||(LA54_17>=DECLARE && LA54_17<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_17);
                         if ( s>=0 ) return s;
                         break;
-                    case 32 :
+                    case 32 : 
                         int LA54_51 = input.LA(1);
 
-
+                         
                         int index54_51 = input.index();
                         input.rewind();
                         s = -1;
@@ -8820,14 +8868,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_51);
                         if ( s>=0 ) return s;
                         break;
-                    case 33 :
+                    case 33 : 
                         int LA54_16 = input.LA(1);
 
-
+                         
                         int index54_16 = input.index();
                         input.rewind();
                         s = -1;
@@ -8837,14 +8885,14 @@
 
                         else if ( (LA54_16==LEFT_PAREN) ) {s = 40;}
 
-
+                         
                         input.seek(index54_16);
                         if ( s>=0 ) return s;
                         break;
-                    case 34 :
+                    case 34 : 
                         int LA54_65 = input.LA(1);
 
-
+                         
                         int index54_65 = input.index();
                         input.rewind();
                         s = -1;
@@ -8852,14 +8900,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_65);
                         if ( s>=0 ) return s;
                         break;
-                    case 35 :
+                    case 35 : 
                         int LA54_4 = input.LA(1);
 
-
+                         
                         int index54_4 = input.index();
                         input.rewind();
                         s = -1;
@@ -8879,14 +8927,14 @@
 
                         else if ( ((LA54_4>=PACKAGE && LA54_4<=FUNCTION)||(LA54_4>=DOT && LA54_4<=GLOBAL)||LA54_4==COMMA||(LA54_4>=DECLARE && LA54_4<=FROM)||(LA54_4>=ACCUMULATE && LA54_4<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_4);
                         if ( s>=0 ) return s;
                         break;
-                    case 36 :
+                    case 36 : 
                         int LA54_32 = input.LA(1);
 
-
+                         
                         int index54_32 = input.index();
                         input.rewind();
                         s = -1;
@@ -8898,14 +8946,14 @@
 
                         else if ( ((LA54_32>=PACKAGE && LA54_32<=FUNCTION)||(LA54_32>=DOT && LA54_32<=GLOBAL)||LA54_32==COMMA||(LA54_32>=DECLARE && LA54_32<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_32);
                         if ( s>=0 ) return s;
                         break;
-                    case 37 :
+                    case 37 : 
                         int LA54_56 = input.LA(1);
 
-
+                         
                         int index54_56 = input.index();
                         input.rewind();
                         s = -1;
@@ -8917,14 +8965,14 @@
 
                         else if ( ((LA54_56>=PACKAGE && LA54_56<=FUNCTION)||(LA54_56>=DOT && LA54_56<=GLOBAL)||LA54_56==COMMA||(LA54_56>=DECLARE && LA54_56<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_56);
                         if ( s>=0 ) return s;
                         break;
-                    case 38 :
+                    case 38 : 
                         int LA54_60 = input.LA(1);
 
-
+                         
                         int index54_60 = input.index();
                         input.rewind();
                         s = -1;
@@ -8936,14 +8984,14 @@
 
                         else if ( ((LA54_60>=PACKAGE && LA54_60<=FUNCTION)||(LA54_60>=DOT && LA54_60<=GLOBAL)||LA54_60==COMMA||(LA54_60>=DECLARE && LA54_60<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_60);
                         if ( s>=0 ) return s;
                         break;
-                    case 39 :
+                    case 39 : 
                         int LA54_5 = input.LA(1);
 
-
+                         
                         int index54_5 = input.index();
                         input.rewind();
                         s = -1;
@@ -8963,14 +9011,14 @@
 
                         else if ( ((LA54_5>=PACKAGE && LA54_5<=FUNCTION)||(LA54_5>=DOT && LA54_5<=GLOBAL)||LA54_5==COMMA||(LA54_5>=DECLARE && LA54_5<=FROM)||(LA54_5>=ACCUMULATE && LA54_5<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_5);
                         if ( s>=0 ) return s;
                         break;
-                    case 40 :
+                    case 40 : 
                         int LA54_14 = input.LA(1);
 
-
+                         
                         int index54_14 = input.index();
                         input.rewind();
                         s = -1;
@@ -8982,14 +9030,14 @@
 
                         else if ( ((LA54_14>=PACKAGE && LA54_14<=FUNCTION)||(LA54_14>=DOT && LA54_14<=GLOBAL)||LA54_14==COMMA||(LA54_14>=DECLARE && LA54_14<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_14);
                         if ( s>=0 ) return s;
                         break;
-                    case 41 :
+                    case 41 : 
                         int LA54_48 = input.LA(1);
 
-
+                         
                         int index54_48 = input.index();
                         input.rewind();
                         s = -1;
@@ -8997,14 +9045,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_48);
                         if ( s>=0 ) return s;
                         break;
-                    case 42 :
+                    case 42 : 
                         int LA54_28 = input.LA(1);
 
-
+                         
                         int index54_28 = input.index();
                         input.rewind();
                         s = -1;
@@ -9012,14 +9060,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_28);
                         if ( s>=0 ) return s;
                         break;
-                    case 43 :
+                    case 43 : 
                         int LA54_0 = input.LA(1);
 
-
+                         
                         int index54_0 = input.index();
                         input.rewind();
                         s = -1;
@@ -9029,14 +9077,14 @@
 
                         else if ( ((LA54_0>=ID && LA54_0<=DOT)||(LA54_0>=COMMA && LA54_0<=RIGHT_PAREN)||LA54_0==END||(LA54_0>=OR && LA54_0<=DOUBLE_AMPER)||(LA54_0>=EXISTS && LA54_0<=FORALL)||LA54_0==INIT||LA54_0==THEN||LA54_0==76) ) {s = 3;}
 
-
+                         
                         input.seek(index54_0);
                         if ( s>=0 ) return s;
                         break;
-                    case 44 :
+                    case 44 : 
                         int LA54_21 = input.LA(1);
 
-
+                         
                         int index54_21 = input.index();
                         input.rewind();
                         s = -1;
@@ -9048,14 +9096,14 @@
 
                         else if ( ((LA54_21>=PACKAGE && LA54_21<=FUNCTION)||(LA54_21>=DOT && LA54_21<=GLOBAL)||LA54_21==COMMA||(LA54_21>=DECLARE && LA54_21<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_21);
                         if ( s>=0 ) return s;
                         break;
-                    case 45 :
+                    case 45 : 
                         int LA54_53 = input.LA(1);
 
-
+                         
                         int index54_53 = input.index();
                         input.rewind();
                         s = -1;
@@ -9067,14 +9115,14 @@
 
                         else if ( (LA54_53==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_53);
                         if ( s>=0 ) return s;
                         break;
-                    case 46 :
+                    case 46 : 
                         int LA54_47 = input.LA(1);
 
-
+                         
                         int index54_47 = input.index();
                         input.rewind();
                         s = -1;
@@ -9082,14 +9130,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_47);
                         if ( s>=0 ) return s;
                         break;
-                    case 47 :
+                    case 47 : 
                         int LA54_54 = input.LA(1);
 
-
+                         
                         int index54_54 = input.index();
                         input.rewind();
                         s = -1;
@@ -9101,14 +9149,14 @@
 
                         else if ( (LA54_54==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_54);
                         if ( s>=0 ) return s;
                         break;
-                    case 48 :
+                    case 48 : 
                         int LA54_41 = input.LA(1);
 
-
+                         
                         int index54_41 = input.index();
                         input.rewind();
                         s = -1;
@@ -9116,14 +9164,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_41);
                         if ( s>=0 ) return s;
                         break;
-                    case 49 :
+                    case 49 : 
                         int LA54_38 = input.LA(1);
 
-
+                         
                         int index54_38 = input.index();
                         input.rewind();
                         s = -1;
@@ -9131,14 +9179,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_38);
                         if ( s>=0 ) return s;
                         break;
-                    case 50 :
+                    case 50 : 
                         int LA54_23 = input.LA(1);
 
-
+                         
                         int index54_23 = input.index();
                         input.rewind();
                         s = -1;
@@ -9148,14 +9196,14 @@
 
                         else if ( (LA54_23==LEFT_PAREN) ) {s = 50;}
 
-
+                         
                         input.seek(index54_23);
                         if ( s>=0 ) return s;
                         break;
-                    case 51 :
+                    case 51 : 
                         int LA54_42 = input.LA(1);
 
-
+                         
                         int index54_42 = input.index();
                         input.rewind();
                         s = -1;
@@ -9167,14 +9215,14 @@
 
                         else if ( ((LA54_42>=PACKAGE && LA54_42<=FUNCTION)||(LA54_42>=DOT && LA54_42<=GLOBAL)||LA54_42==COMMA||(LA54_42>=DECLARE && LA54_42<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_42);
                         if ( s>=0 ) return s;
                         break;
-                    case 52 :
+                    case 52 : 
                         int LA54_66 = input.LA(1);
 
-
+                         
                         int index54_66 = input.index();
                         input.rewind();
                         s = -1;
@@ -9188,14 +9236,14 @@
 
                         else if ( ((LA54_66>=PACKAGE && LA54_66<=ID)||LA54_66==GLOBAL||LA54_66==COMMA||(LA54_66>=DECLARE && LA54_66<=NULL)||(LA54_66>=RIGHT_SQUARE && LA54_66<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_66);
                         if ( s>=0 ) return s;
                         break;
-                    case 53 :
+                    case 53 : 
                         int LA54_26 = input.LA(1);
 
-
+                         
                         int index54_26 = input.index();
                         input.rewind();
                         s = -1;
@@ -9203,14 +9251,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_26);
                         if ( s>=0 ) return s;
                         break;
-                    case 54 :
+                    case 54 : 
                         int LA54_15 = input.LA(1);
 
-
+                         
                         int index54_15 = input.index();
                         input.rewind();
                         s = -1;
@@ -9222,14 +9270,14 @@
 
                         else if ( ((LA54_15>=PACKAGE && LA54_15<=FUNCTION)||(LA54_15>=DOT && LA54_15<=GLOBAL)||LA54_15==COMMA||(LA54_15>=DECLARE && LA54_15<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_15);
                         if ( s>=0 ) return s;
                         break;
-                    case 55 :
+                    case 55 : 
                         int LA54_37 = input.LA(1);
 
-
+                         
                         int index54_37 = input.index();
                         input.rewind();
                         s = -1;
@@ -9237,14 +9285,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_37);
                         if ( s>=0 ) return s;
                         break;
-                    case 56 :
+                    case 56 : 
                         int LA54_6 = input.LA(1);
 
-
+                         
                         int index54_6 = input.index();
                         input.rewind();
                         s = -1;
@@ -9252,14 +9300,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_6);
                         if ( s>=0 ) return s;
                         break;
-                    case 57 :
+                    case 57 : 
                         int LA54_44 = input.LA(1);
 
-
+                         
                         int index54_44 = input.index();
                         input.rewind();
                         s = -1;
@@ -9271,14 +9319,14 @@
 
                         else if ( (LA54_44==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_44);
                         if ( s>=0 ) return s;
                         break;
-                    case 58 :
+                    case 58 : 
                         int LA54_33 = input.LA(1);
 
-
+                         
                         int index54_33 = input.index();
                         input.rewind();
                         s = -1;
@@ -9290,14 +9338,14 @@
 
                         else if ( (LA54_33==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_33);
                         if ( s>=0 ) return s;
                         break;
-                    case 59 :
+                    case 59 : 
                         int LA54_57 = input.LA(1);
 
-
+                         
                         int index54_57 = input.index();
                         input.rewind();
                         s = -1;
@@ -9309,14 +9357,14 @@
 
                         else if ( (LA54_57==LEFT_PAREN) && (synpred10())) {s = 67;}
 
-
+                         
                         input.seek(index54_57);
                         if ( s>=0 ) return s;
                         break;
-                    case 60 :
+                    case 60 : 
                         int LA54_61 = input.LA(1);
 
-
+                         
                         int index54_61 = input.index();
                         input.rewind();
                         s = -1;
@@ -9328,14 +9376,14 @@
 
                         else if ( (LA54_61==DOT||LA54_61==COMMA||(LA54_61>=DECLARE && LA54_61<=STRING)||(LA54_61>=DATE_EFFECTIVE && LA54_61<=DATE_EXPIRES)||LA54_61==BOOL||(LA54_61>=INT && LA54_61<=AGENDA_GROUP)||(LA54_61>=LOCK_ON_ACTIVE && LA54_61<=DOUBLE_AMPER)||(LA54_61>=EXISTS && LA54_61<=ACCUMULATE)||(LA54_61>=COLLECT && LA54_61<=TILDE)||(LA54_61>=FLOAT && LA54_61<=RIGHT_SQUARE)||(LA54_61>=EOL && LA54_61<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_61);
                         if ( s>=0 ) return s;
                         break;
-                    case 61 :
+                    case 61 : 
                         int LA54_45 = input.LA(1);
 
-
+                         
                         int index54_45 = input.index();
                         input.rewind();
                         s = -1;
@@ -9343,14 +9391,14 @@
 
                         else if ( (true) ) {s = 3;}
 
-
+                         
                         input.seek(index54_45);
                         if ( s>=0 ) return s;
                         break;
-                    case 62 :
+                    case 62 : 
                         int LA54_10 = input.LA(1);
 
-
+                         
                         int index54_10 = input.index();
                         input.rewind();
                         s = -1;
@@ -9360,7 +9408,7 @@
 
                         else if ( ((LA54_10>=PACKAGE && LA54_10<=GLOBAL)||LA54_10==COMMA||(LA54_10>=DECLARE && LA54_10<=85)) && (synpred10())) {s = 12;}
 
-
+                         
                         input.seek(index54_10);
                         if ( s>=0 ) return s;
                         break;
@@ -9372,8 +9420,8 @@
             throw nvae;
         }
     }
+ 
 
-
     public static final BitSet FOLLOW_76_in_opt_semicolon39 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_prolog_in_compilation_unit57 = new BitSet(new long[]{0x0000001FEB9A2260L});
     public static final BitSet FOLLOW_statement_in_compilation_unit62 = new BitSet(new long[]{0x0000001FEB9A2260L});

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,11 +16,9 @@
  * limitations under the License.
  */
 
-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 org.drools.lang.descr.AccumulateDescr;
@@ -515,7 +513,7 @@
 
         for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
             final ImportDescr importDescr = (ImportDescr) it.next(); 
-            final String importTemplate = "import " + ( importDescr.isEvent() ? "event " : "" ) + importDescr.getTarget() + ";" + DrlDumper.eol;
+            final String importTemplate = "import " + importDescr.getTarget() + ";" + DrlDumper.eol;
             importList += importTemplate;
         }
         return importList + DrlDumper.eol;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -18,6 +18,9 @@
 
 import java.util.Collections;
 import java.util.List;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
 
 /**
  * A descr class for accumulate node
@@ -41,6 +44,34 @@
     private String            functionIdentifier;
     private String            expression;
 
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+        input           = (BaseDescr)in.readObject();
+        initCode        = (String)in.readObject();
+        actionCode      = (String)in.readObject();
+        reverseCode     = (String)in.readObject();
+        resultCode      = (String)in.readObject();
+        declarations    = (String[])in.readObject();
+        className       = (String)in.readObject();
+        externalFunction    = in.readBoolean();
+        functionIdentifier  = (String)in.readObject();
+        expression          = (String)in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+        out.writeObject(input);
+        out.writeObject(initCode);
+        out.writeObject(actionCode);
+        out.writeObject(reverseCode);
+        out.writeObject(resultCode);
+        out.writeObject(declarations);
+        out.writeObject(className);
+        out.writeBoolean(externalFunction);
+        out.writeObject(functionIdentifier);
+        out.writeObject(expression);
+    }
+    
     public int getLine() {
         return this.input.getLine();
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,14 +16,17 @@
  * limitations under the License.
  */
 
-import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
 
 /**
  * This is the super type for all pattern AST nodes.
  */
 public class BaseDescr
     implements
-    Serializable {
+    Externalizable {
 
     private static final long serialVersionUID = 400L;
     private int               startCharacter   = -1;
@@ -34,6 +37,26 @@
     private int               endColumn        = -1;
     private String            text             = "";
 
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        startCharacter  = in.readInt();
+        endCharacter  = in.readInt();
+        line        = in.readInt();
+        column      = in.readInt();
+        endLine     = in.readInt();
+        endColumn   = in.readInt();
+        text        = (String)in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeInt(startCharacter);
+        out.writeInt(endCharacter);
+        out.writeInt(line);
+        out.writeInt(column);
+        out.writeInt(endLine);
+        out.writeInt(endColumn);
+        out.writeObject(text);
+    }
+
     public String getText() {
         return text;
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -42,10 +42,6 @@
         return new FunctionImportDescr();
     }
 
-    public ImportDescr createEventImport() {
-        return new ImportDescr( true ); // import is an event
-    }
-
     public QueryDescr createQuery(final String queryName) {
         return new QueryDescr( queryName,
                                "" );
@@ -71,5 +67,5 @@
     
     public TypeDeclarationDescr createTypeDeclaration() {
         return new TypeDeclarationDescr();
-    }    
+    }
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -24,23 +24,13 @@
 
     private static final long serialVersionUID = 400L;
     private String            target;
-    private boolean           event;
 
     public ImportDescr() {
-        this( null, false );
+        this( null );
     }
 
     public ImportDescr(final String clazzName) {
-        this( clazzName, false );
-    }
-
-    public ImportDescr(final boolean isEvent) {
-        this( null, isEvent );
-    }
-
-    public ImportDescr(final String clazzName, final boolean isEvent ) {
         this.target = clazzName;
-        this.event = isEvent;
     }
 
     public String getTarget() {
@@ -90,8 +80,4 @@
         return "import " + this.target;
     }
 
-    public boolean isEvent() {
-        return this.event;
-    }
-
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -20,14 +20,17 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.io.ObjectInput;
+import java.io.IOException;
+import java.io.ObjectOutput;
 
 public class PackageDescr extends BaseDescr {
     /**
      *
      */
     private static final long serialVersionUID = 400L;
-    private final String      name;
-    private final String      documentation;
+    private String      name;
+    private String      documentation;
 
     private List              imports          = Collections.EMPTY_LIST;
     private List              functionImports  = Collections.EMPTY_LIST;
@@ -38,6 +41,9 @@
     private List              rules            = Collections.EMPTY_LIST;
     private List<TypeDeclarationDescr> typeDeclarations     = Collections.emptyList();
 
+    public PackageDescr() {
+    }
+
     public PackageDescr(final String name) {
         this( name,
               "" );
@@ -49,6 +55,32 @@
         this.documentation = documentation;
     }
 
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+        name    = (String)in.readObject();
+        documentation   = (String)in.readObject();
+        imports    = (List)in.readObject();
+        functionImports    = (List)in.readObject();
+        attributes    = (List)in.readObject();
+        globals    = (List)in.readObject();
+        factTemplates    = (List)in.readObject();
+        functions    = (List)in.readObject();
+        rules    = (List)in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+        out.writeObject(name);
+        out.writeObject(documentation);
+        out.writeObject(imports);
+        out.writeObject(functionImports);
+        out.writeObject(attributes);
+        out.writeObject(globals);
+        out.writeObject(factTemplates);
+        out.writeObject(functions);
+        out.writeObject(rules);
+    }
+
     public String getName() {
         return this.name;
     }
@@ -133,11 +165,11 @@
             //check for attr in rule
             for ( Iterator iterator = rule.getAttributes().iterator(); iterator.hasNext(); ) {
                 AttributeDescr ruleAt = (AttributeDescr) iterator.next();
-                if ( ruleAt.getName().equals( at.getName() ) ) {
+                if (ruleAt.getName().equals( at.getName() )) {
                     overridden = true;
                 }
             }
-            if ( !overridden ) {
+            if (!overridden) {
                 rule.addAttribute( at );
             }
         }
@@ -154,7 +186,7 @@
         }
         this.typeDeclarations.add( declaration );
     }
-
+    
     public List<TypeDeclarationDescr> getTypeDeclarations() {
         return this.typeDeclarations;
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,11 +16,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import org.drools.compiler.Dialect;
 import org.drools.rule.Dialectable;
 
 public class RuleDescr extends BaseDescr implements Dialectable {
@@ -41,6 +43,9 @@
     private String            className;
 
 
+    public RuleDescr() {
+    }
+
     public RuleDescr(final String name) {
         this( name,
               "" );
@@ -53,6 +58,36 @@
         this.documentation = documentation;
     }
 
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+        name    = (String)in.readObject();
+        dialect    = (String)in.readObject();
+        documentation    = (String)in.readObject();
+        consequence    = in.readObject();
+        lhs    = (AndDescr)in.readObject();
+        consequenceLine    = in.readInt();
+        consequencePattern    = in.readInt();
+        offset    = in.readInt();
+        attributes    = (List)in.readObject();
+        salience    = (String)in.readObject();
+        className    = (String)in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+        out.writeObject(name);
+        out.writeObject(dialect);
+        out.writeObject(documentation);
+        out.writeObject(consequence);
+        out.writeObject(lhs);
+        out.writeInt(consequenceLine);
+        out.writeInt(consequencePattern);
+        out.writeInt(offset);
+        out.writeObject(attributes);
+        out.writeObject(salience);
+        out.writeObject(className);
+    }
+
     public String getName() {
         return this.name;
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -383,7 +383,7 @@
         // analyze field type:
         Class resultType = getFieldReturnType( pattern,
                                                fieldConstraintDescr );
-
+        
         PredicateDescr predicateDescr = new PredicateDescr();
         MVELDumper dumper = new MVELDumper();
         predicateDescr.setContent( dumper.dump( fieldConstraintDescr, Date.class.isAssignableFrom( resultType ) ) );
@@ -796,7 +796,7 @@
                 ((ObjectFieldImpl) field).setEnum( true );
                 ((ObjectFieldImpl) field).setEnumName( staticClass.getName() );
                 ((ObjectFieldImpl) field).setFieldName( fieldName );
-            }            
+            }
         } catch ( final ClassNotFoundException e ) {
             // nothing to do, as it is not a class name with static field
         } catch ( final Exception e ) {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ReturnValueEvaluatorBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ReturnValueEvaluatorBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ReturnValueEvaluatorBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,8 +1,6 @@
 package org.drools.rule.builder;
 
 import org.drools.compiler.ReturnValueDescr;
-import org.drools.lang.descr.ActionDescr;
-import org.drools.workflow.core.node.ActionNode;
 import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
 
 public interface ReturnValueEvaluatorBuilder {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,9 +16,7 @@
 
 package org.drools.rule.builder;
 
-import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaProcessBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaProcessBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -7,10 +7,7 @@
 import java.util.Map;
 
 import org.drools.lang.descr.BaseDescr;
-import org.drools.rule.Declaration;
 import org.drools.rule.builder.ProcessBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.dialect.mvel.MVELDialect;
 import org.drools.util.StringUtils;
 import org.mvel.MVEL;
 import org.mvel.MVELTemplateRegistry;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaRuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaRuleBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/AbstractJavaRuleBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -9,7 +9,6 @@
 import org.drools.lang.descr.BaseDescr;
 import org.drools.rule.Declaration;
 import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.dialect.mvel.MVELDialect;
 import org.drools.util.StringUtils;
 import org.mvel.MVEL;
 import org.mvel.MVELTemplateRegistry;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaActionBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,24 +16,16 @@
 
 package org.drools.rule.builder.dialect.java;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.drools.compiler.Dialect;
-import org.drools.compiler.DescrBuildError;
 import org.drools.lang.descr.ActionDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.rule.Declaration;
 import org.drools.rule.builder.ActionBuilder;
-import org.drools.rule.builder.ConsequenceBuilder;
 import org.drools.rule.builder.PackageBuildContext;
 import org.drools.rule.builder.ProcessBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.dialect.mvel.MVELDialect;
-import org.drools.spi.PatternExtractor;
 import org.drools.workflow.core.node.ActionNode;
 
 /**

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -189,6 +189,7 @@
             consequence.append( ";\n" );
             // adding the modifyRetract call:
             consequence.append( "modifyRetract( __obj__ );\n" );
+            
 
             // adding each of the expressions:
             for ( Iterator exprIt = d.getExpressions().iterator(); exprIt.hasNext(); ) {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -12,7 +12,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.drools.process.core.Process;
 import org.drools.base.ClassFieldExtractorCache;
 import org.drools.base.TypeResolver;
 import org.drools.commons.jci.compilers.CompilationResult;
@@ -22,11 +21,13 @@
 import org.drools.commons.jci.problems.CompilationProblem;
 import org.drools.commons.jci.readers.MemoryResourceReader;
 import org.drools.commons.jci.readers.ResourceReader;
+import org.drools.compiler.DescrBuildError;
 import org.drools.compiler.Dialect;
 import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.DescrBuildError;
 import org.drools.compiler.PackageBuilder.ErrorHandler;
 import org.drools.compiler.PackageBuilder.FunctionErrorHandler;
+import org.drools.compiler.PackageBuilder.ProcessErrorHandler;
+import org.drools.compiler.PackageBuilder.ProcessInvokerErrorHandler;
 import org.drools.compiler.PackageBuilder.RuleErrorHandler;
 import org.drools.compiler.PackageBuilder.RuleInvokerErrorHandler;
 import org.drools.lang.descr.AccumulateDescr;
@@ -45,7 +46,7 @@
 import org.drools.lang.descr.ProcessDescr;
 import org.drools.lang.descr.QueryDescr;
 import org.drools.lang.descr.RuleDescr;
-import org.drools.rule.EntryPoint;
+import org.drools.process.core.Process;
 import org.drools.rule.Function;
 import org.drools.rule.JavaDialectData;
 import org.drools.rule.LineMappings;
@@ -74,8 +75,6 @@
 import org.drools.rule.builder.SalienceBuilder;
 import org.drools.rule.builder.dialect.mvel.MVELFromBuilder;
 import org.drools.rule.builder.dialect.mvel.MVELSalienceBuilder;
-import org.drools.compiler.PackageBuilder.ProcessInvokerErrorHandler;
-import org.drools.compiler.PackageBuilder.ProcessErrorHandler;
 import org.drools.util.StringUtils;
 
 public class JavaDialect

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -19,12 +19,9 @@
 import java.util.Iterator;
 
 import org.drools.lang.descr.ProcessDescr;
-import org.drools.lang.descr.RuleDescr;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.builder.ProcessBuildContext;
 import org.drools.rule.builder.ProcessClassBuilder;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.RuleClassBuilder;
 import org.drools.util.StringUtils;
 
 /**
@@ -50,7 +47,7 @@
         buffer.append( "package " + context.getPkg().getName() + ";" + lineSeparator );
 
         for ( ImportDeclaration decl : context.getPkg().getImports().values() ) {
-            buffer.append( "import " +  ( decl.isEvent() ? "event " : "" ) + decl.getTarget() + ";" + lineSeparator );
+            buffer.append( "import " +  decl.getTarget() + ";" + lineSeparator );
         }
 
         for ( final Iterator it = context.getPkg().getStaticImports().iterator(); it.hasNext(); ) {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaReturnValueEvaluatorBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaReturnValueEvaluatorBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaReturnValueEvaluatorBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,27 +16,16 @@
 
 package org.drools.rule.builder.dialect.java;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.drools.compiler.Dialect;
-import org.drools.compiler.DescrBuildError;
 import org.drools.compiler.ReturnValueDescr;
-import org.drools.lang.descr.ActionDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.rule.Declaration;
-import org.drools.rule.builder.ActionBuilder;
-import org.drools.rule.builder.ConsequenceBuilder;
 import org.drools.rule.builder.PackageBuildContext;
 import org.drools.rule.builder.ProcessBuildContext;
 import org.drools.rule.builder.ReturnValueEvaluatorBuilder;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.dialect.mvel.MVELDialect;
-import org.drools.spi.PatternExtractor;
-import org.drools.workflow.core.node.ActionNode;
 import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
 
 /**

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,10 +3,15 @@
 	package org.drools.rule.builder.dialect.java.parser;
 
 
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
+import org.antlr.runtime.BaseRecognizer;
+import org.antlr.runtime.CharStream;
+import org.antlr.runtime.CommonToken;
+import org.antlr.runtime.DFA;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.Lexer;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.RecognitionException;
 
 public class JavaLexer extends Lexer {
     public static final int T29=29;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,15 +1,26 @@
 // $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g 2007-12-19 16:46:01
 
 	package org.drools.rule.builder.dialect.java.parser;
-	import java.util.Iterator;
+	import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Stack;
 
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.CommonToken;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.FailedPredicateException;
+import org.antlr.runtime.MismatchedNotSetException;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.MismatchedTokenException;
+import org.antlr.runtime.MismatchedTreeNodeException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.Parser;
+import org.antlr.runtime.ParserRuleReturnScope;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.Token;
+import org.antlr.runtime.TokenStream;
 /** A Java 1.5 grammar for ANTLR v3 derived from the spec
  *
  *  This is a very close representation of the spec; the changes

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -2,24 +2,17 @@
 
 import java.io.Serializable;
 import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.Set;
 
 import org.drools.base.mvel.DroolsMVELFactory;
 import org.drools.base.mvel.MVELAction;
-import org.drools.base.mvel.MVELConsequence;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
+import org.drools.compiler.Dialect;
 import org.drools.lang.descr.ActionDescr;
 import org.drools.rule.MVELDialectData;
 import org.drools.rule.builder.ActionBuilder;
-import org.drools.rule.builder.ConsequenceBuilder;
 import org.drools.rule.builder.PackageBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
 import org.drools.workflow.core.node.ActionNode;
-import org.mvel.Macro;
-import org.mvel.MacroProcessor;
 
 public class MVELActionBuilder
     implements

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -7,9 +7,8 @@
 
 import org.drools.base.mvel.DroolsMVELFactory;
 import org.drools.base.mvel.MVELConsequence;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
-import org.drools.rule.MVELDialectData;
+import org.drools.compiler.Dialect;
 import org.drools.rule.builder.ConsequenceBuilder;
 import org.drools.rule.builder.RuleBuildContext;
 import org.mvel.Macro;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,10 +1,10 @@
 package org.drools.rule.builder.dialect.mvel;
 
-import java.io.Serializable;
 import java.io.Externalizable;
-import java.io.ObjectOutput;
 import java.io.IOException;
 import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -40,7 +40,6 @@
 import org.drools.lang.descr.QueryDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.rule.Declaration;
-import org.drools.rule.JavaDialectData;
 import org.drools.rule.LineMappings;
 import org.drools.rule.MVELDialectData;
 import org.drools.rule.Package;
@@ -73,7 +72,6 @@
 import org.mvel.compiler.AbstractParser;
 import org.mvel.compiler.CompiledExpression;
 import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.debug.DebugTools;
 import org.mvel.optimizers.OptimizerFactory;
 import org.mvel.util.CompilerTools;
 import org.mvel.util.ParseTools;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialectConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialectConfiguration.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialectConfiguration.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -2,7 +2,6 @@
 
 import org.drools.compiler.Dialect;
 import org.drools.compiler.DialectConfiguration;
-import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 
 /**

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,15 +17,13 @@
 package org.drools.rule.builder.dialect.mvel;
 
 import java.io.Serializable;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 import org.drools.base.mvel.DroolsMVELFactory;
 import org.drools.base.mvel.MVELEvalExpression;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
+import org.drools.compiler.Dialect;
 import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.EvalDescr;
 import org.drools.rule.Declaration;
@@ -35,12 +33,6 @@
 import org.drools.rule.RuleConditionElement;
 import org.drools.rule.builder.RuleBuildContext;
 import org.drools.rule.builder.RuleConditionBuilder;
-import org.drools.spi.DeclarationScopeResolver;
-import org.mvel.compiler.AbstractParser;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.MVEL;
-import org.mvel.ParserContext;
-import org.mvel.util.ParseTools;
 
 /**
  * @author etirelli

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -27,11 +27,8 @@
 
 import org.antlr.runtime.RecognitionException;
 import org.drools.rule.builder.PackageBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
-import org.mvel.compiler.AbstractParser;
-import org.mvel.compiler.ExpressionCompiler;
 import org.mvel.ParserContext;
-import org.mvel.integration.impl.MapVariableResolver;
+import org.mvel.compiler.ExpressionCompiler;
 
 /**
  * Expression analyzer.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -21,8 +21,8 @@
 
 import org.drools.base.dataproviders.MVELDataProvider;
 import org.drools.base.mvel.DroolsMVELFactory;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
+import org.drools.compiler.Dialect;
 import org.drools.lang.descr.AccessorDescr;
 import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.FromDescr;
@@ -32,11 +32,6 @@
 import org.drools.rule.builder.FromBuilder;
 import org.drools.rule.builder.RuleBuildContext;
 import org.drools.spi.DataProvider;
-import org.mvel.compiler.AbstractParser;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.MVEL;
-import org.mvel.ParserContext;
-import org.mvel.integration.impl.ClassImportResolverFactory;
 
 /**
  * A builder for "from" conditional element

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -24,18 +24,14 @@
 
 import org.drools.base.mvel.DroolsMVELFactory;
 import org.drools.base.mvel.MVELPredicateExpression;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
+import org.drools.compiler.Dialect;
 import org.drools.lang.descr.PredicateDescr;
 import org.drools.rule.Declaration;
 import org.drools.rule.MVELDialectData;
 import org.drools.rule.PredicateConstraint;
 import org.drools.rule.builder.PredicateBuilder;
 import org.drools.rule.builder.RuleBuildContext;
-import org.mvel.compiler.AbstractParser;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.MVEL;
-import org.mvel.ParserContext;
 
 /**
  * @author etirelli

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,7 +17,6 @@
 package org.drools.rule.builder.dialect.mvel;
 
 import java.io.Serializable;
-import java.io.Externalizable;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -32,10 +31,6 @@
 import org.drools.rule.ReturnValueRestriction;
 import org.drools.rule.builder.ReturnValueBuilder;
 import org.drools.rule.builder.RuleBuildContext;
-import org.mvel.compiler.AbstractParser;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.MVEL;
-import org.mvel.ParserContext;
 
 /**
  * @author etirelli

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -2,29 +2,17 @@
 
 import java.io.Serializable;
 import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.Set;
 
 import org.drools.base.mvel.DroolsMVELFactory;
-import org.drools.base.mvel.MVELAction;
-import org.drools.base.mvel.MVELConsequence;
 import org.drools.base.mvel.MVELReturnValueEvaluator;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
+import org.drools.compiler.Dialect;
 import org.drools.compiler.ReturnValueDescr;
-import org.drools.lang.descr.ActionDescr;
 import org.drools.rule.MVELDialectData;
-import org.drools.rule.builder.ActionBuilder;
-import org.drools.rule.builder.ConsequenceBuilder;
 import org.drools.rule.builder.PackageBuildContext;
 import org.drools.rule.builder.ReturnValueEvaluatorBuilder;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.spi.ReturnValueEvaluator;
-import org.drools.workflow.core.node.ActionNode;
 import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
-import org.mvel.Macro;
-import org.mvel.MacroProcessor;
 
 public class MVELReturnValueEvaluatorBuilder
     implements

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -5,16 +5,11 @@
 
 import org.drools.base.mvel.DroolsMVELFactory;
 import org.drools.base.mvel.MVELSalienceExpression;
-import org.drools.compiler.Dialect;
 import org.drools.compiler.DescrBuildError;
+import org.drools.compiler.Dialect;
 import org.drools.rule.MVELDialectData;
 import org.drools.rule.builder.RuleBuildContext;
 import org.drools.rule.builder.SalienceBuilder;
-import org.mvel.compiler.AbstractParser;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.MVEL;
-import org.mvel.ParserContext;
-import org.mvel.integration.impl.ClassImportResolverFactory;
 
 public class MVELSalienceBuilder
     implements

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -2,7 +2,6 @@
 
 import static org.mvel.MVEL.eval;
 
-import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
@@ -24,7 +23,6 @@
 import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.rule.TimeMachine;
-import org.mvel.integration.impl.BaseVariableResolverFactory;
 
 /**
  * This actually runs the test scenarios.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,14 +1,12 @@
 package org.drools.testframework;
 
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
 
-import org.drools.RuleBase;
 import org.drools.WorkingMemory;
 import org.drools.event.ActivationCancelledEvent;
 import org.drools.event.ActivationCreatedEvent;
@@ -17,7 +15,6 @@
 import org.drools.event.AgendaGroupPoppedEvent;
 import org.drools.event.AgendaGroupPushedEvent;
 import org.drools.event.BeforeActivationFiredEvent;
-import org.drools.rule.Package;
 import org.drools.rule.Rule;
 import org.drools.spi.Activation;
 import org.drools.spi.AgendaFilter;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlPackageReader.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,36 +3,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.xml.parsers.SAXParser;
 
 import org.drools.lang.descr.PackageDescr;
-import org.drools.xml.rules.AccumulateHandler;
-import org.drools.xml.rules.AccumulateHelperHandler;
-import org.drools.xml.rules.AndHandler;
-import org.drools.xml.rules.CollectHandler;
-import org.drools.xml.rules.EvalHandler;
-import org.drools.xml.rules.ExistsHandler;
-import org.drools.xml.rules.ExpressionHandler;
-import org.drools.xml.rules.FieldBindingHandler;
-import org.drools.xml.rules.FieldConstraintHandler;
-import org.drools.xml.rules.ForallHandler;
-import org.drools.xml.rules.FromHandler;
-import org.drools.xml.rules.FunctionHandler;
-import org.drools.xml.rules.LiteralRestrictionHandler;
-import org.drools.xml.rules.NotHandler;
-import org.drools.xml.rules.OrHandler;
-import org.drools.xml.rules.PackageHandler;
-import org.drools.xml.rules.PatternHandler;
-import org.drools.xml.rules.PredicateHandler;
-import org.drools.xml.rules.QualifiedIdentifierRestrictionHandler;
-import org.drools.xml.rules.QueryHandler;
-import org.drools.xml.rules.RestrictionConnectiveHandler;
-import org.drools.xml.rules.ReturnValueRestrictionHandler;
-import org.drools.xml.rules.RuleHandler;
-import org.drools.xml.rules.VariableRestrictionsHandler;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlProcessReader.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,35 +3,9 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
-import java.util.Set;
 
 import javax.xml.parsers.SAXParser;
 
-import org.drools.lang.descr.PackageDescr;
-import org.drools.xml.rules.AccumulateHandler;
-import org.drools.xml.rules.AccumulateHelperHandler;
-import org.drools.xml.rules.AndHandler;
-import org.drools.xml.rules.CollectHandler;
-import org.drools.xml.rules.EvalHandler;
-import org.drools.xml.rules.ExistsHandler;
-import org.drools.xml.rules.ExpressionHandler;
-import org.drools.xml.rules.FieldBindingHandler;
-import org.drools.xml.rules.FieldConstraintHandler;
-import org.drools.xml.rules.ForallHandler;
-import org.drools.xml.rules.FromHandler;
-import org.drools.xml.rules.FunctionHandler;
-import org.drools.xml.rules.LiteralRestrictionHandler;
-import org.drools.xml.rules.NotHandler;
-import org.drools.xml.rules.OrHandler;
-import org.drools.xml.rules.PackageHandler;
-import org.drools.xml.rules.PatternHandler;
-import org.drools.xml.rules.PredicateHandler;
-import org.drools.xml.rules.QualifiedIdentifierRestrictionHandler;
-import org.drools.xml.rules.QueryHandler;
-import org.drools.xml.rules.RestrictionConnectiveHandler;
-import org.drools.xml.rules.ReturnValueRestrictionHandler;
-import org.drools.xml.rules.RuleHandler;
-import org.drools.xml.rules.VariableRestrictionsHandler;
 import org.drools.process.core.Process;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.ConditionalElementDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHelperHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHelperHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AccumulateHelperHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.BaseDescr;
@@ -29,7 +27,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author fernandomeyer

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AndHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AndHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/AndHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.AndDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/CollectHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/CollectHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/CollectHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.CollectDescr;
 import org.drools.lang.descr.ConditionalElementDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/EvalHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/EvalHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/EvalHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.ConditionalElementDescr;
@@ -34,7 +32,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author mproctor

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExistsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExistsHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExistsHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.ConditionalElementDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.antlr.runtime.ANTLRStringStream;
 import org.antlr.runtime.CharStream;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldBindingHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldBindingHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldBindingHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.FieldBindingDescr;
 import org.drools.lang.descr.FieldConstraintDescr;
@@ -30,7 +28,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author mproctor

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldConstraintHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldConstraintHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FieldConstraintHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.ConditionalElementDescr;
@@ -33,7 +31,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author mproctor

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ForallHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ForallHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ForallHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.ConditionalElementDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FromHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FromHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/FromHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.ConditionalElementDescr;
 import org.drools.lang.descr.FieldConstraintDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/LiteralRestrictionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/LiteralRestrictionHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/LiteralRestrictionHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.LiteralRestrictionDescr;
@@ -32,7 +30,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author mproctor

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/NotHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/NotHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/NotHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.ConditionalElementDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/OrHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/OrHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/OrHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.AndDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PatternHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PatternHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PatternHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.AndDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PredicateHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PredicateHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/PredicateHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.FieldBindingDescr;
 import org.drools.lang.descr.FieldConstraintDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/RestrictionConnectiveHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/RestrictionConnectiveHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/RestrictionConnectiveHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.LiteralRestrictionDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ReturnValueRestrictionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ReturnValueRestrictionHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/ReturnValueRestrictionHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.LiteralRestrictionDescr;
@@ -32,7 +30,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author mproctor

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/VariableRestrictionsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/VariableRestrictionsHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/rules/VariableRestrictionsHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,8 +17,6 @@
  */
 
 import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
 
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.LiteralRestrictionDescr;
@@ -31,7 +29,6 @@
 import org.drools.xml.Handler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * @author mproctor

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-03-19 18:11:50 UTC (rev 19126)
@@ -223,13 +223,13 @@
 statement
 	:	a=rule_attribute { this.packageDescr.addAttribute( a ); }
 	|	function_import_statement 
-	|	event_import_statement
 	|	import_statement 
 	|	global 
 	|	function 
 	|       t=template { this.packageDescr.addFactTemplate( $t.template ); }
 	|	r=rule { this.packageDescr.addRule( $r.rule ); }			
 	|	q=query	{ this.packageDescr.addRule( $q.query ); }
+	|       d=type_declaration { this.packageDescr.addTypeDeclaration( $d.declaration ); }
 	;
 	
 package_statement returns [String packageName]
@@ -275,22 +275,6 @@
 	        import_name[importDecl] opt_semicolon
 	;
 
-event_import_statement
-        @init {
-        	ImportDescr importDecl = null;
-        }
-	:	IMPORT EVENT 
-	        {
-	            importDecl = factory.createEventImport( );
-	            importDecl.setStartCharacter( ((CommonToken)$IMPORT).getStartIndex() );
-		    if (packageDescr != null) {
-			packageDescr.addImport( importDecl );
-		    }
-	        }
-	        import_name[importDecl] opt_semicolon
-	;
-
-
 import_name[ImportDescr importDecl] returns [String name]
 	@init {
 		$name = null;
@@ -387,8 +371,32 @@
 	:	id=identifier { $name=$id.text; } ( '[' ']' { $name += "[]";})*
 	;
 	
+type_declaration returns [TypeDeclarationDescr declaration]
+        @init {
+                $declaration = factory.createTypeDeclaration();
+        }
+        :	DECLARE id=identifier 
+                        {
+                            $declaration.setTypeName( $id.text );
+                        }
+                LEFT_CURLY
+                        type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )*
+                RIGHT_CURLY
+        ;
+        
+type_decl_attribute[TypeDeclarationDescr declaration]
+        :	att=identifier 
+                ( val=STRING 
+                {
+                    $declaration.addAttribute( $att.text, getString( $val.text ) );
+                }
+                | cl=dotted_name
+                {
+                    $declaration.addAttribute( $att.text, $cl.text );
+                }
+                )
+        ;       
 
-
 query returns [QueryDescr query]
 	@init {
 		$query = null;
@@ -1792,6 +1800,8 @@
 
 GLOBAL	:	'global';
 	
+DECLARE	:	'declare';
+
 RULE    :	'rule';
 
 QUERY	:	'query';
@@ -1949,3 +1959,5 @@
 MISC 	:
 		'!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+'  | '?' | '=' | '/' | '\'' | '\\' | '|' | '&'
 	;
+
+

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Address.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Address.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Address.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -4,6 +4,8 @@
 
 public class Address implements Serializable {
 
+    private static final long serialVersionUID = -8519011705761628197L;
+    
     private String street;
     private String suburb;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,8 +1,5 @@
 package org.drools;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
 import java.io.Serializable;
 import java.util.Date;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -20,15 +20,13 @@
 import java.io.ObjectOutput;
 import java.io.IOException;
 import java.io.ObjectInput;
-import java.io.ObjectStreamException;
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
 public class Cheesery
     implements
-    Serializable {
+    Externalizable {
     /**
      *
      */
@@ -41,10 +39,6 @@
     private int               status;
     private int               totalAmount;
     private Maturity          maturity;
-    
-    public Cheesery() {
-        
-    }
 
     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         cheeses = (List)in.readObject();
@@ -59,8 +53,7 @@
         out.writeInt(status);
         out.writeInt(totalAmount);
         out.writeObject(maturity);
-    }    
-    
+    }
     public List getCheeses() {
         return this.cheeses;
     }
@@ -114,14 +107,6 @@
         public Maturity(final String age) {
             this.age = age;
         }
-        
-        private Object readResolve() throws ObjectStreamException {
-            if ( "young".equals( this.age) ) {
-                return Maturity.YOUNG;
-            } else {
-                return Maturity.OLD;
-            }
-        }        
 
         public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
             age = (String)in.readObject();
@@ -135,34 +120,4 @@
             return "[Maturity age='" + this.age + "']";
         }
     }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((cheeses == null) ? 0 : cheeses.hashCode());
-        result = prime * result + ((maturity == null) ? 0 : maturity.hashCode());
-        result = prime * result + status;
-        result = prime * result + totalAmount;
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if ( this == obj ) return true;
-        if ( obj == null ) return false;
-        if ( getClass() != obj.getClass() ) return false;
-        final Cheesery other = (Cheesery) obj;
-        if ( cheeses == null ) {
-            if ( other.cheeses != null ) return false;
-        } else if ( !cheeses.equals( other.cheeses ) ) return false;
-        if ( maturity == null ) {
-            if ( other.maturity != null ) return false;
-        } else if ( !maturity.equals( other.maturity ) ) return false;
-        if ( status != other.status ) return false;
-        if ( totalAmount != other.totalAmount ) return false;
-        return true;
-    }
-    
-    
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,9 +1,8 @@
 package org.drools;
 
-import java.io.Externalizable;
-import java.io.ObjectOutput;
 import java.io.IOException;
 import java.io.ObjectInput;
+import java.io.ObjectOutput;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -33,34 +32,33 @@
 
     private Cheese            cheese;
 
-    private List              addresses        = new ArrayList();
+    private List              addresses = new ArrayList();
 
-    public void readExternal(ObjectInput in) throws IOException,
-                                            ClassNotFoundException {
-        name = (String) in.readObject();
-        likes = (String) in.readObject();
-        age = in.readInt();
-        bigDecimal = (BigDecimal) in.readObject();
-        bigInteger = (BigInteger) in.readObject();
-        hair = (String) in.readObject();
-        sex = in.readChar();
-        alive = in.readBoolean();
-        status = (String) in.readObject();
-        cheese = (Cheese) in.readObject();
-        addresses = (List) in.readObject();
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        name    = (String)in.readObject();
+        likes    = (String)in.readObject();
+        age     = in.readInt();
+        bigDecimal    = (BigDecimal)in.readObject();
+        bigInteger    = (BigInteger)in.readObject();
+        hair    = (String)in.readObject();
+        sex     = in.readChar();
+        alive   = in.readBoolean();
+        status    = (String)in.readObject();
+        cheese    = (Cheese)in.readObject();
+        addresses    = (List)in.readObject();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject( name );
-        out.writeObject( likes );
-        out.writeObject( bigDecimal );
-        out.writeObject( bigInteger );
-        out.writeObject( hair );
-        out.writeChar( sex );
-        out.writeBoolean( alive );
-        out.writeObject( status );
-        out.writeObject( cheese );
-        out.writeObject( addresses );
+        out.writeObject(name);
+        out.writeObject(likes);
+        out.writeObject(bigDecimal);
+        out.writeObject(bigInteger);
+        out.writeObject(hair);
+        out.writeChar(sex);
+        out.writeBoolean(alive);
+        out.writeObject(status);
+        out.writeObject(cheese);
+        out.writeObject(addresses);
     }
 
     public List getAddresses() {
@@ -96,14 +94,6 @@
     }
 
     public Person(final String name,
-                  final Cheese cheese) {
-        this( name,
-              null,
-              0 );
-        this.cheese = cheese;
-    }
-
-    public Person(final String name,
                   final String likes,
                   final int age) {
         this.name = name;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,12 +1,14 @@
 package org.drools;
 
-public class StockTick {
+import java.io.Serializable;
+
+public class StockTick implements Serializable {
     private long seq;
     private String company;
     private double price;
     private long time;
     private long duration;
-
+    
     public StockTick() {
     }
 
@@ -24,7 +26,7 @@
     public StockTick(long seq,
                      String company,
                      double price,
-                     long time,
+                     long time, 
                      long duration ) {
         super();
         this.seq = seq;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/DataEnumLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/DataEnumLoaderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/DataEnumLoaderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -6,7 +6,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.StringTokenizer;
 
 import junit.framework.TestCase;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,19 +1,17 @@
 package org.drools.brms.modeldriven.dt;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 
+import junit.framework.TestCase;
+
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.brl.ISingleFieldConstraint;
-import org.drools.brms.client.modeldriven.dt.ActionCol;
 import org.drools.brms.client.modeldriven.dt.ActionInsertFactCol;
 import org.drools.brms.client.modeldriven.dt.ActionSetFieldCol;
 import org.drools.brms.client.modeldriven.dt.AttributeCol;
 import org.drools.brms.client.modeldriven.dt.ConditionCol;
 import org.drools.brms.client.modeldriven.dt.GuidedDecisionTable;
 
-import junit.framework.TestCase;
-
 public class GuidedDecisionTableTest extends TestCase {
 
 //	public void testGetCol() {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -42,9 +42,7 @@
 import org.drools.rule.builder.RuleClassBuilder;
 import org.drools.rule.builder.RuleConditionBuilder;
 import org.drools.rule.builder.SalienceBuilder;
-import org.drools.rule.builder.dialect.java.JavaDialect;
 import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
-import org.drools.rule.builder.dialect.mvel.MVELDialect;
 import org.drools.util.ChainedProperties;
 
 public class PackageBuilderConfigurationTest extends TestCase {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -36,20 +36,20 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.StatefulSession;
-import org.drools.WorkingMemory;
 import org.drools.StockTick;
-import org.drools.integrationtests.SerializationHelper;
+import org.drools.WorkingMemory;
 import org.drools.base.DefaultKnowledgeHelper;
 import org.drools.common.ActivationGroupNode;
 import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.DroolsObjectOutputStream;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.LogicalDependency;
 import org.drools.common.RuleFlowGroupNode;
-import org.drools.common.DroolsObjectOutputStream;
 import org.drools.commons.jci.compilers.EclipseJavaCompiler;
 import org.drools.commons.jci.compilers.JaninoJavaCompiler;
 import org.drools.commons.jci.compilers.JavaCompiler;
 import org.drools.facttemplates.Fact;
+import org.drools.integrationtests.SerializationHelper;
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.ConditionalElementDescr;
@@ -995,7 +995,7 @@
 
         // test JANINO with property settings
         PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) conf.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf = (JavaDialectConfiguration) conf.getDialectConfiguration( "java" );
         javaConf.setCompiler( JavaDialectConfiguration.JANINO );
         builder = new PackageBuilder( conf );
         builder.addPackage( pkgDescr );
@@ -1007,7 +1007,7 @@
 
         // test eclipse jdt core with property settings and default source level
         conf = new PackageBuilderConfiguration();
-        javaConf = ( JavaDialectConfiguration ) conf.getDialectConfiguration( "java" );
+        javaConf = (JavaDialectConfiguration) conf.getDialectConfiguration( "java" );
         javaConf.setCompiler( JavaDialectConfiguration.ECLIPSE );
         builder = new PackageBuilder( conf );
         builder.addPackage( pkgDescr );
@@ -1031,7 +1031,6 @@
         builder.addPackage( pkgDescr );
 
         Package pkg = builder.getPackage();
-        pkg = SerializationHelper.serializeObject(pkg);
         assertEquals( 1,
                       pkg.getTypeDeclarations().size() );
 
@@ -1258,16 +1257,14 @@
 
     public void testJaninoWithStaticImports() throws Exception {
         PackageBuilderConfiguration cfg = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) cfg.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration( "java" );
         javaConf.setCompiler( JavaDialectConfiguration.JANINO );
 
+        PackageBuilder bldr = new PackageBuilder( cfg );
+        bldr.addPackageFromDrl( new StringReader( "package testBuilderPackageConfig \n import java.util.List" ) );
+        bldr.addPackageFromDrl( new StringReader( "function void doSomething() {\n System.err.println(List.class.toString()); }" ) );
 
-        PackageBuilder bldr = new PackageBuilder(cfg);
-        bldr.addPackageFromDrl( new StringReader("package testBuilderPackageConfig \n import java.util.List") );
-        bldr.addPackageFromDrl( new StringReader("function void doSomething() {\n System.err.println(List.class.toString()); }"));
-
-        assertFalse(bldr.hasErrors());
-
+        assertFalse( bldr.hasErrors() );
     }
 
 
@@ -1298,7 +1295,7 @@
         }
 
         public String getPackageName() {
-        	return null;
+            return null;
         }
 
         public void setId(String id) {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/RuleErrorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/RuleErrorTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/RuleErrorTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,12 +1,11 @@
 package org.drools.compiler;
 
+import junit.framework.TestCase;
+
 import org.drools.commons.jci.problems.CompilationProblem;
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.RuleDescr;
-import org.drools.rule.Rule;
 
-import junit.framework.TestCase;
-
 public class RuleErrorTest extends TestCase {
 
     public void testNewLineInMessage() {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -56,7 +56,7 @@
         final RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
         // load up the rulebase
-        return SerializationHelper.serializeObject(ruleBase);
+        return ruleBase;
     }
 
     public void testAccumulateModify() throws Exception {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,14 +1,21 @@
 package org.drools.integrationtests;
 
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+
 import junit.framework.Assert;
 import junit.framework.TestCase;
+
 import org.drools.ClockType;
 import org.drools.OrderEvent;
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
+import org.drools.TemporalSession;
 import org.drools.StockTick;
-import org.drools.TemporalSession;
 import org.drools.WorkingMemory;
 import org.drools.common.EventFactHandle;
 import org.drools.common.InternalFactHandle;
@@ -19,12 +26,6 @@
 import org.drools.rule.Package;
 import org.drools.temporal.SessionPseudoClock;
 
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-
 public class CepEspTest extends TestCase {
     protected RuleBase getRuleBase() throws Exception {
 
@@ -63,9 +64,9 @@
     public void testEventAssertion() throws Exception {
         // read in the source
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleEventAssertion.drl" ) );
-        final RuleBase ruleBase = loadRuleBase( reader );
+        RuleBase ruleBase = loadRuleBase( reader );
 
-        final WorkingMemory wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+        WorkingMemory wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
         final List results = new ArrayList();
 
         wm.setGlobal( "results",
@@ -98,12 +99,12 @@
         assertNotNull( handle3 );
         assertNotNull( handle4 );
 
-// @FIXME_testEventAssertion
-//        assertTrue( handle1.isEvent() );
-//        assertTrue( handle2.isEvent() );
-//        assertTrue( handle3.isEvent() );
-//        assertTrue( handle4.isEvent() );
+        assertTrue( handle1.isEvent() );
+        assertTrue( handle2.isEvent() );
+        assertTrue( handle3.isEvent() );
+        assertTrue( handle4.isEvent() );
 
+//        wm  = SerializationHelper.serializeObject(wm);
         wm.fireAllRules();
 
         assertEquals( 2,
@@ -135,7 +136,7 @@
         StockTick tick3 = new StockTick( 3,
                                          "ACME",
                                          10,
-                                         System.currentTimeMillis(),
+                                         System.currentTimeMillis(), 
                                          8 );
         StockTick tick4 = new StockTick( 4,
                                          "DROO",
@@ -157,12 +158,12 @@
         assertTrue( handle2.isEvent() );
         assertTrue( handle3.isEvent() );
         assertTrue( handle4.isEvent() );
-
+        
         EventFactHandle eh1 = (EventFactHandle) handle1;
         EventFactHandle eh2 = (EventFactHandle) handle2;
         EventFactHandle eh3 = (EventFactHandle) handle3;
         EventFactHandle eh4 = (EventFactHandle) handle4;
-
+        
         assertEquals( tick1.getDuration(), eh1.getDuration() );
         assertEquals( tick2.getDuration(), eh2.getDuration() );
         assertEquals( tick3.getDuration(), eh3.getDuration() );
@@ -180,7 +181,7 @@
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_TimeRelationalOperators.drl" ) );
         final RuleBase ruleBase = loadRuleBase( reader );
 
-        final TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+        TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
         final SessionPseudoClock clock = wm.getSessionClock();
 
         clock.setStartupTime( 1000 );
@@ -297,6 +298,7 @@
         assertTrue( handle7.isEvent() );
         assertTrue( handle8.isEvent() );
 
+//        wm  = SerializationHelper.serializeObject(wm);
         wm.fireAllRules();
 
         assertEquals( 1,
@@ -376,7 +378,7 @@
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleTimeWindow.drl" ) );
         final RuleBase ruleBase = loadRuleBase( reader );
 
-        final TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+        TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
         final List results = new ArrayList();
 
         wm.setGlobal( "results",
@@ -395,6 +397,7 @@
         assertEquals( 0,
                       handle1.getDuration() );
 
+//        wm  = SerializationHelper.serializeObject(wm);
         wm.fireAllRules();
 
         clock.advanceTime( 10000 ); // 10 seconds
@@ -439,6 +442,7 @@
         assertEquals( 0,
                       handle5.getDuration() );
 
+//        wm  = SerializationHelper.serializeObject(wm);
         wm.fireAllRules();
 
         clock.advanceTime( 10000 ); // 10 seconds
@@ -450,6 +454,7 @@
         assertEquals( 0,
                       handle6.getDuration() );
 
+        wm  = SerializationHelper.serializeObject(wm);
         wm.fireAllRules();
 
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LargeRuleBase.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,6 +1,14 @@
 package org.drools.integrationtests;
 
-import junit.framework.Assert;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.StringReader;
+import java.io.ObjectOutput;
+
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.common.DroolsObjectOutputStream;
@@ -10,13 +18,7 @@
 import org.drools.lang.descr.PackageDescr;
 import org.drools.rule.Package;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutput;
-import java.io.StringReader;
+import junit.framework.Assert;
 
 /**
  * This generates a large number of rules (complex ones) and then times

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

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

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -3,12 +3,9 @@
 import junit.framework.Assert;
 import junit.framework.TestCase;
 import org.drools.Cheese;
-import org.drools.Cheesery;
-import org.drools.FactHandle;
 import org.drools.Person;
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
 import org.drools.WorkingMemory;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
@@ -22,12 +19,10 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.io.Serializable;
-import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 public class MVELTest extends TestCase {
     public void testHelloWorld() throws Exception {
@@ -108,167 +103,7 @@
         }
 
     }
-    
-    public void testMVELSoundex() throws Exception {
 
-        // read in the source
-        final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "MVEL_soundex.drl" ) );
-        RuleBase ruleBase = loadRuleBase( reader );
-
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
-        WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
-        workingMemory = SerializationHelper.serializeObject( workingMemory );
-        Cheese c = new Cheese( "fubar",
-                               2 );
-
-        workingMemory.insert( c );
-        workingMemory.fireAllRules();
-        assertEquals( 42,
-                      c.getPrice() );
-    }
-    
-    public void testMVELConsequenceWithMapsAndArrays() throws Exception {
-        String rule = "package org.test;\n";
-        rule += "import java.util.ArrayList\n";
-        rule += "import java.util.HashMap\n";
-        rule += "global java.util.List list\n";
-        rule += "rule \"Test Rule\"\n";
-        rule += "    dialect \"mvel\"";
-        rule += "when\n";
-        rule += "then\n";
-        rule += "    m = new HashMap();\n";
-        rule += "    l = new ArrayList();\n";
-        rule += "    l.add(\"first\");\n";
-        rule += "    m.put(\"content\", l);\n";
-        rule += "    System.out.println(m[\"content\"][0]);\n";
-        rule += "    list.add(m[\"content\"][0]);\n";
-        rule += "end";
-
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new StringReader( rule ) );
-        final Package pkg = builder.getPackage();
-
-        final RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        final StatefulSession session = ruleBase.newStatefulSession();
-        List list = new ArrayList();
-        session.setGlobal( "list",
-                           list );
-        session.fireAllRules();
-
-        assertEquals( 1,
-                      list.size() );
-        assertEquals( "first",
-                      list.get( 0 ) );
-    }
-
-    /* @see JBRULES-1484 */
-    public void testMVELDynamicImports() throws Exception {
-        String rule = "package org.xxx;\n";
-
-        rule += "import org.drools.*\n";
-
-        rule += "global java.util.List list\n";
-        rule += "rule \"Test Rule\"\n";
-        rule += "    dialect \"mvel\"";
-        rule += "when\n";
-        rule += "then\n";
-        rule += "    p = new Person( \"diablo\", new Cheese (\"cheddar\") );";
-        rule += "    c = new Cheese( \"y\" );";
-        rule += "    list.add( p );\n";
-        rule += "end";
-
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new StringReader( rule ) );
-        final Package pkg = builder.getPackage();
-
-        final RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        final StatefulSession session = ruleBase.newStatefulSession();
-        List list = new ArrayList();
-        session.setGlobal( "list",
-                           list );
-        session.fireAllRules();
-
-        assertEquals( 1,
-                      list.size() );
-
-        Person p = new Person( "diablo",
-                               new Cheese( "cheddar" ) );
-
-        assertEquals( p,
-                      list.get( 0 ) );
-    }
-    
-    public void testMatchesMVEL() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesMVEL.drl" ) ) );
-        final Package pkg = builder.getPackage();
-
-        final RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        final StatefulSession session = ruleBase.newStatefulSession();
-
-        final List results = new ArrayList();
-        session.setGlobal( "results",
-                           results );
-
-        Map map = new HashMap();
-        map.put( "content",
-                 "hello ;=" );
-        session.insert( map );
-
-        session.fireAllRules();
-
-        assertEquals( 1,
-                      results.size() );
-    }
-    
-    public void testNPEOnMVELAlphaPredicates() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NPEOnMVELPredicate.drl" ) ) );
-        final Package pkg = builder.getPackage();
-
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
-        final StatefulSession session = ruleBase.newStatefulSession();
-
-        final List list = new ArrayList();
-        session.setGlobal( "results",
-                           list );
-
-        Cheese cheese = new Cheese( "stilton",
-                                    10 );
-        Cheesery cheesery = new Cheesery();
-        cheesery.addCheese( cheese );
-        Person bob = new Person( "bob",
-                                 "stilton" );
-        Cheese cheese2 = new Cheese();
-        bob.setCheese( cheese2 );
-
-        FactHandle p = session.insert( bob );
-        FactHandle c = session.insert( cheesery );
-
-        session.fireAllRules();
-
-        assertEquals( "should not have fired",
-                      0,
-                      list.size() );
-
-        cheese2.setType( "stilton" );
-
-        session.update( p,
-                        bob );
-        session.fireAllRules();
-
-        assertEquals( 1,
-                      list.size() );
-
-    }
-    
-    
     public Object compiledExecute(String ex) {
         Serializable compiled = MVEL.compileExpression(ex);
         return MVEL.executeExpression(compiled, new Object(), new HashMap());

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -37,6 +37,7 @@
 import org.drools.rule.Rule;
 
 public class MarshallingTest extends TestCase {
+
     public void testSerializable() throws Exception {
 
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_Serializable.drl" ) );
@@ -469,10 +470,11 @@
 
         // serialize session and rulebase out
         byte[] serializedSession = SerializationHelper.serializeOut( session );
+        byte[] serializedRulebase = SerializationHelper.serializeOut( ruleBase );
         session.dispose();
 
         // now deserialize the rulebase, deserialize the session and test it
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
 
         // dynamically add a new package
@@ -499,54 +501,17 @@
         assertEquals( mark.getObject(),
                       results.get( 3 ) );
 
+        serializedSession = null;
+        serializedRulebase = null;
+
         serializedSession = SerializationHelper.serializeOut( session );
-        SerializationHelper.serializeOut( ruleBase );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
 
         // dispose session
         session.dispose();
 
     }
 
-    /**
-     * In this case we are dealing with facts which are not on the systems classpath.
-     *
-     */
-    public void testSerializabilityWithJarFacts() throws Exception {
-        MapBackedClassLoader loader = new MapBackedClassLoader( this.getClass().getClassLoader() );
-
-        JarInputStream jis = new JarInputStream(this.getClass().getResourceAsStream("/billasurf.jar"));
-
-        JarEntry entry = null;
-        byte[] buf = new byte[1024];
-        int len = 0;
-        while ( (entry = jis.getNextJarEntry()) != null ) {
-            if ( !entry.isDirectory() ) {
-                ByteArrayOutputStream out = new ByteArrayOutputStream();
-                while ( (len = jis.read( buf )) >= 0 ) {
-                    out.write( buf, 0, len );
-                }
-                loader.addResource( entry.getName() , out.toByteArray() );
-            }
-        }
-
-        String drl = "package foo.bar \n" +
-        			"import com.billasurf.Board\n" +
-        			"rule 'MyGoodRule' \n dialect 'mvel' \n when Board() then System.err.println(42); \n end\n";
-
-        PackageBuilder builder = new PackageBuilder(new PackageBuilderConfiguration(loader));
-        builder.addPackageFromDrl(new StringReader(drl));
-        assertFalse(builder.hasErrors());
-
-        Package p = builder.getPackage();
-        byte[] ser = SerializationHelper.serializeOut(p);
-
-        //now read it back
-        DroolsObjectInputStream in = new DroolsObjectInputStream(new ByteArrayInputStream(ser), loader);
-        Package p_ = (Package) in.readObject();
-        assertNotNull(p_);
-
-    }
-
     /*
      *  Here I am inserting data points(e.g. Cheese) with  'stilton' / 'brie' as type value.
      *  Initially I had only 1 rule ('like stilton') for data points(e.g. Cheese) having type as 'stilton'.
@@ -891,18 +856,50 @@
 
     }
 
+    /**
+     * In this case we are dealing with facts which are not on the systems classpath.
+     *
+     */
+    public void testSerializabilityWithJarFacts() throws Exception {
+        MapBackedClassLoader loader = new MapBackedClassLoader( this.getClass().getClassLoader() );
 
+        JarInputStream jis = new JarInputStream(this.getClass().getResourceAsStream("/billasurf.jar"));
 
-    protected RuleBase getRuleBase() throws Exception {
+        JarEntry entry = null;
+        byte[] buf = new byte[1024];
+        int len = 0;
+        while ( (entry = jis.getNextJarEntry()) != null ) {
+            if ( !entry.isDirectory() ) {
+                ByteArrayOutputStream out = new ByteArrayOutputStream();
+                while ( (len = jis.read( buf )) >= 0 ) {
+                    out.write( buf, 0, len );
+                }
+                loader.addResource( entry.getName() , out.toByteArray() );
+            }
+        }
 
-        return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
-                                            null );
+        String drl = "package foo.bar \n" +
+        			"import com.billasurf.Board\n" +
+        			"rule 'MyGoodRule' \n dialect 'mvel' \n when Board() then System.err.println(42); \n end\n";
+
+        PackageBuilder builder = new PackageBuilder(new PackageBuilderConfiguration(loader));
+        builder.addPackageFromDrl(new StringReader(drl));
+        assertFalse(builder.hasErrors());
+
+        Package p = builder.getPackage();
+        byte[] ser = SerializationHelper.serializeOut(p);
+
+        //now read it back
+        DroolsObjectInputStream in = new DroolsObjectInputStream(new ByteArrayInputStream(ser), loader);
+        Package p_ = (Package) in.readObject();
+        assertNotNull(p_);
+
     }
 
-    protected RuleBase getRuleBase(final RuleBaseConfiguration config) throws Exception {
+    protected RuleBase getRuleBase() throws Exception {
 
         return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
-                                            config );
+                                            null );
     }
 
     protected RuleBase getRuleBase(Package pkg) throws Exception {
@@ -910,6 +907,12 @@
 
         ruleBase.addPackage(pkg);
         return SerializationHelper.serializeObject(ruleBase);
-     }
+    }
 
+    protected RuleBase getRuleBase(final RuleBaseConfiguration config) throws Exception {
+
+        return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+                                            config );
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,8 +16,23 @@
  * limitations under the License.
  */
 
+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.math.BigInteger;
+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;
@@ -26,7 +41,6 @@
 import org.drools.Cheese;
 import org.drools.CheeseEqual;
 import org.drools.Cheesery;
-import org.drools.Cheesery.Maturity;
 import org.drools.Child;
 import org.drools.DomainObjectHolder;
 import org.drools.FactA;
@@ -61,6 +75,7 @@
 import org.drools.StatelessSession;
 import org.drools.TestParam;
 import org.drools.WorkingMemory;
+import org.drools.Cheesery.Maturity;
 import org.drools.audit.WorkingMemoryFileLogger;
 import org.drools.audit.WorkingMemoryInMemoryLogger;
 import org.drools.base.ClassObjectFilter;
@@ -71,9 +86,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;
@@ -101,21 +116,6 @@
 import org.drools.spi.GlobalResolver;
 import org.drools.xml.XmlDumper;
 
-import java.io.ByteArrayInputStream;
-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.math.BigInteger;
-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 {
 
@@ -138,7 +138,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final Cheese cheese = new Cheese( "stilton",
                                           15 );
@@ -146,10 +146,10 @@
         List list = new ArrayList();
         workingMemory.setGlobal( "list",
                                  list );
-        workingMemory = SerializationHelper.serializeObject( workingMemory );
+        workingMemory   = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
-        list = (List) workingMemory.getGlobal( "list" );
+        list    = (List)workingMemory.getGlobal("list");
         assertEquals( 4,
                       list.size() );
 
@@ -170,7 +170,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         List list = new ArrayList();
@@ -187,30 +187,17 @@
         cheesery2.setMaturity( Maturity.YOUNG );
         workingMemory.insert( cheesery2 );
 
+//        workingMemory   = SerializationHelper.serializeObject(workingMemory);
+//        list = (List) workingMemory.getGlobal( "list" );
         workingMemory.fireAllRules();
 
         assertEquals( 2,
                       list.size() );
 
-        assertSame( cheesery1, list.get( 0 ) );
         assertEquals( cheesery1,
                       list.get( 0 ) );
         assertEquals( cheesery2,
                       list.get( 1 ) );
-        
-        // now try it again with the list from a serialised WM
-        workingMemory   = ruleBase.newStatefulSession( new ByteArrayInputStream( SerializationHelper.serializeOut(  workingMemory  )) );        
-        list = (List) workingMemory.getGlobal( "list" );
-        workingMemory.fireAllRules();
-
-        assertEquals( 2,
-                      list.size() );
-
-        assertNotSame( cheesery1, list.get( 0 ) );
-        assertEquals( cheesery1,
-                      list.get( 0 ) );
-        assertEquals( cheesery2,
-                      list.get( 1 ) );        
     }
 
     public void testPrimitiveArray() throws Exception {
@@ -220,7 +207,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final List result = new ArrayList();
         workingMemory.setGlobal( "result",
@@ -244,6 +231,25 @@
 
     }
 
+    public void testMVELSoundex() throws Exception {
+
+        // read in the source
+        final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "MVEL_soundex.drl" ) );
+        RuleBase ruleBase = loadRuleBase( reader );
+
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
+        WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+        Cheese c = new Cheese( "fubar",
+                               2 );
+
+        workingMemory.insert( c );
+        workingMemory.fireAllRules();
+        assertEquals( 42,
+                      c.getPrice() );
+    }
+
     public void testGlobals() throws Exception {
 
         final PackageBuilder builder = new PackageBuilder();
@@ -252,7 +258,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -266,11 +272,11 @@
                                            5 );
         workingMemory.insert( stilton );
 
-        workingMemory = SerializationHelper.serializeObject( workingMemory );
+        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( new Integer( 5 ),
-                      ((List) workingMemory.getGlobal( "list" )).get( 0 ) );
+                      ((List)workingMemory.getGlobal("list")).get( 0 ) );
     }
 
     public void testGlobals2() throws Exception {
@@ -281,7 +287,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -298,24 +304,24 @@
                                            5 );
         workingMemory.insert( stilton );
 
-        workingMemory = SerializationHelper.serializeObject( workingMemory );
+        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( 1,
-                      ((List) workingMemory.getGlobal( "results" )).size() );
+                      ((List)workingMemory.getGlobal("results")).size() );
         assertEquals( "memberOf",
-                      ((List) workingMemory.getGlobal( "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,
-                      ((List) workingMemory.getGlobal( "results" )).size() );
+                      ((List)workingMemory.getGlobal("results")).size() );
         assertEquals( "not memberOf",
-                      ((List) workingMemory.getGlobal( "results" )).get( 1 ) );
+                      ((List)workingMemory.getGlobal("results")).get( 1 ) );
     }
 
     public void testCustomGlobalResolver() throws Exception {
@@ -325,7 +331,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Map map = new HashMap();
@@ -338,8 +344,7 @@
                  string );
 
         workingMemory.setGlobalResolver( new GlobalResolver() {
-            public void readExternal(ObjectInput in) throws IOException,
-                                                    ClassNotFoundException {
+            public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
             }
 
             public void writeExternal(ObjectOutput out) throws IOException {
@@ -376,7 +381,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Map map = new HashMap();
@@ -399,8 +404,7 @@
                          value );
             }
 
-            public void readExternal(ObjectInput in) throws IOException,
-                                                    ClassNotFoundException {
+            public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
             }
 
             public void writeExternal(ObjectOutput out) throws IOException {
@@ -443,7 +447,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory wm = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -468,7 +472,7 @@
         // add the package to a rulebase
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List events = new ArrayList();
@@ -514,7 +518,7 @@
         // add the package to a rulebase
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
@@ -550,7 +554,7 @@
         // add the package to a rulebase
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
         List list = new ArrayList();
@@ -577,7 +581,7 @@
         // add the package to a rulebase
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
@@ -612,7 +616,7 @@
         // add the package to a rulebase
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         // load up the rulebase
         return ruleBase;
     }
@@ -634,7 +638,7 @@
         workingMemory.insert( new Cheese( "brie",
                                           33 ) );
 
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
         assertEquals( 1,
                       list.size() );
@@ -659,7 +663,7 @@
 
         workingMemory.insert( message );
         workingMemory.insert( "boo" );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
         assertTrue( message.isFired() );
         assertEquals( message,
@@ -674,7 +678,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -684,7 +688,7 @@
         final Cheese stilton = new Cheese( "stilton",
                                            5 );
         workingMemory.insert( stilton );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
 
         workingMemory.fireAllRules();
 
@@ -699,7 +703,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -711,7 +715,7 @@
                                                  12 );
         bill.setAlive( true );
         workingMemory.insert( bill );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
 
         workingMemory.fireAllRules();
 
@@ -726,7 +730,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -740,7 +744,7 @@
         stilton.setFieldValue( "price",
                                new Integer( 100 ) );
         workingMemory.insert( stilton );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
 
         workingMemory.fireAllRules();
 
@@ -763,7 +767,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -773,7 +777,7 @@
         final State state = new State( "initial" );
         workingMemory.insert( state,
                               true );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( 1,
@@ -802,7 +806,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -821,40 +825,38 @@
 
         workingMemory.insert( bill );
         workingMemory.insert( ben );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( 1,
                       list.size() );
     }
 
-    public void testBigDecimalIntegerLiteral() throws Exception {
+	public void testBigDecimalIntegerLiteral() throws Exception {
 
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "big_decimal_and_literal.drl" ) ) );
-        final Package pkg = builder.getPackage();
+		final PackageBuilder builder = new PackageBuilder();
+		builder.addPackageFromDrl(new InputStreamReader(getClass()
+				.getResourceAsStream("big_decimal_and_literal.drl")));
+		final Package pkg = builder.getPackage();
 
-        final RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+		final RuleBase ruleBase = getRuleBase();
+		ruleBase.addPackage(pkg);
+		final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
-        final List list = new ArrayList();
-        workingMemory.setGlobal( "list",
-                                 list );
+		final List list = new ArrayList();
+		workingMemory.setGlobal("list", list);
 
-        final PersonInterface bill = new Person( "bill",
-                                                 null,
-                                                 12 );
-        bill.setBigDecimal( new BigDecimal( "42" ) );
-        bill.setBigInteger( new BigInteger( "42" ) );
+		final PersonInterface bill = new Person("bill", null, 12);
+		bill.setBigDecimal(new BigDecimal("42"));
+		bill.setBigInteger(new BigInteger("42"));
 
-        workingMemory.insert( bill );
-        workingMemory.fireAllRules();
+		workingMemory.insert(bill);
+		workingMemory.fireAllRules();
 
-        assertEquals( 6,
-                      list.size() );
-    }
+		assertEquals(6, list.size());
+	}
 
+
     // @FIXME
     public void FIXME_testBigDecimalWithFromAndEval() throws Exception {
         String rule = "package org.test;\n";
@@ -877,6 +879,41 @@
 
     }
 
+    public void testMVELConsequenceWithMapsAndArrays() throws Exception {
+        String rule = "package org.test;\n";
+        rule += "import java.util.ArrayList\n";
+        rule += "import java.util.HashMap\n";
+        rule += "global java.util.List list\n";
+        rule += "rule \"Test Rule\"\n";
+        rule += "    dialect \"mvel\"";
+        rule += "when\n";
+        rule += "then\n";
+        rule += "    m = new HashMap();\n";
+        rule += "    l = new ArrayList();\n";
+        rule += "    l.add(\"first\");\n";
+        rule += "    m.put(\"content\", l);\n";
+        rule += "    System.out.println(m[\"content\"][0]);\n";
+        rule += "    list.add(m[\"content\"][0]);\n";
+        rule += "end";
+
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new StringReader( rule ) );
+        final Package pkg = builder.getPackage();
+
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final StatefulSession session = ruleBase.newStatefulSession();
+        List list = new ArrayList();
+        session.setGlobal( "list",
+                           list );
+        session.fireAllRules();
+
+        assertEquals( 1,
+                      list.size() );
+        assertEquals( "first",
+                      list.get( 0 ) );
+    }
+
     public void testCell() throws Exception {
         final Cell cell1 = new Cell( 9 );
         final Cell cell = new Cell( 0 );
@@ -886,12 +923,12 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         WorkingMemory memory = ruleBase.newStatefulSession();
         memory.insert( cell1 );
         memory.insert( cell );
-        //        memory    = SerializationHelper.serializeObject(memory);
+//        memory    = SerializationHelper.serializeObject(memory);
         memory.fireAllRules();
         assertEquals( 9,
                       cell.getValue() );
@@ -939,11 +976,11 @@
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
 
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory memory = ruleBase.newStatefulSession();
 
         memory.insert( p );
-        memory = SerializationHelper.serializeObject( memory );
+        memory    = SerializationHelper.serializeObject(memory);
         memory.fireAllRules();
 
     }
@@ -955,7 +992,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final List list = new ArrayList();
         workingMemory.setGlobal( "list",
@@ -982,7 +1019,7 @@
 
         workingMemory.insert( new Cheese( "stilton",
                                           5 ) );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         // now have one more
@@ -998,13 +1035,13 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese stilton = new Cheese( "stinky",
                                            5 );
         workingMemory.insert( stilton );
-        workingMemory = SerializationHelper.serializeObject( workingMemory );
+        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         final QueryResults results = workingMemory.getQueryResults( "simple query" );
         assertEquals( 1,
                       results.size() );
@@ -1029,7 +1066,7 @@
         final Cheese stilton = new Cheese( "stilton",
                                            5 );
         workingMemory.insert( stilton );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( stilton,
@@ -1047,7 +1084,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         workingMemory.setGlobal( "five",
@@ -1060,7 +1097,7 @@
         final Cheese stilton = new Cheese( "stilton",
                                            5 );
         workingMemory.insert( stilton );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( stilton,
@@ -1074,7 +1111,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -1083,7 +1120,7 @@
 
         final Person foo = new Person( "foo" );
         workingMemory.insert( foo );
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( foo,
@@ -1097,7 +1134,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         workingMemory.setGlobal( "two",
@@ -1116,7 +1153,7 @@
                                                  10 );
         workingMemory.insert( jane );
 
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
 
         assertEquals( jane,
@@ -1132,7 +1169,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         workingMemory.setGlobal( "two",
@@ -1166,7 +1203,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final PersonInterface p1 = new Person( "michael",
@@ -1178,7 +1215,7 @@
         workingMemory.insert( p1 );
         workingMemory.insert( p2 );
 
-        workingMemory = SerializationHelper.serializeObject( workingMemory );
+        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
     }
 
@@ -1189,7 +1226,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final List foo = new ArrayList();
         workingMemory.setGlobal( "messages",
@@ -1204,7 +1241,7 @@
         workingMemory.insert( p1 );
         workingMemory.insert( p2 );
 
-        //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
+//        workingMemory    = SerializationHelper.serializeObject(workingMemory);
         workingMemory.fireAllRules();
         assertEquals( 2,
                       foo.size() );
@@ -1218,7 +1255,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final List list1 = new ArrayList();
@@ -1277,7 +1314,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final List list = new ArrayList();
@@ -1347,7 +1384,7 @@
         Package pkg = builder.getPackage();
         pkg.checkValidity();
     }
-
+    
     /**
      * @see JBRULES-1415 Certain uses of from causes NullPointerException in WorkingMemoryLogger
      */
@@ -1365,37 +1402,32 @@
         rule += "end";
 
         final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new StringReader( rule ) );
+        builder.addPackageFromDrl( new StringReader( rule ));
         final Package pkg = builder.getPackage();
 
         final RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
+        ruleBase.addPackage(pkg);
         final StatefulSession session = ruleBase.newStatefulSession();
-
+        
         WorkingMemoryInMemoryLogger logger = new WorkingMemoryInMemoryLogger( session );
         List list = new ArrayList();
-        session.setGlobal( "list",
-                           list );
-
+        session.setGlobal( "list", list );
+        
         Cheesery cheesery = new Cheesery();
-        cheesery.addCheese( new Cheese( "stilton",
-                                        22 ) );
-
+        cheesery.addCheese(  new Cheese("stilton", 22) );
+        
         session.insert( cheesery );
+        
+        session.fireAllRules();                 
+        
+        assertEquals( 1, list.size());
+        assertEquals( "stilton", list.get(0));
+}    
 
-        session.fireAllRules();
-
-        assertEquals( 1,
-                      list.size() );
-        assertEquals( "stilton",
-                      list.get( 0 ) );
-    }
-
     public void testWithInvalidRule() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "invalid_rule.drl" ) ) );
         final Package pkg = builder.getPackage();
-        // FIXME
         // Mark: please check if the conseqeuence/should/shouldn't be built
         // Rule badBoy = pkg.getRules()[0];
         // assertFalse(badBoy.isValid());
@@ -1410,7 +1442,7 @@
             assertNotNull( e.getMessage() );
             runtime = e;
         }
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         assertTrue( builder.getErrors().getErrors().length > 0 );
 
         final String pretty = builder.getErrors().toString();
@@ -1473,7 +1505,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -1498,7 +1530,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -1528,7 +1560,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese mussarela = new Cheese( "Mussarela",
@@ -1581,7 +1613,7 @@
 
         RuleBase ruleBase = getRuleBase( conf );
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese brie = new Cheese( "brie",
@@ -1590,7 +1622,7 @@
 
         workingMemory.fireAllRules();
 
-        assertTrue( ((CustomConsequenceExceptionHandler) ((ReteooRuleBase) ruleBase).getConfiguration().getConsequenceExceptionHandler()).isCalled() );
+        assertTrue( ((CustomConsequenceExceptionHandler)((ReteooRuleBase)ruleBase).getConfiguration().getConsequenceExceptionHandler()).isCalled() );
     }
 
     public static class CustomConsequenceExceptionHandler
@@ -1609,13 +1641,12 @@
             return this.called;
         }
 
-        public void readExternal(ObjectInput in) throws IOException,
-                                                ClassNotFoundException {
-            called = in.readBoolean();
+        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+            called  = in.readBoolean();
         }
 
         public void writeExternal(ObjectOutput out) throws IOException {
-            out.writeBoolean( called );
+            out.writeBoolean(called);
         }
     }
 
@@ -1626,7 +1657,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese brie = new Cheese( "brie",
@@ -1649,7 +1680,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese brie = new Cheese( "brie",
@@ -1672,7 +1703,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese brie = new Cheese( "brie",
@@ -1695,7 +1726,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese brie = new Cheese( "brie",
@@ -1717,7 +1748,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list1 = new ArrayList();
@@ -1794,7 +1825,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         List list = new ArrayList();
@@ -1879,7 +1910,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -1914,7 +1945,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DuplicateRuleName2.drl" ) ) );
@@ -1934,15 +1965,15 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg1 );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         // Adding person with null name and likes attributes
-        final PersonInterface bob = new Person( (String) null,
-                                                (String) null );
+        final PersonInterface bob = new Person( null,
+                                                null );
         bob.setStatus( "P1" );
-        final PersonInterface pete = new Person( (String) null,
-                                                 (String) null );
+        final PersonInterface pete = new Person( null,
+                                                 null );
         bob.setStatus( "P2" );
         workingMemory.insert( bob );
         workingMemory.insert( pete );
@@ -1965,7 +1996,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -1985,7 +2016,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2006,7 +2037,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2039,7 +2070,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg1 );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List orderedFacts = new ArrayList();
@@ -2075,7 +2106,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         workingMemory.fireAllRules();
@@ -2093,7 +2124,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         workingMemory.fireAllRules();
@@ -2135,7 +2166,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Cheese stilton = new Cheese( "stinky",
@@ -2277,7 +2308,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final Person p1 = new Person( "p1",
@@ -2363,7 +2394,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2388,7 +2419,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List matchlist = new ArrayList();
@@ -2430,7 +2461,7 @@
 
         RuleBase ruleBase = getRuleBase( config );
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List sensors = new ArrayList();
@@ -2461,7 +2492,7 @@
 
             RuleBase ruleBase = getRuleBase();
             ruleBase.addPackage( pkg );
-            ruleBase = SerializationHelper.serializeObject( ruleBase );
+            ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
             Assert.fail( "Should have thrown an InvalidRulePackage" );
         } catch ( final InvalidRulePackage e ) {
@@ -2480,7 +2511,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2517,7 +2548,7 @@
 
             RuleBase ruleBase = getRuleBase();
             ruleBase.addPackage( pkg );
-            ruleBase = SerializationHelper.serializeObject( ruleBase );
+            ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
             fail( "Should have trown an exception" );
         } catch ( final InvalidRulePackage e ) {
@@ -2535,7 +2566,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory wm = ruleBase.newStatefulSession();
 
@@ -2565,7 +2596,7 @@
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ImportConflict.drl" ) ) );
         final Package pkg = builder.getPackage();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
     }
 
     public void testEmptyIdentifier() throws Exception {
@@ -2575,7 +2606,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final List result = new ArrayList();
         workingMemory.setGlobal( "results",
@@ -2600,7 +2631,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         final Map result = new HashMap();
         workingMemory.setGlobal( "results",
@@ -2658,7 +2689,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         workingMemory.insert( new Child( "gp" ) );
@@ -2673,7 +2704,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -2711,7 +2742,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2769,7 +2800,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -2799,7 +2830,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory wm = ruleBase.newStatefulSession();
 
         final List agendaList = new ArrayList();
@@ -2889,7 +2920,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -2914,7 +2945,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         workingMemory.setGlobal( "value",
@@ -2930,7 +2961,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2969,7 +3000,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -2998,7 +3029,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3026,7 +3057,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3060,7 +3091,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3087,7 +3118,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) ruleBase.newStatefulSession();
 
         final Cheese stilton = new Cheese( "stilton",
@@ -3119,7 +3150,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3182,7 +3213,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3240,7 +3271,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3255,7 +3286,6 @@
         workingMemory.insert( stilton );
 
         workingMemory.fireAllRules();
-
         assertEquals( 1,
                       list.size() );
 
@@ -3263,6 +3293,30 @@
                       list.get( 0 ) );
     }
 
+    public void testMatchesMVEL() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesMVEL.drl" ) ) );
+        final Package pkg = builder.getPackage();
+
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final StatefulSession session = ruleBase.newStatefulSession();
+
+        final List results = new ArrayList();
+        session.setGlobal( "results",
+                           results );
+
+        Map map = new HashMap();
+        map.put( "content",
+                 "hello ;=" );
+        session.insert( map );
+
+        session.fireAllRules();
+
+        assertEquals( 1,
+                      results.size() );
+    }
+
     public void testAutomaticBindingsErrors() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AutoBindingsErrors.drl" ) ) );
@@ -3278,7 +3332,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3308,7 +3362,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3379,7 +3433,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3411,7 +3465,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3436,7 +3490,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3488,7 +3542,7 @@
         conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.EQUALITY );
         RuleBase ruleBase = getRuleBase( conf );
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3517,7 +3571,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3557,7 +3611,7 @@
         conf.setShareAlphaNodes( false );
         RuleBase ruleBase = getRuleBase( conf );
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3590,7 +3644,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3616,7 +3670,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -3639,7 +3693,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3689,7 +3743,7 @@
             RuleBase ruleBase = getRuleBase();
             ruleBase.addPackage( pkg1 );
             ruleBase.addPackage( pkg2 );
-            ruleBase = SerializationHelper.serializeObject( ruleBase );
+            ruleBase    = SerializationHelper.serializeObject(ruleBase);
             final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
             final List results = new ArrayList();
@@ -3754,7 +3808,7 @@
 
             RuleBase ruleBase = getRuleBase();
             ruleBase.addPackage( pkg1 );
-            ruleBase = SerializationHelper.serializeObject( ruleBase );
+            ruleBase    = SerializationHelper.serializeObject(ruleBase);
             final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
             final List results = new ArrayList();
@@ -3797,7 +3851,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3824,7 +3878,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3857,7 +3911,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3884,7 +3938,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -3998,7 +4052,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -4035,7 +4089,7 @@
         conf.setShadowProxy( true );
         RuleBase rb = RuleBaseFactory.newRuleBase( conf );
         rb.addPackage( builder.getPackage() );
-        rb = SerializationHelper.serializeObject( rb );
+        rb    = SerializationHelper.serializeObject(rb);
         StatefulSession session = rb.newStatefulSession();
 
         List list1 = new ArrayList();
@@ -4096,7 +4150,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -4126,7 +4180,7 @@
         conf.setSequential( true );
         RuleBase ruleBase = getRuleBase( conf );
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         StatelessSession session = ruleBase.newStatelessSession();
         List list = new ArrayList();
@@ -4145,7 +4199,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         StatefulSession session = ruleBase.newStatefulSession();
         List list = new ArrayList();
@@ -4179,7 +4233,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4284,7 +4338,7 @@
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
         ruleBase.addPackage( pkg2 );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
@@ -4303,7 +4357,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -4327,7 +4381,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List results = new ArrayList();
@@ -4353,7 +4407,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
         workingMemory.fireAllRules();
@@ -4375,7 +4429,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
@@ -4434,7 +4488,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory wm = ruleBase.newStatefulSession();
 
@@ -4465,7 +4519,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
@@ -4531,7 +4585,7 @@
 
         try {
             ruleBase.addPackage( builder.getPackage() );
-            ruleBase = SerializationHelper.serializeObject( ruleBase );
+            ruleBase    = SerializationHelper.serializeObject(ruleBase);
         } catch ( Exception e ) {
             e.printStackTrace();
             fail( "Should not raise any exception!" );
@@ -4545,7 +4599,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( builder.getPackage() );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
 
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
@@ -4581,7 +4635,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4623,7 +4677,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4668,7 +4722,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4727,7 +4781,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4755,7 +4809,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4812,7 +4866,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4844,7 +4898,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4869,7 +4923,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4895,7 +4949,7 @@
         conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.EQUALITY );
         RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
 
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final StatefulSession session = ruleBase.newStatefulSession();
 
         CheeseEqual cheese = new CheeseEqual( "stilton",
@@ -4911,7 +4965,7 @@
         conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.IDENTITY );
         RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
 
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final StatefulSession session = ruleBase.newStatefulSession();
 
         CheeseEqual cheese = new CheeseEqual( "stilton",
@@ -4931,7 +4985,7 @@
 
         RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
-        ruleBase = SerializationHelper.serializeObject( ruleBase );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
         final List list = new ArrayList();
@@ -4948,4 +5002,47 @@
                       list.size() );
         assertTrue( list.contains( b.getObject() ) );
     }
+
+    public void testNPEOnMVELAlphaPredicates() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NPEOnMVELPredicate.drl" ) ) );
+        final Package pkg = builder.getPackage();
+
+        RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
+        final StatefulSession session = ruleBase.newStatefulSession();
+
+        final List list = new ArrayList();
+        session.setGlobal( "results",
+                           list );
+
+        Cheese cheese = new Cheese( "stilton",
+                                    10 );
+        Cheesery cheesery = new Cheesery();
+        cheesery.addCheese( cheese );
+        Person bob = new Person( "bob",
+                                 "stilton" );
+        Cheese cheese2 = new Cheese();
+        bob.setCheese( cheese2 );
+
+        FactHandle p = session.insert( bob );
+        FactHandle c = session.insert( cheesery );
+
+        session.fireAllRules();
+
+        assertEquals( "should not have fired",
+                      0,
+                      list.size() );
+
+        cheese2.setType( "stilton" );
+        session.update( p,
+                        bob );
+        session.fireAllRules();
+
+        assertEquals( 1,
+                      list.size() );
+
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulSessionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulSessionTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatefulSessionTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -140,7 +140,7 @@
         
         int i = 0;
         while ( !futureFireAllRules.isDone() ) {
-            Thread.sleep( 100 );
+            Thread.sleep( 300 );
             if (i++ > 5) {
                 fail( "Future should have finished by now" );
             }
@@ -165,7 +165,7 @@
         
         int i = 0;
         while ( !futureFireAllRules.isDone() ) {
-            Thread.sleep( 300 );
+            Thread.sleep( 100 );
             if (i++ > 5) {
                 fail( "Future should have finished by now" );
             }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -131,11 +131,10 @@
         assertNotNull( handle3 );
         assertNotNull( handle4 );
 
-// @FIXME_testEventAssertion
-//       assertTrue( handle1.isEvent() );
-//        assertTrue( handle2.isEvent() );
-//        assertTrue( handle3.isEvent() );
-//        assertTrue( handle4.isEvent() );
+        assertTrue( handle1.isEvent() );
+        assertTrue( handle2.isEvent() );
+        assertTrue( handle3.isEvent() );
+        assertTrue( handle4.isEvent() );
 
         wm.fireAllRules();
 
@@ -171,11 +170,10 @@
         assertNotNull( handle7 );
         assertNotNull( handle8 );
 
-// @FIXME_testEventAssertion
-//        assertTrue( handle5.isEvent() );
-//        assertTrue( handle6.isEvent() );
-//        assertTrue( handle7.isEvent() );
-//        assertTrue( handle8.isEvent() );
+        assertTrue( handle5.isEvent() );
+        assertTrue( handle6.isEvent() );
+        assertTrue( handle7.isEvent() );
+        assertTrue( handle8.isEvent() );
 
         wm.fireAllRules();
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/Stage.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/Stage.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/Stage.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -21,7 +21,6 @@
  *
  */
 
-import java.io.Serializable;
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/MVELDumperTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/MVELDumperTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/MVELDumperTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -7,15 +7,22 @@
 import org.antlr.runtime.CommonTokenStream;
 import org.antlr.runtime.Lexer;
 import org.antlr.runtime.TokenStream;
+import org.drools.base.evaluators.MatchesEvaluatorsDefinition;
+import org.drools.base.evaluators.SetEvaluatorsDefinition;
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.PatternDescr;
 
 public class MVELDumperTest extends TestCase {
 
     private MVELDumper dumper;
-
+    
     protected void setUp() throws Exception {
         super.setUp();
+        
+        // configure operators
+        new SetEvaluatorsDefinition();
+        new MatchesEvaluatorsDefinition();
+        
         dumper = new MVELDumper();
     }
 
@@ -23,7 +30,7 @@
         super.tearDown();
     }
 
-    public void xxxtestDump() throws Exception {
+    public void testDump() throws Exception {
         String input = "Cheese( price > 10 && < 20 || == $val || == 30 )";
         String expected = "( ( price > 10 && price < 20 ) || price == $val || price == 30 )" ;
         DRLParser parser = parse( input );
@@ -59,7 +66,30 @@
         assertEquals( expected, result );
     }
 
-    
+    public void testDumpMatches3() throws Exception {
+        String input = "Map( this[\"content\"] matches \"hello ;=\" )";
+        String expected = "this[\"content\"] ~= \"hello ;=\"" ;
+        DRLParser parser = parse( input );
+        PatternDescr pattern = (PatternDescr) parser.fact( null );
+        
+        FieldConstraintDescr fieldDescr = (FieldConstraintDescr) pattern.getConstraint().getDescrs().get( 0 );
+        String result = dumper.dump( fieldDescr );
+        
+        assertEquals( expected, result );
+    }
+
+    public void testDumpWithDateAttr() throws Exception {
+        String input = "Person( son.birthDate == \"01-jan-2000\" )";
+        String expected = "son.birthDate == org.drools.util.DateUtils.parseDate( \"01-jan-2000\" )" ;
+        DRLParser parser = parse( input );
+        PatternDescr pattern = (PatternDescr) parser.fact( null );
+        
+        FieldConstraintDescr fieldDescr = (FieldConstraintDescr) pattern.getConstraint().getDescrs().get( 0 );
+        String result = dumper.dump( fieldDescr, true );
+        
+        assertEquals( expected, result );
+    }
+
     private DRLParser parse(final String text) throws Exception {
         return newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,7 +16,15 @@
  * limitations under the License.
  */
 
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.Iterator;
+import java.util.List;
+
 import junit.framework.TestCase;
+
 import org.antlr.runtime.ANTLRStringStream;
 import org.antlr.runtime.CharStream;
 import org.antlr.runtime.CommonToken;
@@ -58,17 +66,10 @@
 import org.drools.lang.descr.RestrictionConnectiveDescr;
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.RuleDescr;
+import org.drools.lang.descr.TypeDeclarationDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
-import org.drools.lang.descr.TypeDeclarationDescr;
 import org.drools.lang.dsl.DefaultExpander;
 
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Iterator;
-import java.util.List;
-
 public class RuleParserTest extends TestCase {
 
     private DRLParser parser;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaAccumulateBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaAccumulateBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaAccumulateBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -5,7 +5,6 @@
 import junit.framework.TestCase;
 
 import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectRegistry;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.AccumulateDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,54 +1,23 @@
 package org.drools.rule.builder.dialect.java;
 
-import java.io.InputStreamReader;
-import java.io.Serializable;
 import java.io.StringReader;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Properties;
 
-import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.drools.Cheese;
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
-import org.drools.base.ClassObjectType;
-import org.drools.base.DefaultKnowledgeHelper;
-import org.drools.base.mvel.MVELConsequence;
-import org.drools.base.mvel.MVELDebugHandler;
-import org.drools.common.AgendaItem;
-import org.drools.common.InternalFactHandle;
-import org.drools.common.PropagationContextImpl;
-import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectConfiguration;
-import org.drools.compiler.DrlParser;
-import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.ActionDescr;
-import org.drools.lang.descr.PackageDescr;
 import org.drools.lang.descr.ProcessDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.reteoo.ReteTuple;
-import org.drools.rule.Declaration;
 import org.drools.rule.Package;
-import org.drools.rule.Pattern;
-import org.drools.rule.Rule;
-import org.drools.rule.builder.PackageBuildContext;
 import org.drools.rule.builder.ProcessBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.RuleBuilder;
 import org.drools.spi.Action;
-import org.drools.spi.ObjectType;
-import org.drools.spi.PatternExtractor;
 import org.drools.workflow.core.impl.WorkflowProcessImpl;
 import org.drools.workflow.core.node.ActionNode;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.ParserContext;
 
 public class JavaActionBuilderTest extends TestCase {
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -2,23 +2,20 @@
 
 import java.util.Set;
 
+import junit.framework.TestCase;
+
 import org.antlr.runtime.RecognitionException;
 import org.drools.Cheese;
 import org.drools.base.ClassObjectType;
-import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectRegistry;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.RuleDescr;
-import org.drools.rule.builder.PackageBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.Package;
 import org.drools.rule.Pattern;
 import org.drools.rule.Rule;
+import org.drools.rule.builder.RuleBuildContext;
 
-import junit.framework.TestCase;
-
 public class JavaConsequenceBuilderTest extends TestCase {
 
     private JavaConsequenceBuilder builder;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzerTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzerTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,7 +17,6 @@
  */
 package org.drools.rule.builder.dialect.java;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -29,7 +29,6 @@
 import org.drools.base.ClassTypeResolver;
 import org.drools.base.TypeResolver;
 import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectRegistry;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,51 +1,21 @@
 package org.drools.rule.builder.dialect.mvel;
 
-import java.io.InputStreamReader;
-import java.io.Serializable;
 import java.io.StringReader;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Properties;
 
-import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.drools.Cheese;
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
-import org.drools.base.ClassObjectType;
-import org.drools.base.DefaultKnowledgeHelper;
-import org.drools.base.mvel.MVELConsequence;
-import org.drools.base.mvel.MVELDebugHandler;
-import org.drools.common.AgendaItem;
-import org.drools.common.InternalFactHandle;
-import org.drools.common.PropagationContextImpl;
-import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectConfiguration;
-import org.drools.compiler.DrlParser;
-import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.ActionDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.reteoo.ReteTuple;
-import org.drools.rule.Declaration;
 import org.drools.rule.Package;
-import org.drools.rule.Pattern;
-import org.drools.rule.Rule;
 import org.drools.rule.builder.PackageBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.RuleBuilder;
 import org.drools.spi.Action;
-import org.drools.spi.ObjectType;
-import org.drools.spi.PatternExtractor;
 import org.drools.workflow.core.node.ActionNode;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.ParserContext;
 
 public class MVELActionBuilderTest extends TestCase {
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -21,12 +21,10 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.PropagationContextImpl;
 import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectConfiguration;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.lang.descr.ActionDescr;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.reteoo.ReteTuple;
@@ -38,8 +36,8 @@
 import org.drools.rule.builder.RuleBuilder;
 import org.drools.spi.ObjectType;
 import org.drools.spi.PatternExtractor;
-import org.mvel.compiler.ExpressionCompiler;
 import org.mvel.ParserContext;
+import org.mvel.compiler.ExpressionCompiler;
 
 public class MVELConsequenceBuilderTest extends TestCase {
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,51 +1,21 @@
 package org.drools.rule.builder.dialect.mvel;
 
-import java.io.InputStreamReader;
-import java.io.Serializable;
 import java.io.StringReader;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Properties;
 
-import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.drools.Cheese;
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
-import org.drools.base.ClassObjectType;
-import org.drools.base.DefaultKnowledgeHelper;
-import org.drools.base.mvel.MVELConsequence;
-import org.drools.base.mvel.MVELDebugHandler;
-import org.drools.common.AgendaItem;
-import org.drools.common.InternalFactHandle;
-import org.drools.common.PropagationContextImpl;
-import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectConfiguration;
-import org.drools.compiler.DrlParser;
-import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.ActionDescr;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.RuleDescr;
-import org.drools.reteoo.ReteTuple;
-import org.drools.rule.Declaration;
 import org.drools.rule.Package;
-import org.drools.rule.Pattern;
-import org.drools.rule.Rule;
 import org.drools.rule.builder.PackageBuildContext;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.RuleBuilder;
 import org.drools.spi.Action;
-import org.drools.spi.ObjectType;
-import org.drools.spi.PatternExtractor;
 import org.drools.workflow.core.node.ActionNode;
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.ParserContext;
 
 public class MVELDecisionBuilderTest extends TestCase {
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -12,7 +12,6 @@
 import org.drools.base.ClassFieldExtractorCache;
 import org.drools.base.ClassObjectType;
 import org.drools.common.InternalFactHandle;
-import org.drools.compiler.DialectConfiguration;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.EvalDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -11,8 +11,6 @@
 import org.drools.WorkingMemory;
 import org.drools.base.ClassObjectType;
 import org.drools.common.InternalFactHandle;
-import org.drools.compiler.DialectConfiguration;
-import org.drools.compiler.DialectRegistry;
 import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.descr.RuleDescr;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,17 +1,12 @@
 package org.drools.testframework;
 
-import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
-import org.mvel.compiler.ExpressionCompiler;
-import org.mvel.MVEL;
-import org.mvel.ParserContext;
-
 import junit.framework.TestCase;
 
+import org.mvel.MVEL;
+
 public class FactPopulatorTest extends TestCase {
 
 	public void testMVELPopulate() throws Exception {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,12 +1,23 @@
 package org.drools.testframework;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.locks.Lock;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
 import org.drools.Agenda;
+import org.drools.WorkingMemoryEntryPoint;
 import org.drools.FactException;
 import org.drools.FactHandle;
 import org.drools.ObjectFilter;
 import org.drools.QueryResults;
 import org.drools.RuleBase;
-import org.drools.WorkingMemoryEntryPoint;
 import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
@@ -38,17 +49,6 @@
 import org.drools.spi.PropagationContext;
 import org.drools.util.ObjectHashMap;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.locks.Lock;
-
 public class MockWorkingMemory implements InternalWorkingMemory {
 
 	List<Object> facts = new ArrayList<Object>();

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -4,17 +4,16 @@
 import java.util.List;
 import java.util.Map;
 
+import junit.framework.TestCase;
+
 import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
 import org.drools.brms.client.modeldriven.testing.FactData;
-import org.drools.brms.client.modeldriven.testing.FieldData;
 import org.drools.brms.client.modeldriven.testing.RetractFact;
 import org.drools.brms.client.modeldriven.testing.Scenario;
 import org.drools.brms.client.modeldriven.testing.VerifyFact;
 import org.drools.brms.client.modeldriven.testing.VerifyField;
 import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
 
-import junit.framework.TestCase;
-
 public class ScenarioTest extends TestCase {
 
 	public void testInsertAfter() {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,17 +1,11 @@
 package org.drools.testframework;
 
-import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 
 import org.drools.Cheese;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
 import org.drools.StatefulSession;
-import org.drools.compiler.PackageBuilder;
-import org.drools.spi.Activation;
-import org.drools.spi.AgendaFilter;
 
 public class TestingEventListenerTest extends RuleUnit {
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/ActionNodeTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -10,8 +10,6 @@
 import org.drools.RuleBaseFactory;
 import org.drools.StatefulSession;
 import org.drools.compiler.PackageBuilder;
-import org.drools.process.core.Process;
-import org.drools.xml.XmlProcessReader;
 
 public class ActionNodeTest extends TestCase {
     public void testSingleActionNode() throws Exception {                

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -5,7 +5,6 @@
 
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.io.StringReader;
 
 import junit.framework.Assert;
 
@@ -13,7 +12,6 @@
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.lang.DrlDumper;
 import org.drools.lang.descr.PackageDescr;
-import org.drools.xml.SemanticModules;
 import org.drools.xml.XmlDumper;
 import org.drools.xml.XmlPackageReader;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -13,7 +13,6 @@
 import org.drools.lang.descr.AccumulateDescr;
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.AttributeDescr;
-import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.CollectDescr;
 import org.drools.lang.descr.EvalDescr;
 import org.drools.lang.descr.ExistsDescr;
@@ -35,7 +34,6 @@
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
-import org.drools.xml.SemanticModules;
 import org.drools.xml.XmlPackageReader;
 
 public class XmlPackageReaderTest extends TestCase {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,7 +1,12 @@
 package org.drools;
 
-import event org.drools.StockTick;
+import org.drools.StockTick;
 
+declare StockTick {
+    role event,
+    clock_strategy pseudo
+}
+
 global java.util.List results;
 
 rule "Check event"

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,7 +1,12 @@
 package org.drools;
 
-import event org.drools.StockTick;
+import org.drools.StockTick;
 
+declare StockTick {
+    role event,
+    duration_attribute duration
+}
+
 global java.util.List results_coincides;
 global java.util.List results_after;
 global java.util.List results_before;

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,9 +1,13 @@
 package org.drools;
 
-import event org.drools.StockTick;
+import org.drools.StockTick;
 
 global java.util.List results;
 
+declare StockTick {
+    role event
+}
+
 rule "Test entry point"
 when
     $st : StockTick( company == "ACME", price > 10 ) from entry-point StockStream

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ModifyBlock.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ModifyBlock.drl	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ModifyBlock.drl	2008-03-19 18:11:50 UTC (rev 19126)
@@ -7,6 +7,6 @@
     $p: Person( status == "hungry" )
     $c: Cheese( )
 then
-    modify( $c ) {setPrice (10) };
-    modify( $p ) {setStatus("fine") };
+    modify( $c ) {setPrice (10) }
+    modify( $p ) {setStatus("fine") }
 end
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Serializable.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Serializable.drl	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Serializable.drl	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,6 +17,7 @@
         $person.setStatus("match Person ok");		
 end    
 
+
 rule "match Person 2"
 	agenda-group "xxx"	
 	salience ($age2 - $age1)
@@ -41,7 +42,6 @@
     then
 end 
 
-
 rule "match Integer"
 	agenda-group "yyy"	
 	auto-focus true

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EntryPointInterface.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EntryPointInterface.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EntryPointInterface.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,106 +0,0 @@
-/*
- * Copyright 2007 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Created on Dec 14, 2007
- */
-package org.drools;
-
-import java.io.Externalizable;
-
-/**
- * An interface for instances that allow handling of entry-point-scoped
- * facts
- *
- * @author etirelli
- */
-public interface EntryPointInterface
-    extends
-    Externalizable {
-
-    /**
-     * Assert a fact.
-     *
-     * @param object
-     *            The fact object.
-     *
-     * @return The new fact-handle associated with the object.
-     *
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    FactHandle insert(Object object) throws FactException;
-
-    /**
-     * Insert a fact registering JavaBean <code>PropertyChangeListeners</code>
-     * on the Object to automatically trigger <code>update</code> calls
-     * if <code>dynamic</code> is <code>true</code>.
-     *
-     * @param object
-     *            The fact object.
-     * @param dynamic
-     *            true if Drools should add JavaBean
-     *            <code>PropertyChangeListeners</code> to the object.
-     *
-     * @return The new fact-handle associated with the object.
-     *
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    FactHandle insert(Object object,
-                      boolean dynamic) throws FactException;
-
-    /**
-     * Retract a fact.
-     *
-     * @param handle
-     *            The fact-handle associated with the fact to retract.
-     *
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    void retract(FactHandle handle) throws FactException;
-
-    /**
-     * Inform the WorkingMemory that a Fact has been modified and that it
-     * should now update the network.
-     *
-     * @param handle
-     *            The fact-handle associated with the fact to modify.
-     * @param object
-     *            The new value of the fact.
-     *
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    void update(FactHandle handle,
-                Object object) throws FactException;
-
-    /**
-     *
-     * @param factHandle
-     */
-    public void modifyRetract(final FactHandle factHandle);
-
-    /**
-     *
-     * @param factHandle
-     * @param object
-     */
-    public void modifyInsert(final FactHandle factHandle,
-                             final Object object);
-
-
-
-}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
+import java.io.Externalizable;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.Map;
-import java.io.Externalizable;
 
 import org.drools.process.instance.ProcessInstance;
 import org.drools.process.instance.WorkItemManager;
@@ -234,7 +234,7 @@
      * @throws IllegalArgumentException
      *         if no query named "query" is found in the rulebase
      */
-    public QueryResults getQueryResults(String query, Object[] arguments);
+    public QueryResults getQueryResults(String query, Object[] arguments);  
 
     /**
      * Sets the AsyncExceptionHandler to handle exceptions thrown by the Agenda

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,105 +0,0 @@
-/*
- * Copyright 2007 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Created on Dec 14, 2007
- */
-package org.drools;
-
-import java.io.Externalizable;
-
-/**
- * An interface for instances that allow handling of entry-point-scoped
- * facts
- *  
- * @author etirelli
- */
-public interface WorkingMemoryEntryPoint
-    extends
-    Externalizable {
-    /**
-     * Assert a fact.
-     * 
-     * @param object
-     *            The fact object.
-     * 
-     * @return The new fact-handle associated with the object.
-     * 
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    FactHandle insert(Object object) throws FactException;
-
-    /**
-     * Insert a fact registering JavaBean <code>PropertyChangeListeners</code>
-     * on the Object to automatically trigger <code>update</code> calls
-     * if <code>dynamic</code> is <code>true</code>.
-     * 
-     * @param object
-     *            The fact object.
-     * @param dynamic
-     *            true if Drools should add JavaBean
-     *            <code>PropertyChangeListeners</code> to the object.
-     * 
-     * @return The new fact-handle associated with the object.
-     * 
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    FactHandle insert(Object object,
-                      boolean dynamic) throws FactException;
-
-    /**
-     * Retract a fact.
-     * 
-     * @param handle
-     *            The fact-handle associated with the fact to retract.
-     * 
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    void retract(FactHandle handle) throws FactException;
-
-    /**
-     * Inform the WorkingMemory that a Fact has been modified and that it
-     * should now update the network.
-     * 
-     * @param handle
-     *            The fact-handle associated with the fact to modify.
-     * @param object
-     *            The new value of the fact.
-     * 
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    void update(FactHandle handle,
-                Object object) throws FactException;
-
-    /**
-     * 
-     * @param factHandle
-     */
-    public void modifyRetract(final FactHandle factHandle);
-
-    /**
-     * 
-     * @param factHandle
-     * @param object
-     */
-    public void modifyInsert(final FactHandle factHandle,
-                             final Object object);
-
-    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name);
-
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2007 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Created on Dec 14, 2007
+ */
+package org.drools;
+
+import java.io.Serializable;
+
+/**
+ * An interface for instances that allow handling of entry-point-scoped
+ * facts
+ *  
+ * @author etirelli
+ */
+public interface WorkingMemoryEntryPoint
+    extends
+    Serializable {
+    /**
+     * Assert a fact.
+     * 
+     * @param object
+     *            The fact object.
+     * 
+     * @return The new fact-handle associated with the object.
+     * 
+     * @throws FactException
+     *             If a RuntimeException error occurs.
+     */
+    FactHandle insert(Object object) throws FactException;
+    
+    /**
+     * Insert a fact registering JavaBean <code>PropertyChangeListeners</code>
+     * on the Object to automatically trigger <code>update</code> calls
+     * if <code>dynamic</code> is <code>true</code>.
+     * 
+     * @param object
+     *            The fact object.
+     * @param dynamic
+     *            true if Drools should add JavaBean
+     *            <code>PropertyChangeListeners</code> to the object.
+     * 
+     * @return The new fact-handle associated with the object.
+     * 
+     * @throws FactException
+     *             If a RuntimeException error occurs.
+     */
+    FactHandle insert(Object object,
+                            boolean dynamic) throws FactException;
+    
+    /**
+     * Retract a fact.
+     * 
+     * @param handle
+     *            The fact-handle associated with the fact to retract.
+     * 
+     * @throws FactException
+     *             If a RuntimeException error occurs.
+     */
+    void retract(FactHandle handle) throws FactException;
+
+    /**
+     * Inform the WorkingMemory that a Fact has been modified and that it
+     * should now update the network.
+     * 
+     * @param handle
+     *            The fact-handle associated with the fact to modify.
+     * @param object
+     *            The new value of the fact.
+     * 
+     * @throws FactException
+     *             If a RuntimeException error occurs.
+     */
+    void update(FactHandle handle,
+                      Object object) throws FactException;
+    
+    /**
+     * 
+     * @param factHandle
+     */
+    public void modifyRetract(final FactHandle factHandle);
+    
+    /**
+     * 
+     * @param factHandle
+     * @param object
+     */
+    public void modifyInsert(final FactHandle factHandle,
+                             final Object object); 
+    
+    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name);    
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,14 +1,11 @@
 package org.drools.agent;
 
-import org.drools.RuntimeDroolsException;
-import org.drools.common.DroolsObjectOutputStream;
-import org.drools.rule.Package;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.UnsupportedEncodingException;
 import java.io.ObjectOutput;
-import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLEncoder;
@@ -18,6 +15,10 @@
 import java.util.Map;
 import java.util.Properties;
 
+import org.drools.RuntimeDroolsException;
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.rule.Package;
+
 public class URLScanner extends PackageProvider {
 
     //this is the URLs we are managing

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,17 +16,21 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Externalizable;
+import java.lang.reflect.Method;
+
 import org.drools.RuntimeDroolsException;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.InternalWorkingMemory;
 import org.drools.common.DroolsObjectInput;
-import org.drools.common.InternalWorkingMemory;
 import org.drools.spi.FieldExtractor;
 import org.drools.util.ClassUtils;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.lang.reflect.Method;
-
 /**
  * This provides access to fields, and what their numerical index/object type is.
  * This is basically a wrapper class around dynamically generated subclasses of

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultConsequenceExceptionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultConsequenceExceptionHandler.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultConsequenceExceptionHandler.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -21,7 +21,6 @@
     public void handleException(Activation activation,
                                 WorkingMemory workingMemory,
                                 Exception exception) {
-        exception.printStackTrace();
         throw new ConsequenceException( exception,
                                         activation.getRule() );
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -27,13 +27,14 @@
 import org.drools.spi.KnowledgeHelper;
 import org.drools.spi.Tuple;
 
+import java.io.Externalizable;
 import java.io.IOException;
+import java.io.ObjectOutput;
 import java.io.ObjectInput;
-import java.io.ObjectOutput;
 
 public class DefaultKnowledgeHelper
     implements
-    KnowledgeHelper {
+    KnowledgeHelper, Externalizable {
 
     private static final long                  serialVersionUID = 400L;
 
@@ -44,8 +45,8 @@
     private InternalWorkingMemoryActions workingMemory;
 
     public DefaultKnowledgeHelper() {
+
     }
-
     public DefaultKnowledgeHelper(final WorkingMemory workingMemory) {
         this.workingMemory = (InternalWorkingMemoryActions) workingMemory;
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,21 +16,21 @@
  * limitations under the License.
  */
 
+import java.util.List;
+
 import org.drools.FactException;
 import org.drools.FactHandle;
+import org.drools.QueryResults;
 import org.drools.WorkingMemory;
 import org.drools.common.InternalWorkingMemoryActions;
 import org.drools.rule.Declaration;
 import org.drools.rule.GroupElement;
 import org.drools.rule.Rule;
 import org.drools.spi.Activation;
+import org.drools.spi.AgendaGroup;
 import org.drools.spi.KnowledgeHelper;
 import org.drools.spi.Tuple;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
 public class SequentialKnowledgeHelper
     implements
     KnowledgeHelper {
@@ -41,27 +41,8 @@
     private GroupElement                       subrule;
     private Activation                         activation;
     private Tuple                              tuple;
-    private InternalWorkingMemoryActions workingMemory;
+    private final InternalWorkingMemoryActions workingMemory;
 
-    public SequentialKnowledgeHelper() {
-    }
-
-    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        rule            = (Rule)in.readObject();
-        subrule         = (GroupElement)in.readObject();
-        activation      = (Activation)in.readObject();
-        tuple           = (Tuple)in.readObject();
-        workingMemory   = (InternalWorkingMemoryActions)in.readObject();
-
-    }
-    public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(rule);
-        out.writeObject(subrule);
-        out.writeObject(activation);
-        out.writeObject(tuple);
-        out.writeObject(workingMemory);
-    }
-
     public SequentialKnowledgeHelper(final WorkingMemory workingMemory) {
         this.workingMemory = (InternalWorkingMemoryActions) workingMemory;
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MVELDataProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MVELDataProvider.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MVELDataProvider.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -71,7 +71,8 @@
 
         //this.expression.
         final Object result = MVEL.executeExpression( this.expression,
-                                                      factory );
+                                                      factory );                
+        
         if ( result == null ) {
             return Collections.EMPTY_LIST.iterator();
         } else if ( result instanceof Collection ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,16 +17,15 @@
  */
 package org.drools.base.evaluators;
 
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.Comparator;
 import java.util.Date;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
 
 import org.drools.base.BaseEvaluator;
-import org.drools.base.ShadowProxy;
 import org.drools.base.ValueType;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.rule.VariableRestriction.CharVariableContextEntry;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,11 +17,10 @@
  */
 package org.drools.base.evaluators;
 
-import java.util.Date;
-import java.util.Map;
-import java.io.ObjectInput;
 import java.io.IOException;
+import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Date;
 
 import org.drools.base.BaseEvaluator;
 import org.drools.base.ShadowProxy;
@@ -154,7 +153,6 @@
      *           Evaluator Implementations
      *  *********************************************************
      */
-
     public static class ArrayEqualEvaluator extends BaseEvaluator {
 
         private static final long     serialVersionUID = 400L;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,9 @@
 
 package org.drools.base.field;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
 import org.drools.RuntimeDroolsException;
 import org.drools.spi.FieldValue;
 
@@ -23,8 +26,6 @@
 import java.io.ObjectInput;
 import java.io.IOException;
 import java.io.ObjectOutput;
-import java.math.BigDecimal;
-import java.math.BigInteger;
 
 /**
  * @author etirelli
@@ -137,13 +138,13 @@
         return false;
     }
 
-    public BigDecimal getBigDecimalValue() {
-        throw new RuntimeDroolsException( "Conversion to BigDecimal not supported for type boolean" );
-    }
+	public BigDecimal getBigDecimalValue() {
+		throw new RuntimeDroolsException( "Conversion to BigDecimal not supported for type boolean" );
+	}
 
-    public BigInteger getBigIntegerValue() {
-        throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type boolean" );
-    }
+	public BigInteger getBigIntegerValue() {
+		throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type boolean" );
+	}
 
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,5 +1,8 @@
 package org.drools.base.field;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
 import org.drools.RuntimeDroolsException;
 import org.drools.spi.FieldValue;
 
@@ -7,8 +10,6 @@
 import java.io.ObjectInput;
 import java.io.IOException;
 import java.io.ObjectOutput;
-import java.math.BigDecimal;
-import java.math.BigInteger;
 
 public class DoubleFieldImpl
     implements
@@ -116,12 +117,12 @@
         return false;
     }
 
-    public BigDecimal getBigDecimalValue() {
-        return new BigDecimal(this.value);
-    }
+	public BigDecimal getBigDecimalValue() {
+		return new BigDecimal(this.value);
+	}
 
-    public BigInteger getBigIntegerValue() {
-        throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type double" );
-    }
+	public BigInteger getBigIntegerValue() {
+		throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type double" );
+	}
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,5 +1,8 @@
 package org.drools.base.field;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
 import org.drools.RuntimeDroolsException;
 import org.drools.spi.FieldValue;
 
@@ -7,8 +10,6 @@
 import java.io.ObjectInput;
 import java.io.IOException;
 import java.io.ObjectOutput;
-import java.math.BigDecimal;
-import java.math.BigInteger;
 
 public class LongFieldImpl
     implements
@@ -117,12 +118,12 @@
         return false;
     }
 
-    public BigDecimal getBigDecimalValue() {
-        return new BigDecimal(this.value);
-    }
+	public BigDecimal getBigDecimalValue() {
+		return new BigDecimal(this.value);
+	}
 
-    public BigInteger getBigIntegerValue() {
-        return BigInteger.valueOf(this.value);
-    }
+	public BigInteger getBigIntegerValue() {
+		return BigInteger.valueOf(this.value);
+	}
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -20,9 +20,9 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
-import java.util.Collection;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.util.Collection;
 
 import org.drools.RuntimeDroolsException;
 import org.drools.spi.FieldValue;
@@ -33,6 +33,7 @@
     Externalizable {
 
     private static final long serialVersionUID = 400L;
+
     private Object            value;
 
     // the isEnum attribute is used to support jdk 1.4 type safe enums, and so

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,16 +16,17 @@
  * limitations under the License.
  */
 
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
+
 import org.drools.WorkingMemory;
 import org.drools.spi.FactHandleFactory;
 import org.drools.util.PrimitiveLongStack;
 
 import java.io.Externalizable;
-import java.io.IOException;
 import java.io.ObjectInput;
+import java.io.IOException;
 import java.io.ObjectOutput;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
 
 public abstract class AbstractFactHandleFactory
     implements
@@ -36,38 +37,37 @@
      */
     private static final long          serialVersionUID = 400L;
 
-    protected PrimitiveLongStack factHandlePool   = new PrimitiveLongStack();
+//    protected final PrimitiveLongStack factHandlePool   = new PrimitiveLongStack();
 
     /** The fact id. */
     private AtomicInteger              id;
 
     /** The number of facts created - used for recency. */
     private AtomicLong                 counter;
-
+    
     public AbstractFactHandleFactory() {
         this.id = new AtomicInteger(-1);
         this.counter = new AtomicLong(-1);
     }
 
+
     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        id      = (AtomicInteger)in.readObject();
-        counter = (AtomicLong)in.readObject();
-        factHandlePool  = (PrimitiveLongStack)in.readObject();
+        id  = (AtomicInteger) in.readObject();
+        counter = (AtomicLong) in.readObject();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
         out.writeObject(id);
         out.writeObject(counter);
-        out.writeObject(factHandlePool);
     }
 
     /* (non-Javadoc)
-     * @see org.drools.reteoo.FactHandleFactory#newFactHandle()
-     */
+    * @see org.drools.reteoo.FactHandleFactory#newFactHandle()
+    */
     public final InternalFactHandle newFactHandle(final Object object,
                                                   final boolean isEvent,
                                                   final WorkingMemory workingMemory) {
-// @FIXME make id re-cycling thread safe
+// @FIXME make id re-cycling thread safe        
 //        if ( !this.factHandlePool.isEmpty() ) {
 //            return newFactHandle( this.factHandlePool.pop(),
 //                                  object,
@@ -75,7 +75,6 @@
 //                                  0,
 //                                  workingMemory );
 //        }
-
         return newFactHandle( this.id.incrementAndGet(),
                               object,
                               isEvent,
@@ -113,7 +112,7 @@
     }
 
     public void destroyFactHandle(final InternalFactHandle factHandle) {
-// @FIXME make id re-cycling thread safe
+// @FIXME make id re-cycling thread safe                
 //        this.factHandlePool.push( factHandle.getId() );
         factHandle.invalidate();
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -71,50 +71,50 @@
     // ------------------------------------------------------------
     // Instance members
     // ------------------------------------------------------------
-    protected String                                id;
+    protected String                                   id;
 
-    protected int                                   workingMemoryCounter;
+    protected int                                      workingMemoryCounter;
 
-    protected RuleBaseConfiguration                 config;
+    protected RuleBaseConfiguration                    config;
 
-    protected Map<String, Package>                  pkgs;
+    protected Map<String, Package>                     pkgs;
 
-    protected Map                                   processes;
+    protected Map                                      processes;
 
-    protected Map                                   agendaGroupRuleTotals;
+    protected Map                                      agendaGroupRuleTotals;
 
-    protected transient CompositePackageClassLoader packageClassLoader;
+    protected transient CompositePackageClassLoader    packageClassLoader;
 
-    protected transient MapBackedClassLoader        classLoader;
+    protected transient MapBackedClassLoader           classLoader;
 
-    private transient Objenesis                     objenesis;
+    private transient Objenesis                        objenesis;
 	
     /** The fact handle factory. */
-    protected FactHandleFactory                     factHandleFactory;
+    protected FactHandleFactory                        factHandleFactory;
 
-    protected Map                                   globals;
+    protected Map                                      globals;
 
-    private ReloadPackageCompilationData            reloadPackageCompilationData = null;
+    private ReloadPackageCompilationData               reloadPackageCompilationData = null;
 
-    private RuleBaseEventSupport                    eventSupport                 = new RuleBaseEventSupport( this );
+    private RuleBaseEventSupport                       eventSupport                 = new RuleBaseEventSupport( this );
 
     /**
      * WeakHashMap to keep references of WorkingMemories but allow them to be
      * garbage collected
      */
-    protected transient ObjectHashSet               statefulSessions;
+    protected transient ObjectHashSet                  statefulSessions;
 
     // wms used for lock list during dynamic updates
-    InternalWorkingMemory[]                         wms;
+    InternalWorkingMemory[]                            wms;
 
     // indexed used to track invariant lock
-    int                                             lastAquiredLock;
+    int                                                lastAquiredLock;
 
     // lock for entire rulebase, used for dynamic updates
-    protected ReentrantLock                   lock                         = new ReentrantLock();
+    protected ReentrantLock                            lock                         = new ReentrantLock();
 
-    private int                                     additionsSinceLock;
-    private int                                     removalsSinceLock;
+    private int                                        additionsSinceLock;
+    private int                                        removalsSinceLock;
 
     private transient Map<Class< ? >, TypeDeclaration> classTypeDeclaration;
 
@@ -174,18 +174,17 @@
      *
      */
     public void writeExternal(final ObjectOutput out) throws IOException {
-        ObjectOutput            droolsStream;
-        boolean                 isDrools    = out instanceof DroolsObjectOutputStream;
-        ByteArrayOutputStream   bytes;
+        ObjectOutput droolsStream;
+        boolean isDrools = out instanceof DroolsObjectOutputStream;
+        ByteArrayOutputStream bytes;
 
-        if (isDrools) {
-            droolsStream    = out;
-            bytes           = null;
+        if ( isDrools ) {
+            droolsStream = out;
+            bytes = null;
+        } else {
+            bytes = new ByteArrayOutputStream();
+            droolsStream = new DroolsObjectOutputStream( bytes );
         }
-        else {
-            bytes           = new ByteArrayOutputStream();
-            droolsStream    = new DroolsObjectOutputStream(bytes);
-        }
 
         droolsStream.writeObject( this.pkgs );
         droolsStream.writeObject( this.config );
@@ -194,24 +193,23 @@
         // Rules must be restored by an ObjectInputStream that can resolve using a given ClassLoader to handle seaprately by storing as
         // a byte[]
         droolsStream.writeObject( this.id );
-        droolsStream.writeInt(workingMemoryCounter);
+        droolsStream.writeInt( workingMemoryCounter );
         droolsStream.writeObject( this.processes );
         droolsStream.writeObject( this.agendaGroupRuleTotals );
         droolsStream.writeObject( this.factHandleFactory );
         droolsStream.writeObject( this.globals );
-        droolsStream.writeObject(reloadPackageCompilationData);
+        droolsStream.writeObject( reloadPackageCompilationData );
 
         this.eventSupport.removeEventListener( RuleBaseEventListener.class );
         droolsStream.writeObject( this.eventSupport );
-        droolsStream.writeObject(wms);
-        droolsStream.writeInt(lastAquiredLock);
-        droolsStream.writeObject(lock);
-        droolsStream.writeInt(additionsSinceLock);
-        droolsStream.writeInt(removalsSinceLock);
-        droolsStream.writeObject(classTypeDeclaration);
-        if (!isDrools) {
+        droolsStream.writeObject( wms );
+        droolsStream.writeInt( lastAquiredLock );
+        droolsStream.writeObject( lock );
+        droolsStream.writeInt( additionsSinceLock );
+        droolsStream.writeInt( removalsSinceLock );
+        if ( !isDrools ) {
             bytes.close();
-            out.writeObject(bytes.toByteArray());
+            out.writeObject( bytes.toByteArray() );
         }
     }
 
@@ -222,34 +220,35 @@
      *
      */
     public void readExternal(final ObjectInput in) throws IOException,
-                                                      ClassNotFoundException {
+                                                  ClassNotFoundException {
         // PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
-        DroolsObjectInput   droolsStream    = null;
-        boolean             isDrools    = in instanceof DroolsObjectInputStream;
+        DroolsObjectInput droolsStream = null;
+        boolean isDrools = in instanceof DroolsObjectInputStream;
 
-        if (isDrools) {
-            droolsStream    = (DroolsObjectInput)in;
+        if ( isDrools ) {
+            droolsStream = (DroolsObjectInput) in;
         } else {
-            byte[]  bytes   = (byte[])in.readObject();
+            byte[] bytes = (byte[]) in.readObject();
 
-            droolsStream    = new DroolsObjectInputStream(new ByteArrayInputStream(bytes));
+            droolsStream = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ) );
         }
         this.pkgs = (Map) droolsStream.readObject();
         this.config = (RuleBaseConfiguration) droolsStream.readObject();
 
         Map store = (Map) droolsStream.readObject();
         this.packageClassLoader = new CompositePackageClassLoader( droolsStream.getClassLoader() );
-        droolsStream.setClassLoader(packageClassLoader);
-        this.classLoader = new MapBackedClassLoader( this.packageClassLoader, store );
+        droolsStream.setClassLoader( packageClassLoader );
+        this.classLoader = new MapBackedClassLoader( this.packageClassLoader,
+                                                     store );
         this.packageClassLoader.addClassLoader( this.classLoader );
         this.objenesis = createObjenesis();
 
-        for ( final Object object : this.pkgs.values()) {
+        for ( final Object object : this.pkgs.values() ) {
             this.packageClassLoader.addClassLoader( ((Package) object).getDialectDatas().getClassLoader() );
         }
         // PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
         this.id = (String) droolsStream.readObject();
-        this.workingMemoryCounter   = droolsStream.readInt();
+        this.workingMemoryCounter = droolsStream.readInt();
 
         this.config.setClassLoader( droolsStream.getClassLoader() );
 
@@ -257,22 +256,23 @@
         this.agendaGroupRuleTotals = (Map) droolsStream.readObject();
         this.factHandleFactory = (FactHandleFactory) droolsStream.readObject();
         this.globals = (Map) droolsStream.readObject();
-        this.reloadPackageCompilationData   = (ReloadPackageCompilationData)droolsStream.readObject();
+        this.reloadPackageCompilationData = (ReloadPackageCompilationData) droolsStream.readObject();
 
         this.eventSupport = (RuleBaseEventSupport) droolsStream.readObject();
         this.eventSupport.setRuleBase( this );
         this.statefulSessions = new ObjectHashSet();
 
-        wms     = (InternalWorkingMemory[])droolsStream.readObject();
+        wms = (InternalWorkingMemory[]) droolsStream.readObject();
         lastAquiredLock = droolsStream.readInt();
-        lock            = (ReentrantLock)droolsStream.readObject();
-        additionsSinceLock  = droolsStream.readInt();
-        removalsSinceLock   = droolsStream.readInt();
-        classTypeDeclaration    = (Map<Class< ? >, TypeDeclaration>)droolsStream.readObject();
+        lock = (ReentrantLock) droolsStream.readObject();
+        additionsSinceLock = droolsStream.readInt();
+        removalsSinceLock = droolsStream.readInt();
 
-        if (!isDrools) {
+        if ( !isDrools ) {
             droolsStream.close();
         }
+
+        this.populateTypeDeclarationMaps();
     }
 
 	/**
@@ -288,10 +288,11 @@
 	}
 
     private void populateTypeDeclarationMaps() {
-        this.classTypeDeclaration = new HashMap<Class<?>, TypeDeclaration>();
-        for( Package pkg : this.pkgs.values() ) {
-            for( TypeDeclaration type : pkg.getTypeDeclarations().values() ) {
-                this.classTypeDeclaration.put( type.getTypeClass(), type );
+        this.classTypeDeclaration = new HashMap<Class< ? >, TypeDeclaration>();
+        for ( Package pkg : this.pkgs.values() ) {
+            for ( TypeDeclaration type : pkg.getTypeDeclarations().values() ) {
+                this.classTypeDeclaration.put( type.getTypeClass(),
+                                               type );
             }
         }
     }
@@ -532,7 +533,8 @@
 
             // remove the rule if it already exists
             if ( pkg.getRule( newRule.getName() ) != null ) {
-                removeRule( pkg, pkg.getRule( newRule.getName() ) );
+                removeRule( pkg,
+                            pkg.getRule( newRule.getName() ) );
             }
 
             pkg.addRule( newRule );
@@ -775,16 +777,16 @@
                                                                                       this.packageClassLoader );
         streamWithLoader.setRuleBase( this );
 
-        final StatefulSession session = (StatefulSession) streamWithLoader.readObject();
+        final StatefulSession session = (StatefulSession) streamWithLoader.readObject();                
 
         synchronized ( this.pkgs ) {
             ((InternalWorkingMemory) session).setRuleBase( this );
             ((InternalWorkingMemory) session).setId( (nextWorkingMemoryCounter()) );
+                        
 
-
             ExecutorService executor = ExecutorServiceFactory.createExecutorService( this.config.getExecutorService() );
-            executor.setCommandExecutor( new CommandExecutor( session ) );
-            ((InternalWorkingMemory) session).setExecutorService( executor );
+            executor.setCommandExecutor( new CommandExecutor( session ) );            
+            ((InternalWorkingMemory) session).setExecutorService( executor );            
 
             if ( keepReference ) {
                 addStatefulSession( session );
@@ -851,12 +853,13 @@
         private static final long serialVersionUID = 1L;
         private Set               set;
 
-        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-            set = (Set)in.readObject();
+        public void readExternal(ObjectInput in) throws IOException,
+                                                ClassNotFoundException {
+            set = (Set) in.readObject();
         }
 
         public void writeExternal(ObjectOutput out) throws IOException {
-            out.writeObject(set);
+            out.writeObject( set );
         }
 
         public void addDialectDatas(final DialectDatas dialectDatas) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,29 @@
  * limitations under the License.
  */
 
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
 import org.drools.Agenda;
 import org.drools.FactException;
 import org.drools.FactHandle;
@@ -24,11 +47,11 @@
 import org.drools.QueryResults;
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
-import org.drools.RuleBaseConfiguration.AssertBehaviour;
-import org.drools.RuleBaseConfiguration.LogicalOverride;
 import org.drools.RuntimeDroolsException;
 import org.drools.WorkingMemory;
 import org.drools.WorkingMemoryEntryPoint;
+import org.drools.RuleBaseConfiguration.AssertBehaviour;
+import org.drools.RuleBaseConfiguration.LogicalOverride;
 import org.drools.base.MapGlobalResolver;
 import org.drools.base.ShadowProxy;
 import org.drools.concurrent.ExecutorService;
@@ -50,7 +73,6 @@
 import org.drools.rule.EntryPoint;
 import org.drools.rule.Rule;
 import org.drools.rule.TimeMachine;
-import org.drools.rule.TypeDeclaration;
 import org.drools.ruleflow.core.RuleFlowProcess;
 import org.drools.ruleflow.instance.RuleFlowProcessInstanceFactory;
 import org.drools.spi.Activation;
@@ -61,28 +83,6 @@
 import org.drools.spi.GlobalResolver;
 import org.drools.spi.PropagationContext;
 
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
 /**
  * Implementation of <code>WorkingMemory</code>.
  *
@@ -94,7 +94,7 @@
     implements
     InternalWorkingMemoryActions,
     EventSupport,
-    PropertyChangeListener {
+    PropertyChangeListener, Externalizable {
     // ------------------------------------------------------------
     // Constants
     // ------------------------------------------------------------
@@ -104,7 +104,7 @@
     // ------------------------------------------------------------
     // Instance members
     // ------------------------------------------------------------
-    protected long                                       id;
+    protected long                                      id;
 
     /** The arguments used when adding/removing a property change listener. */
     protected Object[]                             addRemovePropertyChangeListenerArgs           = new Object[]{this};
@@ -114,33 +114,33 @@
 
     protected ObjectStore                          objectStore;
 
-    protected Map                                        queryResults                                  = Collections.EMPTY_MAP;
+    protected Map                                       queryResults                                  = Collections.EMPTY_MAP;
 
     /** Global values which are associated with this memory. */
-    protected GlobalResolver                             globalResolver;
+    protected GlobalResolver                            globalResolver;
 
     /** The eventSupport */
-    protected WorkingMemoryEventSupport                  workingMemoryEventSupport                     = new WorkingMemoryEventSupport();
+    protected WorkingMemoryEventSupport                 workingMemoryEventSupport                     = new WorkingMemoryEventSupport();
 
-    protected AgendaEventSupport                         agendaEventSupport                            = new AgendaEventSupport();
+    protected AgendaEventSupport                        agendaEventSupport                            = new AgendaEventSupport();
 
-    protected RuleFlowEventSupport                       workflowEventSupport                          = new RuleFlowEventSupport();
+    protected RuleFlowEventSupport                      workflowEventSupport                          = new RuleFlowEventSupport();
 
-    protected List                                       __ruleBaseEventListeners                      = new LinkedList();
+    protected List                                      __ruleBaseEventListeners                      = new LinkedList();
 
     /** The <code>RuleBase</code> with which this memory is associated. */
-    protected transient InternalRuleBase                 ruleBase;
+    protected transient InternalRuleBase                ruleBase;
 
     protected FactHandleFactory                    handleFactory;
 
     protected TruthMaintenanceSystem               tms;
 
     /** Rule-firing agenda. */
-    protected DefaultAgenda                              agenda;
+    protected DefaultAgenda                             agenda;
 
     protected Queue<WorkingMemoryAction>           actionQueue                                   = new LinkedList<WorkingMemoryAction>();
 
-    protected boolean                                   evaluatingActionQueue;
+    protected boolean                                    evaluatingActionQueue;
 
     protected ReentrantLock                        lock                                          = new ReentrantLock();
 
@@ -152,7 +152,6 @@
     protected AtomicLong                                propagationIdCounter;
 
     private boolean                                maintainTms;
-
     private boolean                                sequential;
 
     private List                                        liaPropagations                               = Collections.EMPTY_LIST;
@@ -183,6 +182,7 @@
     // Constructors
     // ------------------------------------------------------------
     public AbstractWorkingMemory() {
+
     }
     /**
      * Construct.
@@ -224,20 +224,20 @@
 
         this.workItemManager = new WorkItemManager( this );
         this.processInstanceFactories.put( RuleFlowProcess.RULEFLOW_TYPE,
-                                           new RuleFlowProcessInstanceFactory() );
+                                           new RuleFlowProcessInstanceFactory() );        
         this.entryPoints = new ConcurrentHashMap();
         this.entryPoints.put( "DEFAULT",
                               this );
 
         this.entryPoint = EntryPoint.DEFAULT;
         initTransient();
-    }
-
+    }        
+    
     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         id  = in.readLong();
         evaluatingActionQueue = in.readBoolean();
         discardOnLogicalOverride = in.readBoolean();
-        propagationIdCounter = (AtomicLong)in.readObject();
+        propagationIdCounter = (AtomicLong) in.readObject();
         maintainTms = in.readBoolean();
         sequential = in.readBoolean();
         firing = in.readBoolean();
@@ -264,6 +264,7 @@
         processInstanceFactories = (Map<String, ProcessInstanceFactory>)in.readObject();
         timeMachine = (TimeMachine)in.readObject();
         entryPoint = (EntryPoint)in.readObject();
+        entryPointNode = (EntryPointNode)in.readObject();
         entryPoints = (Map<String, WorkingMemoryEntryPoint>)in.readObject();
         initTransient();
     }
@@ -299,6 +300,7 @@
         out.writeObject(processInstanceFactories);
         out.writeObject(timeMachine);
         out.writeObject(entryPoint);
+        out.writeObject(entryPointNode);
         out.writeObject(entryPoints);
     }
 
@@ -311,14 +313,14 @@
         this.nodeMemories.setRuleBaseReference( this.ruleBase );
         initTransient();
     }
+    
 
-
     private void initTransient() {
         this.entryPointNode = this.ruleBase.getRete().getEntryPointNode( this.entryPoint );
         this.typeConfReg = new ObjectTypeConfigurationRegistry( this.ruleBase );
     }
+        
 
-
     public void setWorkingMemoryEventSupport(WorkingMemoryEventSupport workingMemoryEventSupport) {
         this.workingMemoryEventSupport = workingMemoryEventSupport;
     }
@@ -836,7 +838,7 @@
                             key.setStatus( EqualityKey.STATED );
                             handle = key.getFactHandle();
 
-                            if ( this.ruleBase.getConfiguration().getAssertBehaviour() == AssertBehaviour.IDENTITY ) {
+                            if ( AssertBehaviour.IDENTITY.equals(this.ruleBase.getConfiguration().getAssertBehaviour()) ) {
                                 // as assertMap may be using an "identity"
                                 // equality comparator,
                                 // we need to remove the handle from the map,
@@ -1235,6 +1237,12 @@
                 null );
     }
 
+    /**
+     * modify is implemented as half way retract / assert due to the truth
+     * maintenance issues.
+     *
+     * @see WorkingMemory
+     */
     public void update(final FactHandle factHandle,
                        final Object object,
                        final Rule rule,
@@ -1280,7 +1288,7 @@
                                                typeConf,
                                                this );
 
-            if ( (originalObject != object) || (this.ruleBase.getConfiguration().getAssertBehaviour() != AssertBehaviour.IDENTITY) ) {
+            if ( originalObject != object || !AssertBehaviour.IDENTITY.equals(this.ruleBase.getConfiguration().getAssertBehaviour()) ) {
                 this.objectStore.removeHandle( handle );
 
                 // set anyway, so that it updates the hashCodes
@@ -1341,7 +1349,7 @@
             evaluatingActionQueue = true;
             WorkingMemoryAction action = null;
 
-            while ( (action = actionQueue.poll()) != null ) {
+            while ( ( action = actionQueue.poll() ) != null ) {
                 action.execute( this );
             }
             evaluatingActionQueue = false;
@@ -1651,7 +1659,4 @@
         return this.typeConfReg;
     }
 
-    public TypeDeclaration getTypeDeclaration(Class<?> clazz) {
-        return null;
-    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BaseNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BaseNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BaseNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -72,14 +72,14 @@
     public abstract void attach();
 
     public abstract void attach(InternalWorkingMemory[] workingMemories);
-
+    
     /**
-     * A method that is called for all nodes whose network bellow them
+     * A method that is called for all nodes whose network bellow them 
      * changed, after the change is complete, providing them with an oportunity
      * for state update
      */
     public abstract void networkUpdated();
-
+    
     public void remove(RuleRemovalContext context,
                        ReteooBuilder builder,
                        BaseNode node,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -56,7 +56,7 @@
      * @param timestamp the timestamp of the occurrence of this event
      * @param duration the duration of this event. May be 0 (zero) in case this is a primitive event.
      */
-    public EventFactHandle( final int id,
+    public EventFactHandle( final int id, 
                             final Object object,
                             final long recency,
                             final long timestamp,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -120,7 +120,7 @@
 
 	/**
 	 * Returns the type declaration associated to the given class
-	 *
+	 * 
 	 * @param clazz
 	 * @return
 	 */

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,5 +1,7 @@
 package org.drools.common;
 
+import java.util.concurrent.locks.Lock;
+
 import org.drools.FactException;
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
@@ -16,15 +18,13 @@
 import org.drools.spi.FactHandleFactory;
 import org.drools.spi.PropagationContext;
 
-import java.util.concurrent.locks.Lock;
-
 public interface InternalWorkingMemory
     extends
     WorkingMemory {
     public long getId();
-
+    
     public void setId(long id);
-
+    
     void setRuleBase(final InternalRuleBase ruleBase);
 
     public void setWorkingMemoryEventSupport(WorkingMemoryEventSupport workingMemoryEventSupport);
@@ -34,7 +34,7 @@
     public void setAgendaEventSupport(AgendaEventSupport agendaEventSupport);
 
     public void setRuleFlowEventSupport(RuleFlowEventSupport ruleFlowEventSupport);
-
+    
     public void registerProcessInstanceFactory(String type, ProcessInstanceFactory nodeInstanceFactory);
 
     public Object getNodeMemory(NodeMemory node);
@@ -44,7 +44,7 @@
     public long getNextPropagationIdCounter();
 
     //public ObjectHashMap getFactHandleMap()
-
+    
     public ObjectStore getObjectStore();
 
     public TruthMaintenanceSystem getTruthMaintenanceSystem();
@@ -54,7 +54,7 @@
     public void queueWorkingMemoryAction(final WorkingMemoryAction action);
 
     public FactHandleFactory getFactHandleFactory();
-
+    
     /**
      * Looks for the fact handle associated to the given object
      * by looking up the object IDENTITY (==), even if rule base
@@ -84,11 +84,11 @@
 	public TimeMachine getTimeMachine();
 
 	public void setTimeMachine(TimeMachine tm);
-
+    
     public void removeProcessInstance(ProcessInstance processInstance);
+       
 
-
     public ExecutorService getExecutorService();
 
-    public void setExecutorService(ExecutorService executor);
+    public void setExecutorService(ExecutorService executor);    
 }

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,7 +0,0 @@
-package org.drools.common;
-
-import org.drools.WorkingMemoryEntryPoint;
-
-public interface InternalWorkingMemoryEntryPoint extends WorkingMemoryEntryPoint {
-    ObjectTypeConfigurationRegistry getObjectTypeConfigurationRegistry();
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,7 @@
+package org.drools.common;
+
+import org.drools.WorkingMemoryEntryPoint;
+
+public interface InternalWorkingMemoryEntryPoint extends WorkingMemoryEntryPoint {
+    ObjectTypeConfigurationRegistry getObjectTypeConfigurationRegistry();
+}

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,495 +0,0 @@
-/**
- * 
- */
-package org.drools.common;
-
-import org.drools.FactException;
-import org.drools.FactHandle;
-import org.drools.RuleBaseConfiguration.AssertBehaviour;
-import org.drools.RuntimeDroolsException;
-import org.drools.WorkingMemory;
-import org.drools.WorkingMemoryEntryPoint;
-import org.drools.base.ShadowProxy;
-import org.drools.reteoo.EntryPointNode;
-import org.drools.reteoo.ObjectTypeConf;
-import org.drools.rule.EntryPoint;
-import org.drools.rule.Rule;
-import org.drools.spi.Activation;
-import org.drools.spi.FactHandleFactory;
-import org.drools.spi.PropagationContext;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.concurrent.locks.ReentrantLock;
-
-public class NamedEntryPoint
-    implements
-    InternalWorkingMemoryEntryPoint {
-    /** The arguments used when adding/removing a property change listener. */
-    protected final Object[]                addRemovePropertyChangeListenerArgs = new Object[]{this};
-
-    private static final long               serialVersionUID                    = 500;
-
-    protected ObjectStore                   objectStore;
-
-    protected transient InternalRuleBase    ruleBase;
-
-    protected EntryPoint                    entryPoint;
-    protected EntryPointNode                entryPointNode;
-
-    private ObjectTypeConfigurationRegistry typeConfReg;
-
-    private AbstractWorkingMemory     wm;
-
-    private FactHandleFactory               handleFactory;
-
-    protected ReentrantLock           lock;
-
-    public NamedEntryPoint() {
-    }
-
-    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        objectStore     = (ObjectStore)in.readObject();
-        entryPoint      = (EntryPoint)in.readObject();
-        entryPointNode      = (EntryPointNode)in.readObject();
-        typeConfReg      = (ObjectTypeConfigurationRegistry)in.readObject();
-        wm      = (AbstractWorkingMemory)in.readObject();
-        handleFactory      = (FactHandleFactory)in.readObject();
-        lock      = (ReentrantLock)in.readObject();
-        
-        ruleBase = (InternalRuleBase)wm.getRuleBase();
-    }
-
-    public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(objectStore);
-        out.writeObject(entryPoint);
-        out.writeObject(entryPointNode);
-        out.writeObject(typeConfReg);
-        out.writeObject(wm);
-        out.writeObject(handleFactory);
-        out.writeObject(lock);
-
-    }
-
-    public NamedEntryPoint(EntryPoint entryPoint,
-                           EntryPointNode entryPointNode,
-                           AbstractWorkingMemory wm) {
-        this( entryPoint,
-              entryPointNode,
-              wm,
-              new ReentrantLock() );
-    }
-
-    public NamedEntryPoint(EntryPoint entryPoint,
-                           EntryPointNode entryPointNode,
-                           AbstractWorkingMemory wm,
-                           ReentrantLock lock) {
-        this.entryPoint = entryPoint;
-        this.entryPointNode = entryPointNode;
-        this.wm = wm;
-        this.ruleBase = (InternalRuleBase) this.wm.getRuleBase();
-        this.lock = lock;
-        this.typeConfReg = new ObjectTypeConfigurationRegistry( this.ruleBase );
-        this.handleFactory = this.wm.getFactHandleFactory();
-        this.objectStore = new SingleThreadedObjectStore( this.ruleBase.getConfiguration(),
-                                                          this.lock );
-    }
-
-    /**
-     * @see WorkingMemory
-     */
-    public FactHandle insert(final Object object) throws FactException {
-        return insert( object, /* Not-Dynamic */
-                       false,
-                       false,
-                       null,
-                       null );
-    }
-
-    public FactHandle insert(final Object object,
-                             final boolean dynamic) throws FactException {
-        return insert( object,
-                       dynamic,
-                       false,
-                       null,
-                       null );
-    }
-
-    protected FactHandle insert(final Object object,
-                                final boolean dynamic,
-                                boolean logical,
-                                final Rule rule,
-                                final Activation activation) throws FactException {
-        if ( object == null ) {
-            // you cannot assert a null object
-            return null;
-        }
-
-        ObjectTypeConf typeConf = this.typeConfReg.getObjectTypeConf( this.entryPoint,
-                                                                      object );
-
-        InternalFactHandle handle = this.handleFactory.newFactHandle( object,
-                                                                      typeConf.isEvent(),
-                                                                      wm );
-        this.objectStore.addHandle( handle,
-                                    object );
-
-        if ( dynamic ) {
-            addPropertyChangeListener( object );
-        }
-
-        try {
-            this.lock.lock();
-            insert( handle,
-                    object,
-                    rule,
-                    activation );
-
-        } finally {
-            this.lock.unlock();
-        }
-        return handle;
-    }
-
-    protected void insert(final InternalFactHandle handle,
-                          final Object object,
-                          final Rule rule,
-                          final Activation activation) {
-        this.ruleBase.executeQueuedActions();
-
-        if ( activation != null ) {
-            // release resources so that they can be GC'ed
-            activation.getPropagationContext().releaseResources();
-        }
-        final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
-                                                                                  PropagationContext.ASSERTION,
-                                                                                  rule,
-                                                                                  activation,
-                                                                                  -1,
-                                                                                  -1,
-                                                                                  this.entryPoint );
-
-        this.entryPointNode.assertObject( handle,
-                                          propagationContext,
-                                          this.typeConfReg.getObjectTypeConf( this.entryPoint,
-                                                                              object ),
-                                          this.wm );
-
-        this.wm.executeQueuedActions();
-
-        this.wm.getWorkingMemoryEventSupport().fireObjectInserted( propagationContext,
-                                                                   handle,
-                                                                   object,
-                                                                   wm );
-    }
-
-    public void update(final FactHandle handle,
-                       final Object object) throws FactException {
-        update( handle,
-                object,
-                null,
-                null );
-    }
-
-    protected void update(final FactHandle factHandle,
-                          final Object object,
-                          final Rule rule,
-                          final Activation activation) throws FactException {
-        try {
-            this.lock.lock();
-            this.ruleBase.executeQueuedActions();
-
-            final InternalFactHandle handle = (InternalFactHandle) factHandle;
-            final Object originalObject = (handle.isShadowFact()) ? ((ShadowProxy) handle.getObject()).getShadowedObject() : handle.getObject();
-
-            if ( handle.getId() == -1 || object == null ) {
-                // the handle is invalid, most likely already retracted, so
-                // return
-                // and we cannot assert a null object
-                return;
-            }
-
-            ObjectTypeConf typeConf = this.typeConfReg.getObjectTypeConf( this.entryPoint,
-                                                                          object );
-
-            if ( activation != null ) {
-                // release resources so that they can be GC'ed
-                activation.getPropagationContext().releaseResources();
-            }
-            // Nowretract any trace of the original fact
-            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
-                                                                                      PropagationContext.MODIFICATION,
-                                                                                      rule,
-                                                                                      activation,
-                                                                                      -1,
-                                                                                      -1,
-                                                                                      this.entryPoint );
-
-            this.entryPointNode.retractObject( handle,
-                                               propagationContext,
-                                               typeConf,
-                                               this.wm );
-
-            if ( (originalObject != object) || (this.ruleBase.getConfiguration().getAssertBehaviour() != AssertBehaviour.IDENTITY) ) {
-                this.objectStore.removeHandle( handle );
-
-                // set anyway, so that it updates the hashCodes
-                handle.setObject( object );
-                this.objectStore.addHandle( handle,
-                                            object );
-            }
-
-            this.handleFactory.increaseFactHandleRecency( handle );
-
-            this.entryPointNode.assertObject( handle,
-                                              propagationContext,
-                                              typeConf,
-                                              this.wm );
-
-            this.wm.getWorkingMemoryEventSupport().fireObjectUpdated( propagationContext,
-                                                                      factHandle,
-                                                                      originalObject,
-                                                                      object,
-                                                                      this.wm );
-
-            propagationContext.clearRetractedTuples();
-
-            this.wm.executeQueuedActions();
-        } finally {
-            this.lock.unlock();
-        }
-    }
-
-    public void retract(final FactHandle handle) throws FactException {
-        retract( handle,
-                 true,
-                 true,
-                 null,
-                 null );
-    }
-
-    public void retract(final FactHandle factHandle,
-                        final boolean removeLogical,
-                        final boolean updateEqualsMap,
-                        final Rule rule,
-                        final Activation activation) throws FactException {
-        try {
-            this.lock.lock();
-            this.ruleBase.executeQueuedActions();
-
-            final InternalFactHandle handle = (InternalFactHandle) factHandle;
-            if ( handle.getId() == -1 ) {
-                // can't retract an already retracted handle
-                return;
-            }
-            removePropertyChangeListener( handle );
-
-            if ( activation != null ) {
-                // release resources so that they can be GC'ed
-                activation.getPropagationContext().releaseResources();
-            }
-            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
-                                                                                      PropagationContext.RETRACTION,
-                                                                                      rule,
-                                                                                      activation,
-                                                                                      -1,
-                                                                                      -1,
-                                                                                      this.entryPoint );
-
-            this.entryPointNode.retractObject( handle,
-                                               propagationContext,
-                                               this.wm );
-
-            final Object object = handle.getObject();
-
-            this.wm.getWorkingMemoryEventSupport().fireObjectRetracted( propagationContext,
-                                                                        handle,
-                                                                        object,
-                                                                        this.wm );
-
-            this.objectStore.removeHandle( handle );
-
-            this.handleFactory.destroyFactHandle( handle );
-
-            this.wm.executeQueuedActions();
-        } finally {
-            this.lock.unlock();
-        }
-    }
-
-    public void modifyRetract(final FactHandle factHandle) {
-        modifyRetract( factHandle,
-                       null,
-                       null );
-    }
-
-    public void modifyRetract(final FactHandle factHandle,
-                              final Rule rule,
-                              final Activation activation) {
-        try {
-            this.lock.lock();
-            this.ruleBase.executeQueuedActions();
-
-            final InternalFactHandle handle = (InternalFactHandle) factHandle;
-            // final Object originalObject = (handle.isShadowFact()) ?
-            // ((ShadowProxy) handle.getObject()).getShadowedObject() :
-            // handle.getObject();
-
-            if ( handle.getId() == -1 ) {
-                // the handle is invalid, most likely already retracted, so
-                // return
-                return;
-            }
-
-            if ( activation != null ) {
-                // release resources so that they can be GC'ed
-                activation.getPropagationContext().releaseResources();
-            }
-            // Nowretract any trace of the original fact
-            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
-                                                                                      PropagationContext.MODIFICATION,
-                                                                                      rule,
-                                                                                      activation,
-                                                                                      -1,
-                                                                                      -1,
-                                                                                      entryPoint );
-
-            this.entryPointNode.retractObject( handle,
-                                               propagationContext,
-                                               this.wm );
-
-        } finally {
-            this.lock.unlock();
-        }
-    }
-
-    public void modifyInsert(final FactHandle factHandle,
-                             final Object object) {
-        modifyInsert( factHandle,
-                      object,
-                      null,
-                      null );
-    }
-
-    public void modifyInsert(final FactHandle factHandle,
-                             final Object object,
-                             final Rule rule,
-                             final Activation activation) {
-        this.modifyInsert( EntryPoint.DEFAULT,
-                           factHandle,
-                           object,
-                           rule,
-                           activation );
-    }
-
-    protected void modifyInsert(final EntryPoint entryPoint,
-                                final FactHandle factHandle,
-                                final Object object,
-                                final Rule rule,
-                                final Activation activation) {
-        try {
-            this.lock.lock();
-            this.ruleBase.executeQueuedActions();
-
-            final InternalFactHandle handle = (InternalFactHandle) factHandle;
-            final Object originalObject = (handle.isShadowFact()) ? ((ShadowProxy) handle.getObject()).getShadowedObject() : handle.getObject();
-
-            this.handleFactory.increaseFactHandleRecency( handle );
-
-            if ( activation != null ) {
-                // release resources so that they can be GC'ed
-                activation.getPropagationContext().releaseResources();
-            }
-            // Nowretract any trace of the original fact
-            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
-                                                                                      PropagationContext.MODIFICATION,
-                                                                                      rule,
-                                                                                      activation,
-                                                                                      -1,
-                                                                                      -1,
-                                                                                      entryPoint );
-
-            this.entryPointNode.assertObject( handle,
-                                              propagationContext,
-                                              this.wm );
-
-            this.wm.getWorkingMemoryEventSupport().fireObjectUpdated( propagationContext,
-                                                                      factHandle,
-                                                                      originalObject,
-                                                                      object,
-                                                                      this.wm );
-
-            propagationContext.clearRetractedTuples();
-
-            this.wm.executeQueuedActions();
-        } finally {
-            this.lock.unlock();
-        }
-    }
-
-    protected void addPropertyChangeListener(final Object object) {
-        try {
-            final Method method = object.getClass().getMethod( "addPropertyChangeListener",
-                                                               AbstractWorkingMemory.ADD_REMOVE_PROPERTY_CHANGE_LISTENER_ARG_TYPES );
-
-            method.invoke( object,
-                           this.addRemovePropertyChangeListenerArgs );
-        } catch ( final NoSuchMethodException e ) {
-            System.err.println( "Warning: Method addPropertyChangeListener not found" + " on the class " + object.getClass() + " so Drools will be unable to process JavaBean" + " PropertyChangeEvents on the asserted Object" );
-        } catch ( final IllegalArgumentException e ) {
-            System.err.println( "Warning: The addPropertyChangeListener method" + " on the class " + object.getClass() + " does not take" + " a simple PropertyChangeListener argument" + " so Drools will be unable to process JavaBean"
-                                + " PropertyChangeEvents on the asserted Object" );
-        } catch ( final IllegalAccessException e ) {
-            System.err.println( "Warning: The addPropertyChangeListener method" + " on the class " + object.getClass() + " is not public" + " so Drools will be unable to process JavaBean" + " PropertyChangeEvents on the asserted Object" );
-        } catch ( final InvocationTargetException e ) {
-            System.err.println( "Warning: The addPropertyChangeListener method" + " on the class " + object.getClass() + " threw an InvocationTargetException" + " so Drools will be unable to process JavaBean"
-                                + " PropertyChangeEvents on the asserted Object: " + e.getMessage() );
-        } catch ( final SecurityException e ) {
-            System.err.println( "Warning: The SecurityManager controlling the class " + object.getClass() + " did not allow the lookup of a" + " addPropertyChangeListener method" + " so Drools will be unable to process JavaBean"
-                                + " PropertyChangeEvents on the asserted Object: " + e.getMessage() );
-        }
-    }
-
-    protected void removePropertyChangeListener(final FactHandle handle) {
-        Object object = null;
-        try {
-            object = ((InternalFactHandle) handle).getObject();
-
-            if ( object != null ) {
-                final Method mehod = object.getClass().getMethod( "removePropertyChangeListener",
-                                                                  AbstractWorkingMemory.ADD_REMOVE_PROPERTY_CHANGE_LISTENER_ARG_TYPES );
-
-                mehod.invoke( object,
-                              this.addRemovePropertyChangeListenerArgs );
-            }
-        } catch ( final NoSuchMethodException e ) {
-            // The removePropertyChangeListener method on the class
-            // was not found so Drools will be unable to
-            // stop processing JavaBean PropertyChangeEvents
-            // on the retracted Object
-        } catch ( final IllegalArgumentException e ) {
-            throw new RuntimeDroolsException( "Warning: The removePropertyChangeListener method on the class " + object.getClass() + " does not take a simple PropertyChangeListener argument so Drools will be unable to stop processing JavaBean"
-                                              + " PropertyChangeEvents on the retracted Object" );
-        } catch ( final IllegalAccessException e ) {
-            throw new RuntimeDroolsException( "Warning: The removePropertyChangeListener method on the class " + object.getClass() + " is not public so Drools will be unable to stop processing JavaBean PropertyChangeEvents on the retracted Object" );
-        } catch ( final InvocationTargetException e ) {
-            throw new RuntimeDroolsException( "Warning: The removePropertyChangeL istener method on the class " + object.getClass() + " threw an InvocationTargetException so Drools will be unable to stop processing JavaBean"
-                                              + " PropertyChangeEvents on the retracted Object: " + e.getMessage() );
-        } catch ( final SecurityException e ) {
-            throw new RuntimeDroolsException( "Warning: The SecurityManager controlling the class " + object.getClass() + " did not allow the lookup of a removePropertyChangeListener method so Drools will be unable to stop processing JavaBean"
-                                              + " PropertyChangeEvents on the retracted Object: " + e.getMessage() );
-        }
-    }
-
-    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
-        return this.wm.getWorkingMemoryEntryPoint( name );
-    }
-
-    public ObjectTypeConfigurationRegistry getObjectTypeConfigurationRegistry() {
-        return this.typeConfReg;
-    }
-
-}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,468 @@
+/**
+ * 
+ */
+package org.drools.common;
+
+import java.beans.PropertyChangeListener;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.concurrent.locks.ReentrantLock;
+
+import org.drools.WorkingMemoryEntryPoint;
+import org.drools.FactException;
+import org.drools.FactHandle;
+import org.drools.RuntimeDroolsException;
+import org.drools.WorkingMemory;
+import org.drools.RuleBaseConfiguration.AssertBehaviour;
+import org.drools.base.ShadowProxy;
+import org.drools.event.WorkingMemoryEventSupport;
+import org.drools.reteoo.EntryPointNode;
+import org.drools.reteoo.ObjectTypeConf;
+import org.drools.rule.EntryPoint;
+import org.drools.rule.Rule;
+import org.drools.spi.Activation;
+import org.drools.spi.FactHandleFactory;
+import org.drools.spi.PropagationContext;
+
+public class NamedEntryPoint
+    implements
+    InternalWorkingMemoryEntryPoint {
+    /** The arguments used when adding/removing a property change listener. */
+    protected final Object[]                addRemovePropertyChangeListenerArgs = new Object[]{this};
+
+    private static final long               serialVersionUID                    = 500;
+
+    protected ObjectStore                   objectStore;
+
+    protected transient InternalRuleBase    ruleBase;
+
+    protected EntryPoint                    entryPoint;
+    protected EntryPointNode                entryPointNode;
+
+    private ObjectTypeConfigurationRegistry typeConfReg;
+
+    private final AbstractWorkingMemory     wm;
+
+    private FactHandleFactory               handleFactory;
+
+    protected final ReentrantLock           lock;
+
+    public NamedEntryPoint(EntryPoint entryPoint,
+                           EntryPointNode entryPointNode,
+                           AbstractWorkingMemory wm) {
+        this( entryPoint,
+              entryPointNode,
+              wm,
+              new ReentrantLock() );
+    }
+
+    public NamedEntryPoint(EntryPoint entryPoint,
+                           EntryPointNode entryPointNode,
+                           AbstractWorkingMemory wm,
+                           ReentrantLock lock) {
+        this.entryPoint = entryPoint;
+        this.entryPointNode = entryPointNode;
+        this.wm = wm;
+        this.ruleBase = (InternalRuleBase) this.wm.getRuleBase();
+        this.lock = lock;
+        this.typeConfReg = new ObjectTypeConfigurationRegistry( this.ruleBase );
+        this.handleFactory = this.wm.getFactHandleFactory();
+        this.objectStore = new SingleThreadedObjectStore( this.ruleBase.getConfiguration(),
+                                                          this.lock );
+    }
+
+    /**
+     * @see WorkingMemory
+     */
+    public FactHandle insert(final Object object) throws FactException {
+        return insert( object, /* Not-Dynamic */
+                       false,
+                       false,
+                       null,
+                       null );
+    }
+
+    public FactHandle insert(final Object object,
+                             final boolean dynamic) throws FactException {
+        return insert( object,
+                       dynamic,
+                       false,
+                       null,
+                       null );
+    }
+
+    protected FactHandle insert(final Object object,
+                                final boolean dynamic,
+                                boolean logical,
+                                final Rule rule,
+                                final Activation activation) throws FactException {
+        if ( object == null ) {
+            // you cannot assert a null object
+            return null;
+        }
+
+        ObjectTypeConf typeConf = this.typeConfReg.getObjectTypeConf( this.entryPoint,
+                                                                      object );
+
+        InternalFactHandle handle = this.handleFactory.newFactHandle( object,
+                                                                      typeConf.isEvent(),
+                                                                      wm );
+        this.objectStore.addHandle( handle,
+                                    object );
+
+        if ( dynamic ) {
+            addPropertyChangeListener( object );
+        }
+
+        try {
+            this.lock.lock();
+            insert( handle,
+                    object,
+                    rule,
+                    activation );
+
+        } finally {
+            this.lock.unlock();
+        }
+        return handle;
+    }
+
+    protected void insert(final InternalFactHandle handle,
+                          final Object object,
+                          final Rule rule,
+                          final Activation activation) {
+        this.ruleBase.executeQueuedActions();
+
+        if ( activation != null ) {
+            // release resources so that they can be GC'ed
+            activation.getPropagationContext().releaseResources();
+        }
+        final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
+                                                                                  PropagationContext.ASSERTION,
+                                                                                  rule,
+                                                                                  activation,
+                                                                                  -1,
+                                                                                  -1,
+                                                                                  this.entryPoint );
+
+        this.entryPointNode.assertObject( handle,
+                                          propagationContext,
+                                          this.typeConfReg.getObjectTypeConf( this.entryPoint,
+                                                                              object ),
+                                          this.wm );
+
+        this.wm.executeQueuedActions();
+
+        this.wm.getWorkingMemoryEventSupport().fireObjectInserted( propagationContext,
+                                                                   handle,
+                                                                   object,
+                                                                   wm );
+    }
+
+    public void update(final FactHandle handle,
+                       final Object object) throws FactException {
+        update( handle,
+                object,
+                null,
+                null );
+    }
+
+    protected void update(final FactHandle factHandle,
+                          final Object object,
+                          final Rule rule,
+                          final Activation activation) throws FactException {
+        try {
+            this.lock.lock();
+            this.ruleBase.executeQueuedActions();
+
+            final InternalFactHandle handle = (InternalFactHandle) factHandle;
+            final Object originalObject = (handle.isShadowFact()) ? ((ShadowProxy) handle.getObject()).getShadowedObject() : handle.getObject();
+
+            if ( handle.getId() == -1 || object == null ) {
+                // the handle is invalid, most likely already retracted, so
+                // return
+                // and we cannot assert a null object
+                return;
+            }
+
+            ObjectTypeConf typeConf = this.typeConfReg.getObjectTypeConf( this.entryPoint,
+                                                                          object );
+
+            if ( activation != null ) {
+                // release resources so that they can be GC'ed
+                activation.getPropagationContext().releaseResources();
+            }
+            // Nowretract any trace of the original fact
+            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
+                                                                                      PropagationContext.MODIFICATION,
+                                                                                      rule,
+                                                                                      activation,
+                                                                                      -1,
+                                                                                      -1,
+                                                                                      this.entryPoint );
+
+            this.entryPointNode.retractObject( handle,
+                                               propagationContext,
+                                               typeConf,
+                                               this.wm );
+
+            if ( (originalObject != object) || (this.ruleBase.getConfiguration().getAssertBehaviour() != AssertBehaviour.IDENTITY) ) {
+                this.objectStore.removeHandle( handle );
+
+                // set anyway, so that it updates the hashCodes
+                handle.setObject( object );
+                this.objectStore.addHandle( handle,
+                                            object );
+            }
+
+            this.handleFactory.increaseFactHandleRecency( handle );
+
+            this.entryPointNode.assertObject( handle,
+                                              propagationContext,
+                                              typeConf,
+                                              this.wm );
+
+            this.wm.getWorkingMemoryEventSupport().fireObjectUpdated( propagationContext,
+                                                                      factHandle,
+                                                                      originalObject,
+                                                                      object,
+                                                                      this.wm );
+
+            propagationContext.clearRetractedTuples();
+
+            this.wm.executeQueuedActions();
+        } finally {
+            this.lock.unlock();
+        }
+    }
+
+    public void retract(final FactHandle handle) throws FactException {
+        retract( handle,
+                 true,
+                 true,
+                 null,
+                 null );
+    }
+
+    public void retract(final FactHandle factHandle,
+                        final boolean removeLogical,
+                        final boolean updateEqualsMap,
+                        final Rule rule,
+                        final Activation activation) throws FactException {
+        try {
+            this.lock.lock();
+            this.ruleBase.executeQueuedActions();
+
+            final InternalFactHandle handle = (InternalFactHandle) factHandle;
+            if ( handle.getId() == -1 ) {
+                // can't retract an already retracted handle
+                return;
+            }
+            removePropertyChangeListener( handle );
+
+            if ( activation != null ) {
+                // release resources so that they can be GC'ed
+                activation.getPropagationContext().releaseResources();
+            }
+            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
+                                                                                      PropagationContext.RETRACTION,
+                                                                                      rule,
+                                                                                      activation,
+                                                                                      -1,
+                                                                                      -1,
+                                                                                      this.entryPoint );
+
+            this.entryPointNode.retractObject( handle,
+                                               propagationContext,
+                                               this.wm );
+
+            final Object object = handle.getObject();
+
+            this.wm.getWorkingMemoryEventSupport().fireObjectRetracted( propagationContext,
+                                                                        handle,
+                                                                        object,
+                                                                        this.wm );
+
+            this.objectStore.removeHandle( handle );
+
+            this.handleFactory.destroyFactHandle( handle );
+
+            this.wm.executeQueuedActions();
+        } finally {
+            this.lock.unlock();
+        }
+    }
+
+    public void modifyRetract(final FactHandle factHandle) {
+        modifyRetract( factHandle,
+                       null,
+                       null );
+    }
+
+    public void modifyRetract(final FactHandle factHandle,
+                              final Rule rule,
+                              final Activation activation) {
+        try {
+            this.lock.lock();
+            this.ruleBase.executeQueuedActions();
+
+            final InternalFactHandle handle = (InternalFactHandle) factHandle;
+            // final Object originalObject = (handle.isShadowFact()) ?
+            // ((ShadowProxy) handle.getObject()).getShadowedObject() :
+            // handle.getObject();
+
+            if ( handle.getId() == -1 ) {
+                // the handle is invalid, most likely already retracted, so
+                // return
+                return;
+            }
+
+            if ( activation != null ) {
+                // release resources so that they can be GC'ed
+                activation.getPropagationContext().releaseResources();
+            }
+            // Nowretract any trace of the original fact
+            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
+                                                                                      PropagationContext.MODIFICATION,
+                                                                                      rule,
+                                                                                      activation,
+                                                                                      -1,
+                                                                                      -1,
+                                                                                      entryPoint );
+
+            this.entryPointNode.retractObject( handle,
+                                               propagationContext,
+                                               this.wm );
+
+        } finally {
+            this.lock.unlock();
+        }
+    }
+
+    public void modifyInsert(final FactHandle factHandle,
+                             final Object object) {
+        modifyInsert( factHandle,
+                      object,
+                      null,
+                      null );
+    }
+
+    public void modifyInsert(final FactHandle factHandle,
+                             final Object object,
+                             final Rule rule,
+                             final Activation activation) {
+        this.modifyInsert( EntryPoint.DEFAULT,
+                           factHandle,
+                           object,
+                           rule,
+                           activation );
+    }
+
+    protected void modifyInsert(final EntryPoint entryPoint,
+                                final FactHandle factHandle,
+                                final Object object,
+                                final Rule rule,
+                                final Activation activation) {
+        try {
+            this.lock.lock();
+            this.ruleBase.executeQueuedActions();
+
+            final InternalFactHandle handle = (InternalFactHandle) factHandle;
+            final Object originalObject = (handle.isShadowFact()) ? ((ShadowProxy) handle.getObject()).getShadowedObject() : handle.getObject();
+
+            this.handleFactory.increaseFactHandleRecency( handle );
+
+            if ( activation != null ) {
+                // release resources so that they can be GC'ed
+                activation.getPropagationContext().releaseResources();
+            }
+            // Nowretract any trace of the original fact
+            final PropagationContext propagationContext = new PropagationContextImpl( this.wm.getNextPropagationIdCounter(),
+                                                                                      PropagationContext.MODIFICATION,
+                                                                                      rule,
+                                                                                      activation,
+                                                                                      -1,
+                                                                                      -1,
+                                                                                      entryPoint );
+
+            this.entryPointNode.assertObject( handle,
+                                              propagationContext,
+                                              this.wm );
+
+            this.wm.getWorkingMemoryEventSupport().fireObjectUpdated( propagationContext,
+                                                                      factHandle,
+                                                                      originalObject,
+                                                                      object,
+                                                                      this.wm );
+
+            propagationContext.clearRetractedTuples();
+
+            this.wm.executeQueuedActions();
+        } finally {
+            this.lock.unlock();
+        }
+    }
+
+    protected void addPropertyChangeListener(final Object object) {
+        try {
+            final Method method = object.getClass().getMethod( "addPropertyChangeListener",
+                                                               AbstractWorkingMemory.ADD_REMOVE_PROPERTY_CHANGE_LISTENER_ARG_TYPES );
+
+            method.invoke( object,
+                           this.addRemovePropertyChangeListenerArgs );
+        } catch ( final NoSuchMethodException e ) {
+            System.err.println( "Warning: Method addPropertyChangeListener not found" + " on the class " + object.getClass() + " so Drools will be unable to process JavaBean" + " PropertyChangeEvents on the asserted Object" );
+        } catch ( final IllegalArgumentException e ) {
+            System.err.println( "Warning: The addPropertyChangeListener method" + " on the class " + object.getClass() + " does not take" + " a simple PropertyChangeListener argument" + " so Drools will be unable to process JavaBean"
+                                + " PropertyChangeEvents on the asserted Object" );
+        } catch ( final IllegalAccessException e ) {
+            System.err.println( "Warning: The addPropertyChangeListener method" + " on the class " + object.getClass() + " is not public" + " so Drools will be unable to process JavaBean" + " PropertyChangeEvents on the asserted Object" );
+        } catch ( final InvocationTargetException e ) {
+            System.err.println( "Warning: The addPropertyChangeListener method" + " on the class " + object.getClass() + " threw an InvocationTargetException" + " so Drools will be unable to process JavaBean"
+                                + " PropertyChangeEvents on the asserted Object: " + e.getMessage() );
+        } catch ( final SecurityException e ) {
+            System.err.println( "Warning: The SecurityManager controlling the class " + object.getClass() + " did not allow the lookup of a" + " addPropertyChangeListener method" + " so Drools will be unable to process JavaBean"
+                                + " PropertyChangeEvents on the asserted Object: " + e.getMessage() );
+        }
+    }
+
+    protected void removePropertyChangeListener(final FactHandle handle) {
+        Object object = null;
+        try {
+            object = ((InternalFactHandle) handle).getObject();
+
+            if ( object != null ) {
+                final Method mehod = object.getClass().getMethod( "removePropertyChangeListener",
+                                                                  AbstractWorkingMemory.ADD_REMOVE_PROPERTY_CHANGE_LISTENER_ARG_TYPES );
+
+                mehod.invoke( object,
+                              this.addRemovePropertyChangeListenerArgs );
+            }
+        } catch ( final NoSuchMethodException e ) {
+            // The removePropertyChangeListener method on the class
+            // was not found so Drools will be unable to
+            // stop processing JavaBean PropertyChangeEvents
+            // on the retracted Object
+        } catch ( final IllegalArgumentException e ) {
+            throw new RuntimeDroolsException( "Warning: The removePropertyChangeListener method on the class " + object.getClass() + " does not take a simple PropertyChangeListener argument so Drools will be unable to stop processing JavaBean"
+                                              + " PropertyChangeEvents on the retracted Object" );
+        } catch ( final IllegalAccessException e ) {
+            throw new RuntimeDroolsException( "Warning: The removePropertyChangeListener method on the class " + object.getClass() + " is not public so Drools will be unable to stop processing JavaBean PropertyChangeEvents on the retracted Object" );
+        } catch ( final InvocationTargetException e ) {
+            throw new RuntimeDroolsException( "Warning: The removePropertyChangeL istener method on the class " + object.getClass() + " threw an InvocationTargetException so Drools will be unable to stop processing JavaBean"
+                                              + " PropertyChangeEvents on the retracted Object: " + e.getMessage() );
+        } catch ( final SecurityException e ) {
+            throw new RuntimeDroolsException( "Warning: The SecurityManager controlling the class " + object.getClass() + " did not allow the lookup of a removePropertyChangeListener method so Drools will be unable to stop processing JavaBean"
+                                              + " PropertyChangeEvents on the retracted Object: " + e.getMessage() );
+        }
+    }
+
+    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
+        return this.wm.getWorkingMemoryEntryPoint( name );
+    }
+
+    public ObjectTypeConfigurationRegistry getObjectTypeConfigurationRegistry() {
+        return this.typeConfReg;
+    }
+
+}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,76 +0,0 @@
-package org.drools.common;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.drools.base.ShadowProxy;
-import org.drools.facttemplates.Fact;
-import org.drools.reteoo.ClassObjectTypeConf;
-import org.drools.reteoo.FactTemplateTypeConf;
-import org.drools.reteoo.ObjectTypeConf;
-import org.drools.rule.EntryPoint;
-
-public class ObjectTypeConfigurationRegistry implements Serializable {
-    private InternalRuleBase ruleBase;
-    private Map<Object, ObjectTypeConf> typeConfMap;
-    
-
-    
-    public ObjectTypeConfigurationRegistry(InternalRuleBase ruleBase ) {
-        super();
-        this.ruleBase = ruleBase;
-        this.typeConfMap = new HashMap<Object, ObjectTypeConf>();
-    }
-
-
-
-    /**
-     * Returns the ObjectTypeConfiguration object for the given object or
-     * creates a new one if none is found in the cache
-     * 
-     * @param object
-     * @return
-     */
-    public ObjectTypeConf getObjectTypeConf(EntryPoint entrypoint,
-                                            Object object) {
-        
-        // first see if it's a ClassObjectTypeConf
-        Class cls = null;
-        if ( object instanceof ShadowProxy ) {
-            cls = ((ShadowProxy) object).getShadowedObject().getClass();
-        } else {
-            cls = object.getClass();
-        }        
-        ObjectTypeConf objectTypeConf = this.typeConfMap.get( cls );
-        
-        // Now see if it's something else 
-        if ( objectTypeConf == null ) {
-            objectTypeConf = this.typeConfMap.get( object );
-        }
-        
-        
-        // it doesn't exist, so create it.
-        if ( objectTypeConf == null ) {
-            if ( object instanceof Fact ) {
-                objectTypeConf = new FactTemplateTypeConf( entrypoint,
-                                                           ((Fact) object).getFactTemplate(),
-                                                           this.ruleBase );           
-                this.typeConfMap.put( object, objectTypeConf );
-            } else {
-                objectTypeConf = new ClassObjectTypeConf( entrypoint,
-                                                          cls,
-                                                          this.ruleBase );
-                this.typeConfMap.put( cls, objectTypeConf );
-            }            
-        }
-
-        return objectTypeConf;
-    }
-
-    
-    public Collection<ObjectTypeConf> values() {
-        return this.typeConfMap.values();
-    }
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,76 @@
+package org.drools.common;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.base.ShadowProxy;
+import org.drools.facttemplates.Fact;
+import org.drools.reteoo.ClassObjectTypeConf;
+import org.drools.reteoo.FactTemplateTypeConf;
+import org.drools.reteoo.ObjectTypeConf;
+import org.drools.rule.EntryPoint;
+
+public class ObjectTypeConfigurationRegistry implements Serializable {
+    private InternalRuleBase ruleBase;
+    private Map<Object, ObjectTypeConf> typeConfMap;
+    
+
+    
+    public ObjectTypeConfigurationRegistry(InternalRuleBase ruleBase ) {
+        super();
+        this.ruleBase = ruleBase;
+        this.typeConfMap = new HashMap<Object, ObjectTypeConf>();
+    }
+
+
+
+    /**
+     * Returns the ObjectTypeConfiguration object for the given object or
+     * creates a new one if none is found in the cache
+     * 
+     * @param object
+     * @return
+     */
+    public ObjectTypeConf getObjectTypeConf(EntryPoint entrypoint,
+                                            Object object) {
+        
+        // first see if it's a ClassObjectTypeConf
+        Class cls = null;
+        if ( object instanceof ShadowProxy ) {
+            cls = ((ShadowProxy) object).getShadowedObject().getClass();
+        } else {
+            cls = object.getClass();
+        }        
+        ObjectTypeConf objectTypeConf = this.typeConfMap.get( cls );
+        
+        // Now see if it's something else 
+        if ( objectTypeConf == null ) {
+            objectTypeConf = this.typeConfMap.get( object );
+        }
+        
+        
+        // it doesn't exist, so create it.
+        if ( objectTypeConf == null ) {
+            if ( object instanceof Fact ) {
+                objectTypeConf = new FactTemplateTypeConf( entrypoint,
+                                                           ((Fact) object).getFactTemplate(),
+                                                           this.ruleBase );           
+                this.typeConfMap.put( object, objectTypeConf );
+            } else {
+                objectTypeConf = new ClassObjectTypeConf( entrypoint,
+                                                          cls,
+                                                          this.ruleBase );
+                this.typeConfMap.put( cls, objectTypeConf );
+            }            
+        }
+
+        return objectTypeConf;
+    }
+
+    
+    public Collection<ObjectTypeConf> values() {
+        return this.typeConfMap.values();
+    }
+}

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,33 +0,0 @@
-package org.drools.common;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.base.MapGlobalResolver;
-import org.drools.event.AgendaEventSupport;
-import org.drools.event.RuleFlowEventSupport;
-import org.drools.event.WorkingMemoryEventSupport;
-import org.drools.process.instance.ProcessInstanceFactory;
-import org.drools.process.instance.WorkItemManager;
-import org.drools.rule.TimeMachine;
-import org.drools.spi.FactHandleFactory;
-import org.drools.spi.GlobalResolver;
-import org.drools.temporal.SessionClock;
-
-public class SharedTemporalWorkingMemoryContext<T extends SessionClock>  extends SharedWorkingMemoryContext {    
-    protected T                                   sessionClock;
-    
-    public SharedTemporalWorkingMemoryContext(FactHandleFactory handleFactory, T sessionClock) {
-        super( handleFactory );        
-        this.sessionClock = sessionClock;
-    }
-
-    public T getSessionClock() {
-        return sessionClock;
-    }
-    
-            
-    
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedTemporalWorkingMemoryContext.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,33 @@
+package org.drools.common;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.base.MapGlobalResolver;
+import org.drools.event.AgendaEventSupport;
+import org.drools.event.RuleFlowEventSupport;
+import org.drools.event.WorkingMemoryEventSupport;
+import org.drools.process.instance.ProcessInstanceFactory;
+import org.drools.process.instance.WorkItemManager;
+import org.drools.rule.TimeMachine;
+import org.drools.spi.FactHandleFactory;
+import org.drools.spi.GlobalResolver;
+import org.drools.temporal.SessionClock;
+
+public class SharedTemporalWorkingMemoryContext<T extends SessionClock>  extends SharedWorkingMemoryContext {    
+    protected T                                   sessionClock;
+    
+    public SharedTemporalWorkingMemoryContext(FactHandleFactory handleFactory, T sessionClock) {
+        super( handleFactory );        
+        this.sessionClock = sessionClock;
+    }
+
+    public T getSessionClock() {
+        return sessionClock;
+    }
+    
+            
+    
+}

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,119 +0,0 @@
-package org.drools.common;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.base.MapGlobalResolver;
-import org.drools.event.AgendaEventSupport;
-import org.drools.event.RuleFlowEventSupport;
-import org.drools.event.WorkingMemoryEventSupport;
-import org.drools.process.instance.ProcessInstanceFactory;
-import org.drools.process.instance.WorkItemManager;
-import org.drools.rule.TimeMachine;
-import org.drools.spi.FactHandleFactory;
-import org.drools.spi.GlobalResolver;
-import org.drools.temporal.SessionClock;
-
-public class SharedWorkingMemoryContext {
-    protected InternalRuleBase                  ruleBase;
-
-    protected FactHandleFactory                 handleFactory;
-
-    /** Global values which are associated with this memory. */
-    protected GlobalResolver                    globalResolver;
-
-    /** The eventSupport */
-    protected WorkingMemoryEventSupport         workingMemoryEventSupport;
-
-    protected AgendaEventSupport                agendaEventSupport;
-
-    protected RuleFlowEventSupport              workflowEventSupport;
-
-    protected List                              __ruleBaseEventListeners;
-
-    protected long                              propagationIdCounter;
-
-    private Map                                 processInstances;
-
-    private int                                 processCounter;
-
-    private WorkItemManager                     workItemManager;
-
-    private Map<String, ProcessInstanceFactory> processInstanceFactories;
-
-    private TimeMachine                         timeMachine;
-
-    public SharedWorkingMemoryContext(FactHandleFactory handleFactory) {
-        this.handleFactory = handleFactory;
-
-        this.globalResolver = new MapGlobalResolver();
-
-        this.workingMemoryEventSupport = new WorkingMemoryEventSupport();
-        this.agendaEventSupport = new AgendaEventSupport();
-        this.workflowEventSupport = new RuleFlowEventSupport();
-        this.__ruleBaseEventListeners = new LinkedList();
-
-        processInstanceFactories = new HashMap();
-
-        timeMachine = new TimeMachine();
-    }
-
-    public Map getProcessInstances() {
-        return processInstances;
-    }
-
-    public void setProcessInstances(Map processInstances) {
-        this.processInstances = processInstances;
-    }
-
-    public WorkItemManager getWorkItemManager() {
-        return workItemManager;
-    }
-
-    public void setWorkItemManager(WorkItemManager workItemManager) {
-        this.workItemManager = workItemManager;
-    }
-
-    public TimeMachine getTimeMachine() {
-        return timeMachine;
-    }
-
-    public void setTimeMachine(TimeMachine timeMachine) {
-        this.timeMachine = timeMachine;
-    }
-
-    public FactHandleFactory getHandleFactory() {
-        return handleFactory;
-    }
-
-    public GlobalResolver getGlobalResolver() {
-        return globalResolver;
-    }
-
-    public WorkingMemoryEventSupport getWorkingMemoryEventSupport() {
-        return workingMemoryEventSupport;
-    }
-
-    public AgendaEventSupport getAgendaEventSupport() {
-        return agendaEventSupport;
-    }
-
-    public RuleFlowEventSupport getWorkflowEventSupport() {
-        return workflowEventSupport;
-    }
-
-    public List get__ruleBaseEventListeners() {
-        return __ruleBaseEventListeners;
-    }
-
-    public int getProcessCounter() {
-        return processCounter;
-    }
-
-    public Map<String, ProcessInstanceFactory> getProcessInstanceFactories() {
-        return processInstanceFactories;
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SharedWorkingMemoryContext.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,119 @@
+package org.drools.common;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.base.MapGlobalResolver;
+import org.drools.event.AgendaEventSupport;
+import org.drools.event.RuleFlowEventSupport;
+import org.drools.event.WorkingMemoryEventSupport;
+import org.drools.process.instance.ProcessInstanceFactory;
+import org.drools.process.instance.WorkItemManager;
+import org.drools.rule.TimeMachine;
+import org.drools.spi.FactHandleFactory;
+import org.drools.spi.GlobalResolver;
+import org.drools.temporal.SessionClock;
+
+public class SharedWorkingMemoryContext {
+    protected InternalRuleBase                  ruleBase;
+
+    protected FactHandleFactory                 handleFactory;
+
+    /** Global values which are associated with this memory. */
+    protected GlobalResolver                    globalResolver;
+
+    /** The eventSupport */
+    protected WorkingMemoryEventSupport         workingMemoryEventSupport;
+
+    protected AgendaEventSupport                agendaEventSupport;
+
+    protected RuleFlowEventSupport              workflowEventSupport;
+
+    protected List                              __ruleBaseEventListeners;
+
+    protected long                              propagationIdCounter;
+
+    private Map                                 processInstances;
+
+    private int                                 processCounter;
+
+    private WorkItemManager                     workItemManager;
+
+    private Map<String, ProcessInstanceFactory> processInstanceFactories;
+
+    private TimeMachine                         timeMachine;
+
+    public SharedWorkingMemoryContext(FactHandleFactory handleFactory) {
+        this.handleFactory = handleFactory;
+
+        this.globalResolver = new MapGlobalResolver();
+
+        this.workingMemoryEventSupport = new WorkingMemoryEventSupport();
+        this.agendaEventSupport = new AgendaEventSupport();
+        this.workflowEventSupport = new RuleFlowEventSupport();
+        this.__ruleBaseEventListeners = new LinkedList();
+
+        processInstanceFactories = new HashMap();
+
+        timeMachine = new TimeMachine();
+    }
+
+    public Map getProcessInstances() {
+        return processInstances;
+    }
+
+    public void setProcessInstances(Map processInstances) {
+        this.processInstances = processInstances;
+    }
+
+    public WorkItemManager getWorkItemManager() {
+        return workItemManager;
+    }
+
+    public void setWorkItemManager(WorkItemManager workItemManager) {
+        this.workItemManager = workItemManager;
+    }
+
+    public TimeMachine getTimeMachine() {
+        return timeMachine;
+    }
+
+    public void setTimeMachine(TimeMachine timeMachine) {
+        this.timeMachine = timeMachine;
+    }
+
+    public FactHandleFactory getHandleFactory() {
+        return handleFactory;
+    }
+
+    public GlobalResolver getGlobalResolver() {
+        return globalResolver;
+    }
+
+    public WorkingMemoryEventSupport getWorkingMemoryEventSupport() {
+        return workingMemoryEventSupport;
+    }
+
+    public AgendaEventSupport getAgendaEventSupport() {
+        return agendaEventSupport;
+    }
+
+    public RuleFlowEventSupport getWorkflowEventSupport() {
+        return workflowEventSupport;
+    }
+
+    public List get__ruleBaseEventListeners() {
+        return __ruleBaseEventListeners;
+    }
+
+    public int getProcessCounter() {
+        return processCounter;
+    }
+
+    public Map<String, ProcessInstanceFactory> getProcessInstanceFactories() {
+        return processInstanceFactories;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,12 @@
 
 package org.drools.reteoo;
 
+import java.util.Arrays;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Externalizable;
+
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuntimeDroolsException;
 import org.drools.common.BetaConstraints;
@@ -32,12 +38,6 @@
 import org.drools.util.Iterator;
 import org.drools.util.ObjectHashMap.ObjectEntry;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.Arrays;
-
 /**
  * AccumulateNode
  * A beta node capable of doing accumulate logic.
@@ -94,7 +94,7 @@
         out.writeObject(resultConstraints);
         out.writeObject(resultBinder);
     }
-
+    
     /**
      * @inheritDoc
      *

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,12 @@
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.List;
+import java.io.ObjectOutput;
+import java.io.IOException;
+import java.io.ObjectInput;
+
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
 import org.drools.common.BetaConstraints;
@@ -27,12 +33,6 @@
 import org.drools.util.LinkedList;
 import org.drools.util.LinkedListEntry;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * <code>BetaNode</code> provides the base abstract class for <code>JoinNode</code> and <code>NotNode</code>. It implements
  * both TupleSink and ObjectSink and as such can receive <code>Tuple</code>s and <code>FactHandle</code>s. BetaNode uses BetaMemory
@@ -149,7 +149,7 @@
         this.rightInput.networkUpdated();
         this.leftInput.networkUpdated();
     }
-
+    
     public List getRules() {
         final List list = new ArrayList();
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,13 +17,22 @@
  */
 package org.drools.reteoo;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
 import org.drools.FactException;
 import org.drools.RuntimeDroolsException;
 import org.drools.base.ClassObjectType;
 import org.drools.base.DroolsQuery;
 import org.drools.base.ShadowProxy;
 import org.drools.base.ShadowProxyFactory;
-import org.drools.common.DroolsObjectInput;
 import org.drools.common.InternalRuleBase;
 import org.drools.objenesis.instantiator.ObjectInstantiator;
 import org.drools.reteoo.builder.BuildContext;
@@ -32,25 +41,14 @@
 import org.drools.rule.TypeDeclaration;
 import org.drools.spi.ObjectType;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
 public class ClassObjectTypeConf
     implements
     ObjectTypeConf,
     Externalizable {
 
     private static final long serialVersionUID = 8218802585428841926L;
-
-    private Class<?>                        cls;
+    
+    private Class<?>                       cls;
     private transient InternalRuleBase     ruleBase;
     private ObjectTypeNode[]               objectTypeNodes;
 
@@ -72,7 +70,7 @@
         this.ruleBase = ruleBase;
         this.entryPoint = entryPoint;
         TypeDeclaration type = ruleBase.getTypeDeclaration( clazz );
-        final boolean isEvent = type != null && type.getRole() == TypeDeclaration.Role.EVENT;
+        final boolean isEvent = type != null && type.getRole() == TypeDeclaration.Role.EVENT; 
 
         ObjectType objectType = new ClassObjectType( clazz,
                                                      isEvent );
@@ -252,12 +250,6 @@
         return ret;
     }
 
-    private void readObject(ObjectInputStream stream) throws IOException,
-                                                     ClassNotFoundException {
-        stream.defaultReadObject();
-        this.ruleBase = ((DroolsObjectInput) stream).getRuleBase();
-    }
-
     /**
      *
      */

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -18,6 +18,14 @@
  * Created on January 8th, 2007
  */
 
+import java.io.Externalizable;
+import java.io.ObjectInput;
+import java.io.IOException;
+import java.io.ObjectOutput;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.WorkingMemoryEntryPoint;
 import org.drools.base.ShadowProxy;
 import org.drools.common.BaseNode;
 import org.drools.common.InternalFactHandle;
@@ -33,13 +41,6 @@
 import org.drools.util.FactHashTable;
 import org.drools.util.Iterator;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * A node that is an entry point into the Rete network.
  *
@@ -119,7 +120,7 @@
     public EntryPoint getEntryPoint() {
         return entryPoint;
     }
-
+    
     public void assertObject(final InternalFactHandle handle,
                              final PropagationContext context,
                              final ObjectTypeConf objectTypeConf,
@@ -143,7 +144,7 @@
                                          context,
                                          workingMemory );
         }
-    }
+    }    
 
     /**
      * This is the entry point into the network for all asserted Facts. Iterates a cache
@@ -174,10 +175,10 @@
      */
     public void retractObject(final InternalFactHandle handle,
                               final PropagationContext context,
-                              final ObjectTypeConf objectTypeConf,
+                              final ObjectTypeConf objectTypeConf,                              
                               final InternalWorkingMemory workingMemory) {
         final Object object = handle.getObject();
-
+        
         ObjectTypeNode[] cachedNodes = objectTypeConf.getObjectTypeNodes();
 
         if ( cachedNodes == null ) {
@@ -191,11 +192,11 @@
                                           workingMemory );
         }
     }
-
+    
     public void retractObject(final InternalFactHandle handle,
-                              final PropagationContext context,
+                              final PropagationContext context,        
                               final InternalWorkingMemory workingMemory) {
-        // do nothing, dummy method to impl the interface
+        // do nothing, dummy method to impl the interface                
     }
 
     /**
@@ -275,11 +276,12 @@
                            final InternalWorkingMemory workingMemory) {
         // JBRULES-612: the cache MUST be invalidated when a new node type is added to the network, so iterate and reset all caches.
         final ObjectTypeNode node = (ObjectTypeNode) sink;
+                
         final ObjectType newObjectType = node.getObjectType();
 
         InternalWorkingMemoryEntryPoint wmEntryPoint = ( InternalWorkingMemoryEntryPoint ) workingMemory.getWorkingMemoryEntryPoint( this.entryPoint.getEntryPointId() );
-
-        for ( ObjectTypeConf objectTypeConf : wmEntryPoint.getObjectTypeConfigurationRegistry().values() ) {
+        
+        for ( ObjectTypeConf objectTypeConf : wmEntryPoint.getObjectTypeConfigurationRegistry().values() ) {            
             if ( newObjectType.isAssignableFrom( objectTypeConf.getConcreteObjectTypeNode().getObjectType() ) ) {
                 objectTypeConf.resetCache();
                 ObjectTypeNode sourceNode = objectTypeConf.getConcreteObjectTypeNode();

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,5 +1,10 @@
 package org.drools.reteoo;
 
+import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
 import org.drools.common.BetaConstraints;
@@ -17,11 +22,6 @@
 import org.drools.util.LinkedListEntry;
 import org.drools.util.TupleHashTable;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-
 public class FromNode extends TupleSource
     implements
     TupleSinkNode,
@@ -185,7 +185,7 @@
     public void networkUpdated() {
         this.tupleSource.networkUpdated();
     }
-
+    
     protected void doRemove(final RuleRemovalContext context,
                             final ReteooBuilder builder,
                             final BaseNode node,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -123,7 +123,7 @@
     public void networkUpdated() {
         this.objectSource.networkUpdated();
     }
-
+    
     /**
      * Takes the asserted <code>FactHandleImpl</code> received from the <code>ObjectSource</code> and puts it
      * in a new <code>ReteTuple</code> before propagating to the <code>TupleSinks</code>

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSource.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSource.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSource.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,16 +16,17 @@
  * limitations under the License.
  */
 
+import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
 import org.drools.common.BaseNode;
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.spi.PropagationContext;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
 /**
  * A source of <code>FactHandle</code>s for an <code>ObjectSink</code>.
  *
@@ -149,7 +150,7 @@
     public abstract void updateSink(ObjectSink sink,
                                     PropagationContext context,
                                     InternalWorkingMemory workingMemory);
-
+    
     public void networkUpdated() {
         this.objectSource.networkUpdated();
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -244,7 +244,7 @@
     public void networkUpdated() {
         this.skipOnModify = canSkipOnModify( this.sink.getSinks() );
     }
-
+    
     /**
      * OTN needs to override remove to avoid releasing the node ID, since OTN are
      * never removed from the rulebase in the current implementation

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -177,7 +177,7 @@
     public void networkUpdated() {
         this.tupleSource.networkUpdated();
     }
-
+    
     protected void doRemove(final RuleRemovalContext context,
                             final ReteooBuilder builder,
                             final BaseNode node,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,15 @@
  * limitations under the License.
  */
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
 import org.drools.common.BaseNode;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalRuleBase;
@@ -25,15 +34,6 @@
 import org.drools.spi.ObjectType;
 import org.drools.spi.PropagationContext;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
 /**
  * The Rete-OO network.
  *
@@ -164,7 +164,7 @@
     public void networkUpdated() {
         // nothing to do
     }
-
+    
     protected void doRemove(final RuleRemovalContext context,
                             final ReteooBuilder builder,
                             final BaseNode node,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,26 +16,17 @@
  * limitations under the License.
  */
 
-import org.drools.RuleIntegrationException;
-import org.drools.base.SalienceInteger;
-import org.drools.common.BaseNode;
-import org.drools.common.DroolsObjectInputStream;
-import org.drools.common.DroolsObjectOutputStream;
-import org.drools.common.InternalRuleBase;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.reteoo.builder.ReteooRuleBuilder;
-import org.drools.rule.InvalidPatternException;
-import org.drools.rule.Rule;
-import org.drools.spi.Salience;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.Externalizable;
 import java.io.IOException;
-import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
 import java.io.ObjectInput;
-import java.io.ObjectInputStream;
 import java.io.ObjectOutput;
+import java.io.Externalizable;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -44,9 +35,21 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Queue;
 import java.util.Map.Entry;
-import java.util.Queue;
 
+import org.drools.RuleIntegrationException;
+import org.drools.base.SalienceInteger;
+import org.drools.common.BaseNode;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.InternalRuleBase;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.reteoo.builder.ReteooRuleBuilder;
+import org.drools.rule.InvalidPatternException;
+import org.drools.rule.Rule;
+import org.drools.spi.Salience;
+
 /**
  * Builds the Rete-OO network for a <code>Package</code>.
  *
@@ -319,18 +322,17 @@
             droolsStream    = (DroolsObjectInputStream)in;
         } else {
             bytes   = new ByteArrayInputStream((byte[])in.readObject());
-            droolsStream    = new DroolsObjectInputStream((InputStream)new ObjectInputStream(bytes));
+            droolsStream    = new DroolsObjectInputStream(bytes);
         }
         this.rules          = (Map)in.readObject();
         this.idGenerator    = (IdGenerator)in.readObject();
         this.ordered        = in.readBoolean();
-
-        // TODO: possible null for rule base.
         this.ruleBase       = (InternalRuleBase)droolsStream.readObject();
-        this.ruleBuilder    = new ReteooRuleBuilder();
         if (!isDrools) {
             bytes.close();
         }
+
+        this.ruleBuilder    = new ReteooRuleBuilder();
     }
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,10 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
 import org.drools.TemporalSession;
 import org.drools.WorkingMemory;
 import org.drools.common.AbstractFactHandleFactory;
@@ -28,7 +32,19 @@
 public class ReteooFactHandleFactory extends AbstractFactHandleFactory {
 
     private static final long serialVersionUID = 400L;
+    
+    public ReteooFactHandleFactory() {
+        super();
+    }
 
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+    }
+
     /* (non-Javadoc)
      * @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
      */

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -19,6 +19,7 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.io.Serializable;
 import java.io.Externalizable;
 import java.util.Iterator;
 
@@ -46,6 +47,7 @@
 import org.drools.spi.ExecutorServiceFactory;
 import org.drools.spi.FactHandleFactory;
 import org.drools.spi.PropagationContext;
+import org.drools.temporal.SessionClock;
 
 /**
  * Implementation of <code>RuleBase</code>.
@@ -82,7 +84,7 @@
     /**
      * Construct.
      *
-     * @param rete
+     * @param id
      *            The rete network.
      */
     public ReteooRuleBase(final String id) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatefulSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatefulSession.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatefulSession.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -9,6 +9,7 @@
 import org.drools.FactHandle;
 import org.drools.StatefulSession;
 import org.drools.common.InternalRuleBase;
+//import org.drools.common.AbstractWorkingMemory.EntryPointInterfaceImpl;
 import org.drools.concurrent.AssertObject;
 import org.drools.concurrent.AssertObjects;
 import org.drools.concurrent.ExecutorService;
@@ -107,6 +108,12 @@
         }
         return this.ruleBaseListeners;
     }
+    
+//    public StatefulSession getEntryPoint(String id) {        
+//        EntryPoint ep = new EntryPoint( id );
+//        return new EntryPointInterfaceImpl( ep,
+//                                            this );
+//    }    
 
     public ExecutorService getExecutorService() {
         return executor;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -27,6 +27,7 @@
 import org.drools.event.WorkingMemoryEventSupport;
 import org.drools.reteoo.ReteooRuleBase.InitialFactHandleDummyObject;
 import org.drools.reteoo.ReteooWorkingMemory.WorkingMemoryReteAssertAction;
+import org.drools.rule.EntryPoint;
 import org.drools.spi.AgendaFilter;
 import org.drools.spi.ExecutorServiceFactory;
 import org.drools.spi.GlobalExporter;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,15 +17,15 @@
  */
 package org.drools.reteoo;
 
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
 import org.drools.TemporalSession;
 import org.drools.common.InternalRuleBase;
 import org.drools.concurrent.ExecutorService;
 import org.drools.temporal.SessionClock;
 
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-
 /**
  * ReteooStatefulTemporalSession implements a temporal enabled session
  * for Reteoo rulebases
@@ -37,9 +37,8 @@
     TemporalSession<T> {
 
     private static final long serialVersionUID = -2129661675928809928L;
+    private T                 sessionClock;
 
-    private T sessionClock;
-
     public ReteooTemporalSession() {
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -50,7 +50,7 @@
  * @author <a href="mailto:mark.proctor at jboss.com">Mark Proctor</a>
  * @author <a href="mailto:simon at redhillconsulting.com.au">Simon Harris</a>
  */
-public class ReteooWorkingMemory extends AbstractWorkingMemory {
+public class ReteooWorkingMemory extends AbstractWorkingMemory implements Externalizable {
 
     /**
      *
@@ -73,8 +73,8 @@
                ruleBase,
                ruleBase.newFactHandleFactory() );
         this.agenda = new DefaultAgenda( this );
-    }
-
+    }    
+    
     public QueryResults getQueryResults(final String query) {
         return getQueryResults( query, null );
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -171,6 +171,10 @@
                                          workingMemory );
         }
     }
+    
+    public void networkUpdated() {
+        this.tupleSource.networkUpdated();
+    }
 
     public void updateSink(final ObjectSink sink,
                            final PropagationContext context,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -460,7 +460,7 @@
     public void networkUpdated() {
         this.tupleSource.networkUpdated();
     }
-
+    
     protected void doRemove(final RuleRemovalContext context,
                             final ReteooBuilder builder,
                             final BaseNode node,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TerminalNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TerminalNode.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TerminalNode.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,11 +16,13 @@
 
 package org.drools.reteoo;
 
+import org.drools.common.NetworkNode;
+
 /**
  * A markup interface for terminal nodes
  * 
  * @author etirelli
  */
-public interface TerminalNode {
+public interface TerminalNode extends NetworkNode {
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -88,7 +88,7 @@
      *            <code>Tuples</code>.
      */
     protected void addTupleSink(final TupleSink tupleSink) {
-        if ( this.sink == EmptyTupleSinkAdapter.getInstance() ) {
+        if ( this.sink instanceof EmptyTupleSinkAdapter ) {
             this.sink = new SingleTupleSinkAdapter( tupleSink );
         } else if ( this.sink instanceof SingleTupleSinkAdapter ) {
             final CompositeTupleSinkAdapter sinkAdapter = new CompositeTupleSinkAdapter();
@@ -107,7 +107,7 @@
      *            The <code>TupleSink</code> to remove
      */
     protected void removeTupleSink(final TupleSink tupleSink) {
-        if ( this.sink == EmptyTupleSinkAdapter.getInstance() ) {
+        if ( this.sink instanceof EmptyTupleSinkAdapter ) {
             throw new IllegalArgumentException( "Cannot remove a sink, when the list of sinks is null" );
         }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ReteooRuleBuilder.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -181,6 +181,8 @@
             ((BaseNode) terminal).attach( context.getWorkingMemories() );
         }
 
+        ((BaseNode) terminal).networkUpdated();
+        
         return terminal;
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -38,11 +38,11 @@
     }
 
     /**
-     * Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass
+     * Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass 
      * over method calls to parent.loadClass(name, false); and c = findBootstrapClass0(name); which the default implementation
-     * would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a
+     * would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a 
      * higher priority than normal.
-     *
+     * 
      */
     protected synchronized Class loadClass(final String name,
                                            final boolean resolve) throws ClassNotFoundException {
@@ -68,10 +68,10 @@
 
         return clazz;
     }
-
+    
     public InputStream getResourceAsStream(final String name) {
         InputStream stream =  super.getResourceAsStream( name );
-
+        
         for ( final Iterator it = this.classLoaders.iterator(); it.hasNext(); ) {
             final DroolsClassLoader classLoader = (DroolsClassLoader) it.next();
             stream = classLoader.getResourceAsStream( name );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -11,20 +11,22 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
+import org.drools.common.DroolsObjectInput;
+
 public class DialectDatas implements Externalizable {
     private transient ClassLoader parentClassLoader;
     private CompositePackageClassLoader classLoader;
 
-    private Map<String, DialectData>    dialects;
+    private Map<String, DialectData> dialects;
 
-    private Map                         lineMappings;
+    private Map                           lineMappings;
 
     /**
      * Default constructor - for Externalizable. This should never be used by a user, as it
      * will result in an invalid state for the instance.
      */
     public DialectDatas() {
-        this((ClassLoader)null);
+        this(null);
     }
 
     public DialectDatas(ClassLoader classLoader) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -97,7 +97,7 @@
                                              workingMemory,
                                              context );
         } catch ( final Exception e ) {
-            throw new RuntimeDroolsException( e );
+        	throw new RuntimeDroolsException( this.getEvalExpression() + " : " + e, e );
         }
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -23,9 +23,7 @@
 import java.io.ObjectOutput;
 
 /**
- * A class to represent an import declaration. That declaration
- * may have additional metadata associated to it, like a flag
- * stating if the imported class is an event or not
+ * A class to represent an import declaration. 
  *
  * @author etirelli
  */
@@ -34,13 +32,12 @@
     private static final long serialVersionUID = 6410032114027977766L;
 
     private String target;
-    private boolean isEvent;
 
     /**
      * Creates an empty import declaration
      */
     public ImportDeclaration() {
-        this( null, false );
+        this( null );
     }
 
     /**
@@ -49,40 +46,17 @@
      * @param target
      */
     public ImportDeclaration( String target ) {
-        this( target, false );
+        this.target = target;
     }
 
     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         target  = (String)in.readObject();
-        isEvent = in.readBoolean();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
         out.writeObject(target);
-        out.writeBoolean(isEvent);
     }
 
-    /**
-     * Creates an import declaration for the given target.
-     *
-     * @param target the import target
-     * @param isEvent true if the target is an event-type target, false otherwise.
-     */
-    public ImportDeclaration(String target,
-                             boolean isEvent) {
-        super();
-        this.target = target;
-        this.isEvent = isEvent;
-    }
-
-    public boolean isEvent() {
-        return isEvent;
-    }
-
-    public void setEvent(boolean isEvent) {
-        this.isEvent = isEvent;
-    }
-
     public String getTarget() {
         return target;
     }
@@ -94,7 +68,6 @@
     public int hashCode() {
         final int PRIME = 31;
         int result = 1;
-        result = PRIME * result + (isEvent ? 1231 : 1237);
         result = PRIME * result + ((target == null) ? 0 : target.hashCode());
         return result;
     }
@@ -104,7 +77,6 @@
         if ( obj == null ) return false;
         if ( getClass() != obj.getClass() ) return false;
         final ImportDeclaration other = (ImportDeclaration) obj;
-        if ( isEvent != other.isEvent ) return false;
         if ( target == null ) {
             if ( other.target != null ) return false;
         } else if ( !target.equals( other.target ) ) return false;
@@ -118,7 +90,7 @@
      * @param name
      * @return
      */
-    public boolean matches( Class clazz ) {
+    public boolean matches( Class<?> clazz ) {
         // fully qualified import?
         if( this.target.equals( clazz.getName() ) ) {
             return true;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,21 +16,6 @@
  * limitations under the License.
  */
 
-import org.drools.RuntimeDroolsException;
-import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
-import org.drools.common.DroolsObjectInputStream;
-import org.drools.common.DroolsObjectOutputStream;
-import org.drools.common.DroolsObjectInput;
-import org.drools.spi.Accumulator;
-import org.drools.spi.Consequence;
-import org.drools.spi.EvalExpression;
-import org.drools.spi.PredicateExpression;
-import org.drools.spi.ReturnValueEvaluator;
-import org.drools.spi.ReturnValueExpression;
-import org.drools.util.StringUtils;
-import org.drools.workflow.core.node.ActionNode;
-import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
-
 import java.io.ByteArrayInputStream;
 import java.io.Externalizable;
 import java.io.IOException;
@@ -47,6 +32,21 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
+import org.drools.RuntimeDroolsException;
+import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.common.DroolsObjectInput;
+import org.drools.spi.Accumulator;
+import org.drools.spi.Consequence;
+import org.drools.spi.EvalExpression;
+import org.drools.spi.PredicateExpression;
+import org.drools.spi.ReturnValueEvaluator;
+import org.drools.spi.ReturnValueExpression;
+import org.drools.util.StringUtils;
+import org.drools.workflow.core.node.ActionNode;
+import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
+
 public class JavaDialectData
     implements
     DialectData,
@@ -410,6 +410,7 @@
             if ( resolve && clazz != null) {
                 resolveClass( clazz );
             }
+
             return clazz;
         }
 
@@ -417,7 +418,6 @@
             return fastFindClass( name );
         }
 
-
         public InputStream getResourceAsStream(final String name) {
             final byte[] bytes = (byte[]) parent.store.get( name );
             if ( bytes != null ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectData.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectData.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -20,7 +20,7 @@
 	 * user, as it will result in an invalid state for the instance.
 	 */
 	public MVELDialectData() {
-
+        this(null);
 	}
 
 	public MVELDialectData(final DialectDatas datas) {
@@ -54,46 +54,44 @@
 	}
 
     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        functionFactory = (MapFunctionResolverFactory)in.readObject();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(functionFactory);
     }
 
-	public static class MapFunctionResolverFactory extends
-			MapVariableResolverFactory implements Externalizable {
+    public static class MapFunctionResolverFactory extends
+                                                   MapVariableResolverFactory implements Externalizable {
 
-		public MapFunctionResolverFactory() {
-			super(new HashMap<String, Object>());
-		}
+        public MapFunctionResolverFactory() {
+            super(new HashMap<String, Object>());
+        }
 
-		public void writeExternal(ObjectOutput out) throws IOException {
-			out.writeObject( this.variables );
-		}
+        public void writeExternal(ObjectOutput out) throws IOException {
+            out.writeObject( this.variables );
+        }
 
-		public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-			this.variables = ( Map ) in.readObject();
-		}
+        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+            this.variables = ( Map ) in.readObject();
+        }
 
-		public void addFunction(Function function) {
-			this.variables.put(function.getName(), function);
-		}
+        public void addFunction(Function function) {
+            this.variables.put(function.getName(), function);
+        }
 
-		public void removeFunction(String functionName) {
-			this.variables.remove(functionName);
-			this.variableResolvers.remove(functionName);
-		}
+        public void removeFunction(String functionName) {
+            this.variables.remove(functionName);
+            this.variableResolvers.remove(functionName);
+        }
 
-		public VariableResolver createVariable(String name, Object value) {
-			throw new RuntimeException(
-					"variable is a read-only function pointer");
-		}
+        public VariableResolver createVariable(String name, Object value) {
+            throw new RuntimeException(
+                    "variable is a read-only function pointer");
+        }
 
-		public VariableResolver createIndexedVariable(int index, String name,
-				Object value, Class<?> type) {
-			throw new RuntimeException(
-					"variable is a read-only function pointer");
-		}
-	}
+        public VariableResolver createIndexedVariable(int index, String name,
+                                                      Object value, Class<?> type) {
+            throw new RuntimeException(
+                    "variable is a read-only function pointer");
+        }
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -57,16 +57,21 @@
 
     public void addClass(final String className,
                          byte[] bytes) {
-
-        this.store.put( convertResourcePathToClassName( className ),
-                        bytes );
+        synchronized ( this.store ) {     
+            this.store.put( convertResourcePathToClassName( className ),
+                            bytes );
+        }
     }
 
     public Class fastFindClass(final String name) {
         final Class clazz = findLoadedClass( name );
 
         if ( clazz == null ) {
-            final byte[] clazzBytes = (byte[]) this.store.get( name );
+            byte[] clazzBytes = null;
+            synchronized ( this.store ) {            
+                clazzBytes = (byte[]) this.store.get( name );
+            }
+            
             if ( clazzBytes != null ) {
                 return defineClass( name,
                                     clazzBytes,
@@ -79,11 +84,11 @@
     }
 
     /**
-     * Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass
+     * Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass 
      * over method calls to parent.loadClass(name, false); and c = findBootstrapClass0(name); which the default implementation
-     * would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a
+     * would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a 
      * higher priority than normal.
-     *
+     * 
      */
     protected synchronized Class loadClass(final String name,
                                            final boolean resolve) throws ClassNotFoundException {
@@ -108,7 +113,11 @@
     }
 
     public InputStream getResourceAsStream(final String name) {
-        final byte[] bytes = (byte[]) this.store.get( name );
+        byte[] bytes = null;
+        synchronized ( this.store ) {            
+            bytes = (byte[]) this.store.get( name );
+        }
+        
         if ( bytes != null ) {
             return new ByteArrayInputStream( bytes );
         } else {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,12 +16,6 @@
  * limitations under the License.
  */
 
-import org.drools.common.DroolsObjectInput;
-import org.drools.common.DroolsObjectInputStream;
-import org.drools.common.DroolsObjectOutputStream;
-import org.drools.facttemplates.FactTemplate;
-import org.drools.process.core.Process;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Externalizable;
@@ -35,6 +29,12 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.drools.common.DroolsObjectInput;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.facttemplates.FactTemplate;
+import org.drools.process.core.Process;
+
 /**
  * Collection of related <code>Rule</code>s.
  *
@@ -80,7 +80,7 @@
 
     //    private JavaDialectData         packageCompilationData;
     private DialectDatas                   dialectDatas;
-
+    
     private Map<String, TypeDeclaration>   typeDeclarations;
 
     /** This is to indicate the the package has no errors during the compilation/building phase */
@@ -239,19 +239,19 @@
     public Map<String, ImportDeclaration> getImports() {
         return this.imports;
     }
-
+    
     public void addTypeDeclaration( final TypeDeclaration typeDecl ) {
         this.typeDeclarations.put( typeDecl.getTypeName(), typeDecl );
     }
-
+    
     public void removeTypeDeclaration( final String type ) {
         this.typeDeclarations.remove( type );
     }
-
+    
     public Map<String, TypeDeclaration> getTypeDeclarations() {
         return this.typeDeclarations;
     }
-
+    
     public TypeDeclaration getTypeDeclaration( String type ) {
         return this.typeDeclarations.get( type );
     }
@@ -495,7 +495,7 @@
     /**
      * Returns true if clazz is imported as an Event class in this package
      * @param clazz
-     * @return
+     * @return true if clazz is imported as an Event class in this package
      */
     public boolean isEvent(Class clazz) {
         if ( clazz == null ) {

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,226 +0,0 @@
-/*
- * Copyright 2008 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Created on Jan 23, 2008
- */
-
-package org.drools.rule;
-
-import org.drools.facttemplates.FactTemplate;
-
-import java.io.Serializable;
-
-/**
- * The type declaration class stores all type's metadata
- * declared in source files.
- *  
- * @author etirelli
- */
-public class TypeDeclaration implements Serializable {
-
-    public static enum Role {
-        FACT,
-        EVENT;
-
-        public static Role parseRole( String role ) {
-            if( "event".equalsIgnoreCase( role ) ) {
-                return EVENT;
-            } else if( "fact".equalsIgnoreCase( role ) ) {
-                return FACT;
-            }
-            return null;
-        }
-    }
-
-    public static enum Format {
-        POJO,
-        TEMPLATE;
-
-        public static Format parseFormat( String format ) {
-            if( "pojo".equalsIgnoreCase( format ) ) {
-                return POJO;
-            } else if( "template".equalsIgnoreCase( format ) ) {
-                return TEMPLATE;
-            }
-            return null;
-        }
-    }
-
-    public static enum ClockStrategy {
-        NONE,
-        PSEUDO,
-        SYSTEM,
-        HEARTBEAT,
-        ATTRIBUTE;
-
-        public static ClockStrategy parseClockStrategy( String clockStrategy ) {
-            if( "none".equalsIgnoreCase( clockStrategy ) ) {
-                return NONE;
-            } else if( "pseudo".equalsIgnoreCase( clockStrategy ) ) {
-                return PSEUDO;
-            } else if( "system".equalsIgnoreCase( clockStrategy ) ) {
-                return SYSTEM;
-            } else if( "heartbeat".equalsIgnoreCase( clockStrategy ) ) {
-                return HEARTBEAT;
-            } else if( "attribute".equalsIgnoreCase( clockStrategy ) ) {
-                return ATTRIBUTE;
-            }
-            return null;
-        }
-    }
-
-    private final String typeName;
-    private Role role;
-    private Format format;
-    private ClockStrategy clockStrategy;
-    private String timestampAttribute;
-    private String durationAttribute;
-    private Class<?> typeClass;
-    private FactTemplate typeTemplate;
-
-    public TypeDeclaration( String typeName ) {
-        this.typeName = typeName;
-        this.role = Role.FACT;
-        this.format = Format.POJO;
-        this.clockStrategy = ClockStrategy.NONE;
-        this.durationAttribute = null;
-        this.timestampAttribute = null;
-        this.typeClass = null;
-        this.typeTemplate = null;
-    }
-
-    /**
-     * @return the type
-     */
-    public String getTypeName() {
-        return typeName;
-    }
-
-    /**
-     * @return the category
-     */
-    public Role getRole() {
-        return role;
-    }
-
-    /**
-     * @param role the category to set
-     */
-    public void setRole(Role role) {
-        this.role = role;
-    }
-
-    /**
-     * @return the format
-     */
-    public Format getFormat() {
-        return format;
-    }
-
-    /**
-     * @param format the format to set
-     */
-    public void setFormat(Format format) {
-        this.format = format;
-    }
-
-    /**
-     * @return the clockStrategy
-     */
-    public ClockStrategy getClockStrategy() {
-        return clockStrategy;
-    }
-
-    /**
-     * @param clockStrategy the clockStrategy to set
-     */
-    public void setClockStrategy(ClockStrategy clockStrategy) {
-        this.clockStrategy = clockStrategy;
-    }
-
-    /**
-     * @return the timestampAttribute
-     */
-    public String getTimestampAttribute() {
-        return timestampAttribute;
-    }
-
-    /**
-     * @param timestampAttribute the timestampAttribute to set
-     */
-    public void setTimestampAttribute(String timestampAttribute) {
-        this.timestampAttribute = timestampAttribute;
-    }
-
-    /**
-     * @return the durationAttribute
-     */
-    public String getDurationAttribute() {
-        return durationAttribute;
-    }
-
-    /**
-     * @param durationAttribute the durationAttribute to set
-     */
-    public void setDurationAttribute(String durationAttribute) {
-        this.durationAttribute = durationAttribute;
-    }
-
-    /**
-     * @return the typeClass
-     */
-    public Class< ? > getTypeClass() {
-        return typeClass;
-    }
-
-    /**
-     * @param typeClass the typeClass to set
-     */
-    public void setTypeClass(Class< ? > typeClass) {
-        this.typeClass = typeClass;
-    }
-
-    /**
-     * @return the typeTemplate
-     */
-    public FactTemplate getTypeTemplate() {
-        return typeTemplate;
-    }
-
-    /**
-     * @param typeTemplate the typeTemplate to set
-     */
-    public void setTypeTemplate(FactTemplate typeTemplate) {
-        this.typeTemplate = typeTemplate;
-    }
-
-    /**
-     * Returns true if the given parameter matches this type declaration
-     * 
-     * @param clazz
-     * @return
-     */
-    public boolean matches( Object clazz ) {
-        boolean matches = false;
-        if( clazz instanceof FactTemplate ) {
-            matches = this.typeTemplate.equals( clazz );
-        } else {
-            matches = this.typeClass.isAssignableFrom( (Class<?>) clazz );
-        }
-        return matches;
-    }
-
-
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,276 @@
+/*
+ * Copyright 2008 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Created on Jan 23, 2008
+ */
+
+package org.drools.rule;
+
+import org.drools.facttemplates.FactTemplate;
+
+import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectInput;
+import java.io.IOException;
+import java.io.ObjectOutput;
+
+/**
+ * The type declaration class stores all type's metadata
+ * declared in source files.
+ *  
+ * @author etirelli
+ */
+public class TypeDeclaration implements Externalizable {
+
+    public static enum Role {
+        FACT,
+        EVENT;
+
+        public static Role parseRole( String role ) {
+            if( "event".equalsIgnoreCase( role ) ) {
+                return EVENT;
+            } else if( "fact".equalsIgnoreCase( role ) ) {
+                return FACT;
+            }
+            return null;
+        }
+    }
+
+    public static enum Format {
+        POJO,
+        TEMPLATE;
+
+        public static Format parseFormat( String format ) {
+            if( "pojo".equalsIgnoreCase( format ) ) {
+                return POJO;
+            } else if( "template".equalsIgnoreCase( format ) ) {
+                return TEMPLATE;
+            }
+            return null;
+        }
+    }
+
+    public static enum ClockStrategy {
+        NONE,
+        PSEUDO,
+        SYSTEM,
+        HEARTBEAT,
+        ATTRIBUTE;
+
+        public static ClockStrategy parseClockStrategy( String clockStrategy ) {
+            if( "none".equalsIgnoreCase( clockStrategy ) ) {
+                return NONE;
+            } else if( "pseudo".equalsIgnoreCase( clockStrategy ) ) {
+                return PSEUDO;
+            } else if( "system".equalsIgnoreCase( clockStrategy ) ) {
+                return SYSTEM;
+            } else if( "heartbeat".equalsIgnoreCase( clockStrategy ) ) {
+                return HEARTBEAT;
+            } else if( "attribute".equalsIgnoreCase( clockStrategy ) ) {
+                return ATTRIBUTE;
+            }
+            return null;
+        }
+    }
+
+    private String typeName;
+    private Role role;
+    private Format format;
+    private ClockStrategy clockStrategy;
+    private String timestampAttribute;
+    private String durationAttribute;
+    private Class<?> typeClass;
+    private FactTemplate typeTemplate;
+
+    public TypeDeclaration() {
+    }
+
+    public TypeDeclaration( String typeName ) {
+        this.typeName = typeName;
+        this.role = Role.FACT;
+        this.format = Format.POJO;
+        this.clockStrategy = ClockStrategy.NONE;
+        this.durationAttribute = null;
+        this.timestampAttribute = null;
+        this.typeClass = null;
+        this.typeTemplate = null;
+    }
+
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        this.typeName = (String)in.readObject();
+        this.role = (Role)in.readObject();
+        this.format = (Format)in.readObject();
+        this.clockStrategy = (ClockStrategy)in.readObject();
+        this.durationAttribute = (String)in.readObject();
+        this.timestampAttribute = (String)in.readObject();
+        this.typeClass = (Class<?>)in.readObject();
+        this.typeTemplate = (FactTemplate)in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeObject(typeName);
+        out.writeObject(role);
+        out.writeObject(format);
+        out.writeObject(clockStrategy);
+        out.writeObject(durationAttribute);
+        out.writeObject(timestampAttribute);
+        out.writeObject(typeClass);
+        out.writeObject(typeTemplate);
+    }
+
+    /**
+     * @return the type
+     */
+    public String getTypeName() {
+        return typeName;
+    }
+
+    /**
+     * @return the category
+     */
+    public Role getRole() {
+        return role;
+    }
+
+    /**
+     * @param role the category to set
+     */
+    public void setRole(Role role) {
+        this.role = role;
+    }
+
+    /**
+     * @return the format
+     */
+    public Format getFormat() {
+        return format;
+    }
+
+    /**
+     * @param format the format to set
+     */
+    public void setFormat(Format format) {
+        this.format = format;
+    }
+
+    /**
+     * @return the clockStrategy
+     */
+    public ClockStrategy getClockStrategy() {
+        return clockStrategy;
+    }
+
+    /**
+     * @param clockStrategy the clockStrategy to set
+     */
+    public void setClockStrategy(ClockStrategy clockStrategy) {
+        this.clockStrategy = clockStrategy;
+    }
+
+    /**
+     * @return the timestampAttribute
+     */
+    public String getTimestampAttribute() {
+        return timestampAttribute;
+    }
+
+    /**
+     * @param timestampAttribute the timestampAttribute to set
+     */
+    public void setTimestampAttribute(String timestampAttribute) {
+        this.timestampAttribute = timestampAttribute;
+    }
+
+    /**
+     * @return the durationAttribute
+     */
+    public String getDurationAttribute() {
+        return durationAttribute;
+    }
+
+    /**
+     * @param durationAttribute the durationAttribute to set
+     */
+    public void setDurationAttribute(String durationAttribute) {
+        this.durationAttribute = durationAttribute;
+    }
+
+    /**
+     * @return the typeClass
+     */
+    public Class< ? > getTypeClass() {
+        return typeClass;
+    }
+
+    /**
+     * @param typeClass the typeClass to set
+     */
+    public void setTypeClass(Class< ? > typeClass) {
+        this.typeClass = typeClass;
+    }
+
+    /**
+     * @return the typeTemplate
+     */
+    public FactTemplate getTypeTemplate() {
+        return typeTemplate;
+    }
+
+    /**
+     * @param typeTemplate the typeTemplate to set
+     */
+    public void setTypeTemplate(FactTemplate typeTemplate) {
+        this.typeTemplate = typeTemplate;
+    }
+
+    /**
+     * Returns true if the given parameter matches this type declaration
+     * 
+     * @param clazz
+     * @return
+     */
+    public boolean matches( Object clazz ) {
+        boolean matches = false;
+        if( clazz instanceof FactTemplate ) {
+            matches = this.typeTemplate.equals( clazz );
+        } else {
+            matches = this.typeClass.isAssignableFrom( (Class<?>) clazz );
+        }
+        return matches;
+    }
+
+    public boolean equals(Object obj) {
+        if (obj == this) {
+            return true;
+        } else if (obj instanceof TypeDeclaration) {
+            TypeDeclaration that    = (TypeDeclaration)obj;
+            return isObjectEqual(typeName, that.typeName) &&
+                   role == that.role &&
+                   format == that.format &&
+                   clockStrategy == that.clockStrategy &&
+                   isObjectEqual(timestampAttribute, that.timestampAttribute) &&
+                   isObjectEqual(durationAttribute, that.durationAttribute) &&
+                   typeClass == that.typeClass &&
+                   isObjectEqual(typeTemplate, that.typeTemplate);
+        }
+        return false;
+    }
+
+
+    private static boolean isObjectEqual(Object a, Object b) {
+        return a == b || a != null && a.equals(b);
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
+import java.io.Serializable;
+
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
 import org.drools.common.InternalFactHandle;
 
-import java.io.Serializable;
-
 /**
  * Factory Interface to return new <code>FactHandle</code>s
  * 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldValue.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldValue.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldValue.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -2,13 +2,13 @@
 
 /*
  * Copyright 2005 JBoss Inc
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,14 +16,14 @@
  * limitations under the License.
  */
 
+import java.io.Serializable;
+
 import org.drools.FactException;
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
 import org.drools.rule.Declaration;
 import org.drools.rule.Rule;
 
-import java.io.Externalizable;
-
 /**
  * KnowledgeHelper implementation types are injected into consequenses
  * instrumented at compile time and instances passed at runtime. It provides
@@ -39,7 +39,7 @@
  */
 public interface KnowledgeHelper
     extends
-    Externalizable {
+    Serializable {
     
     public void setActivation(final Activation agendaItem); 
     

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,158 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.drools.util;
-
-import java.lang.reflect.Array;
-import java.util.NoSuchElementException;
-
-/** 
- * Implements an {@link java.util.Iterator Iterator} over any array.
- * <p>
- * The array can be either an array of object or of primitives. If you know 
- * that you have an object array, the 
- * {@link org.apache.commons.collections.iterators.ObjectArrayIterator ObjectArrayIterator}
- * class is a better choice, as it will perform better.
- * <p>
- * The iterator implements a {@link #reset} method, allowing the reset of 
- * the iterator back to the start if required.
- *
- * @since Commons Collections 1.0
- * @version $Revision$ $Date$
- *
- * @author James Strachan
- * @author Mauricio S. Moura
- * @author Michael A. Smith
- * @author Neil O'Toole
- * @author Stephen Colebourne
- */
-public class ArrayIterator implements java.util.Iterator {
-
-    /** The array to iterate over */    
-    protected Object array;
-    /** The end index to loop to */
-	protected int endIndex = 0;
-    /** The current iterator index */
-	protected int index = 0;
-    
-   
-    /**
-     * Constructs an ArrayIterator that will iterate over the values in the
-     * specified array.
-     *
-     * @param array the array to iterate over.
-     * @throws IllegalArgumentException if <code>array</code> is not an array.
-     * @throws NullPointerException if <code>array</code> is <code>null</code>
-     */
-    public ArrayIterator(final Object array) {
-        setArray(array);
-    }
-
-    /**
-     * Checks whether the index is valid or not.
-     * 
-     * @param bound  the index to check
-     * @param type  the index type (for error messages)
-     * @throws IndexOutOfBoundsException if the index is invalid
-     */
-    protected void checkBound(final int bound, final String type ) {
-        if (bound > this.endIndex) {
-            throw new ArrayIndexOutOfBoundsException(
-              "Attempt to make an ArrayIterator that " + type +
-              "s beyond the end of the array. "
-            );
-        }
-        if (bound < 0) {
-            throw new ArrayIndexOutOfBoundsException(
-              "Attempt to make an ArrayIterator that " + type +
-              "s before the start of the array. "
-            );
-        }
-    }
-
-    // Iterator interface
-    //-----------------------------------------------------------------------
-    /**
-     * Returns true if there are more elements to return from the array.
-     *
-     * @return true if there is a next element to return
-     */
-    public boolean hasNext() {
-        return (index < endIndex);
-    }
-
-    /**
-     * Returns the next element in the array.
-     *
-     * @return the next element in the array
-     * @throws NoSuchElementException if all the elements in the array
-     *  have already been returned
-     */
-    public Object next() {
-        if (hasNext() == false) {
-            throw new NoSuchElementException();
-        }
-        return Array.get(array, index++);
-    }
-
-    /**
-     * Throws {@link UnsupportedOperationException}.
-     *
-     * @throws UnsupportedOperationException always
-     */
-    public void remove() {
-        throw new UnsupportedOperationException("remove() method is not supported");
-    }
-
-    // Properties
-    //-----------------------------------------------------------------------
-    /**
-     * Gets the array that this iterator is iterating over. 
-     *
-     * @return the array this iterator iterates over, or <code>null</code> if
-     *  the no-arg constructor was used and {@link #setArray(Object)} has never
-     *  been called with a valid array.
-     */
-    public Object getArray() {
-        return array;
-    }
-    
-    /**
-     * Sets the array that the ArrayIterator should iterate over.
-     * <p>
-     * If an array has previously been set (using the single-arg constructor
-     * or this method) then that array is discarded in favour of this one.
-     * Iteration is restarted at the start of the new array.
-     * Although this can be used to reset iteration, the {@link #reset()} method
-     * is a more effective choice.
-     *
-     * @param array the array that the iterator should iterate over.
-     * @throws IllegalArgumentException if <code>array</code> is not an array.
-     * @throws NullPointerException if <code>array</code> is <code>null</code>
-     */
-    private void setArray(final Object array) {
-        // Array.getLength throws IllegalArgumentException if the object is not
-        // an array or NullPointerException if the object is null.  This call
-        // is made before saving the array and resetting the index so that the
-        // array iterator remains in a consistent state if the argument is not
-        // an array or is null.
-        this.endIndex = Array.getLength(array);
-        this.array = array;
-        this.index = 0;
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/main/java/org/drools/util/ArrayIterator.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/ArrayIterator.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -0,0 +1,158 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.drools.util;
+
+import java.lang.reflect.Array;
+import java.util.NoSuchElementException;
+
+/** 
+ * Implements an {@link java.util.Iterator Iterator} over any array.
+ * <p>
+ * The array can be either an array of object or of primitives. If you know 
+ * that you have an object array, the 
+ * {@link org.apache.commons.collections.iterators.ObjectArrayIterator ObjectArrayIterator}
+ * class is a better choice, as it will perform better.
+ * <p>
+ * The iterator implements a {@link #reset} method, allowing the reset of 
+ * the iterator back to the start if required.
+ *
+ * @since Commons Collections 1.0
+ * @version $Revision$ $Date$
+ *
+ * @author James Strachan
+ * @author Mauricio S. Moura
+ * @author Michael A. Smith
+ * @author Neil O'Toole
+ * @author Stephen Colebourne
+ */
+public class ArrayIterator implements java.util.Iterator {
+
+    /** The array to iterate over */    
+    protected Object array;
+    /** The end index to loop to */
+	protected int endIndex = 0;
+    /** The current iterator index */
+	protected int index = 0;
+    
+   
+    /**
+     * Constructs an ArrayIterator that will iterate over the values in the
+     * specified array.
+     *
+     * @param array the array to iterate over.
+     * @throws IllegalArgumentException if <code>array</code> is not an array.
+     * @throws NullPointerException if <code>array</code> is <code>null</code>
+     */
+    public ArrayIterator(final Object array) {
+        setArray(array);
+    }
+
+    /**
+     * Checks whether the index is valid or not.
+     * 
+     * @param bound  the index to check
+     * @param type  the index type (for error messages)
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    protected void checkBound(final int bound, final String type ) {
+        if (bound > this.endIndex) {
+            throw new ArrayIndexOutOfBoundsException(
+              "Attempt to make an ArrayIterator that " + type +
+              "s beyond the end of the array. "
+            );
+        }
+        if (bound < 0) {
+            throw new ArrayIndexOutOfBoundsException(
+              "Attempt to make an ArrayIterator that " + type +
+              "s before the start of the array. "
+            );
+        }
+    }
+
+    // Iterator interface
+    //-----------------------------------------------------------------------
+    /**
+     * Returns true if there are more elements to return from the array.
+     *
+     * @return true if there is a next element to return
+     */
+    public boolean hasNext() {
+        return (index < endIndex);
+    }
+
+    /**
+     * Returns the next element in the array.
+     *
+     * @return the next element in the array
+     * @throws NoSuchElementException if all the elements in the array
+     *  have already been returned
+     */
+    public Object next() {
+        if (hasNext() == false) {
+            throw new NoSuchElementException();
+        }
+        return Array.get(array, index++);
+    }
+
+    /**
+     * Throws {@link UnsupportedOperationException}.
+     *
+     * @throws UnsupportedOperationException always
+     */
+    public void remove() {
+        throw new UnsupportedOperationException("remove() method is not supported");
+    }
+
+    // Properties
+    //-----------------------------------------------------------------------
+    /**
+     * Gets the array that this iterator is iterating over. 
+     *
+     * @return the array this iterator iterates over, or <code>null</code> if
+     *  the no-arg constructor was used and {@link #setArray(Object)} has never
+     *  been called with a valid array.
+     */
+    public Object getArray() {
+        return array;
+    }
+    
+    /**
+     * Sets the array that the ArrayIterator should iterate over.
+     * <p>
+     * If an array has previously been set (using the single-arg constructor
+     * or this method) then that array is discarded in favour of this one.
+     * Iteration is restarted at the start of the new array.
+     * Although this can be used to reset iteration, the {@link #reset()} method
+     * is a more effective choice.
+     *
+     * @param array the array that the iterator should iterate over.
+     * @throws IllegalArgumentException if <code>array</code> is not an array.
+     * @throws NullPointerException if <code>array</code> is <code>null</code>
+     */
+    private void setArray(final Object array) {
+        // Array.getLength throws IllegalArgumentException if the object is not
+        // an array or NullPointerException if the object is null.  This call
+        // is made before saving the array and resetting the index so that the
+        // array iterator remains in a consistent state if the argument is not
+        // an array or is null.
+        this.endIndex = Array.getLength(array);
+        this.array = array;
+        this.index = 0;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/FileScannerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/FileScannerTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/FileScannerTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -1,15 +1,20 @@
 package org.drools.agent;
 
-import junit.framework.TestCase;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.rule.Package;
-
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.rule.Package;
+
+import junit.framework.TestCase;
+
 public class FileScannerTest extends TestCase {
 
     public void testHasChanged() {

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -106,7 +106,6 @@
                                  {Boolean.FALSE, "!=", "xyz", Boolean.FALSE},
                                  {Boolean.FALSE, "!=", "true", Boolean.TRUE},
                                  {Boolean.FALSE, "!=", "false", Boolean.FALSE}
-
         };
 
         runEvaluatorTest( data,

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -65,7 +65,7 @@
         };
 
         //workingMemory.addEventListener(listener );
-        final InputStream is = getClass().getResourceAsStream( "/manners32.dat" );
+        final InputStream is = getClass().getResourceAsStream( "/manners128.dat" );
         final List list = getInputObjects( is );
         for ( final Iterator it = list.iterator(); it.hasNext(); ) {
             final Object object = it.next();

Copied: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/integrationtests (from rev 19125, labs/jbossrules/branches/fixing_bad_merge/drools-core/src/test/java/org/drools/integrationtests)

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

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

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/BaseNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/BaseNodeTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/BaseNodeTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -81,7 +81,7 @@
         @Override
         public void networkUpdated() {
             // TODO Auto-generated method stub
-
+            
         }
 
     }

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSink.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSink.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSink.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,11 @@
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
 import org.drools.FactException;
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
@@ -23,11 +28,6 @@
 import org.drools.common.NodeMemory;
 import org.drools.spi.PropagationContext;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
 public class MockTupleSink extends TupleSource
     implements
     TupleSinkNode,
@@ -162,7 +162,7 @@
     @Override
     public void networkUpdated() {
         // TODO Auto-generated method stub
-
+        
     }
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -67,7 +67,7 @@
     @Override
     public void networkUpdated() {
         // TODO Auto-generated method stub
-
+        
     }
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -16,6 +16,14 @@
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import org.drools.Cheese;
 import org.drools.DroolsTestCase;
 import org.drools.FactException;
@@ -32,13 +40,6 @@
 import org.drools.rule.EntryPoint;
 import org.drools.spi.PropagationContext;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Properties;
-
 /**
  * @author mproctor
  *
@@ -140,8 +141,8 @@
                                                        PropagationContext.ASSERTION,
                                                        null,
                                                        null ),
-                           workingMemory );
-
+                           workingMemory );               
+        
         ClassObjectTypeConf conf = ( ClassObjectTypeConf ) workingMemory.getObjectTypeConfigurationRegistry().getObjectTypeConf( this.entryPoint.getEntryPoint(), ArrayList.class );
         assertLength( 3,
                       conf.getObjectTypeNodes() );

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

Modified: labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -446,7 +446,7 @@
 
                 public void writeExternal(ObjectOutput out) throws IOException {
                 }
-            };
+			};
 		}
 	}
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -17,7 +17,29 @@
 
 
 
-import com.google.gwt.user.client.rpc.SerializableException;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutput;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.jcr.ItemExistsException;
+import javax.jcr.RepositoryException;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.log4j.Logger;
 import org.drools.RuleBase;
@@ -57,8 +79,8 @@
 import org.drools.brms.server.util.TableDisplayHandler;
 import org.drools.common.AbstractRuleBase;
 import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.InternalWorkingMemory;
 import org.drools.common.DroolsObjectOutputStream;
-import org.drools.common.InternalWorkingMemory;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilderConfiguration;
@@ -67,8 +89,8 @@
 import org.drools.repository.AssetHistoryIterator;
 import org.drools.repository.AssetItem;
 import org.drools.repository.AssetItemIterator;
+import org.drools.repository.CategoryItem;
 import org.drools.repository.AssetPageList;
-import org.drools.repository.CategoryItem;
 import org.drools.repository.PackageItem;
 import org.drools.repository.PackageIterator;
 import org.drools.repository.RulesRepository;
@@ -85,27 +107,7 @@
 import org.jboss.seam.annotations.remoting.WebRemote;
 import org.jboss.seam.annotations.security.Restrict;
 
-import javax.jcr.ItemExistsException;
-import javax.jcr.RepositoryException;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import com.google.gwt.user.client.rpc.SerializableException;
 
 /**
  * This is the implementation of the repository service to drive the GWT based front end.

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2008-03-19 17:19:53 UTC (rev 19125)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2008-03-19 18:11:50 UTC (rev 19126)
@@ -19,61 +19,32 @@
 import com.google.gwt.user.client.rpc.IsSerializable;
 import com.google.gwt.user.client.rpc.SerializableException;
 import junit.framework.TestCase;
+
+import org.apache.commons.io.IOUtils;
 import org.drools.Person;
 import org.drools.RuleBase;
 import org.drools.StatelessSession;
 import org.drools.brms.client.common.AssetFormats;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.brl.ActionFieldValue;
-import org.drools.brms.client.modeldriven.brl.ActionSetField;
-import org.drools.brms.client.modeldriven.brl.FactPattern;
-import org.drools.brms.client.modeldriven.brl.ISingleFieldConstraint;
-import org.drools.brms.client.modeldriven.brl.RuleModel;
-import org.drools.brms.client.modeldriven.brl.SingleFieldConstraint;
-import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
-import org.drools.brms.client.modeldriven.testing.FactData;
-import org.drools.brms.client.modeldriven.testing.FieldData;
-import org.drools.brms.client.modeldriven.testing.Scenario;
-import org.drools.brms.client.modeldriven.testing.VerifyFact;
-import org.drools.brms.client.modeldriven.testing.VerifyField;
-import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
-import org.drools.brms.client.rpc.AnalysisReport;
-import org.drools.brms.client.rpc.BuilderResult;
-import org.drools.brms.client.rpc.BulkTestRunResult;
-import org.drools.brms.client.rpc.DetailedSerializableException;
-import org.drools.brms.client.rpc.PackageConfigData;
-import org.drools.brms.client.rpc.RepositoryService;
-import org.drools.brms.client.rpc.RuleAsset;
-import org.drools.brms.client.rpc.RuleContentText;
-import org.drools.brms.client.rpc.ScenarioResultSummary;
-import org.drools.brms.client.rpc.ScenarioRunResult;
-import org.drools.brms.client.rpc.SnapshotInfo;
-import org.drools.brms.client.rpc.TableConfig;
-import org.drools.brms.client.rpc.TableDataResult;
-import org.drools.brms.client.rpc.TableDataRow;
-import org.drools.brms.client.rpc.ValidatedResponse;
+import org.drools.brms.client.modeldriven.brl.*;
+import org.drools.brms.client.modeldriven.testing.*;
+import org.drools.brms.client.rpc.*;
 import org.drools.brms.server.util.BRXMLPersistence;
 import org.drools.brms.server.util.IO;
 import org.drools.brms.server.util.ScenarioXMLPersistence;
 import org.drools.brms.server.util.TableDisplayHandler;
 import org.drools.brms.server.util.TestEnvironmentSessionHelper;
 import org.drools.common.DroolsObjectInputStream;
-import org.drools.repository.AssetItem;
-import org.drools.repository.CategoryItem;
-import org.drools.repository.PackageItem;
-import org.drools.repository.RulesRepository;
-import org.drools.repository.RulesRepositoryException;
-import org.drools.repository.StateItem;
+import org.drools.repository.*;
 import org.drools.rule.Package;
 import org.drools.util.BinaryRuleBaseLoader;
 
 import java.io.ByteArrayInputStream;
+import java.io.InputStreamReader;
+import java.io.ObjectInputStream;
+import java.io.StringReader;
 import java.io.ObjectInput;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 public class ServiceImplementationTest extends TestCase {
 




More information about the jboss-svn-commits mailing list