[jboss-svn-commits] JBL Code SVN: r25943 - in labs/jbossrules/branches/DroolsChance: drools-ant and 52 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 5 14:51:24 EDT 2009


Author: dsotty
Date: 2009-04-05 14:51:22 -0400 (Sun, 05 Apr 2009)
New Revision: 25943

Added:
   labs/jbossrules/branches/DroolsChance/drools-chance/
   labs/jbossrules/branches/DroolsChance/drools-chance/target/
   labs/jbossrules/branches/DroolsChance/drools-chance/target/test-classes/
Modified:
   labs/jbossrules/branches/DroolsChance/drools-ant/.classpath
   labs/jbossrules/branches/DroolsChance/drools-ant/.project
   labs/jbossrules/branches/DroolsChance/drools-api/.classpath
   labs/jbossrules/branches/DroolsChance/drools-api/.project
   labs/jbossrules/branches/DroolsChance/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemoryEntryPoint.java
   labs/jbossrules/branches/DroolsChance/drools-clips/.classpath
   labs/jbossrules/branches/DroolsChance/drools-clips/.project
   labs/jbossrules/branches/DroolsChance/drools-compiler/.classpath
   labs/jbossrules/branches/DroolsChance/drools-compiler/.project
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/reteoo/MockLeftTupleSink.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
   labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.classpath
   labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.project
   labs/jbossrules/branches/DroolsChance/drools-core/.classpath
   labs/jbossrules/branches/DroolsChance/drools-core/.project
   labs/jbossrules/branches/DroolsChance/drools-core/pom.xml
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBase.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBaseFactory.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/BetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultAgenda.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseProviderImpl.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyLeftTupleSinkAdapter.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyObjectSinkAdapter.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/FromNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSink.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSinkPropagator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/NotNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSinkPropagator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleLeftTupleSinkAdapter.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleObjectSinkAdapter.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeRestriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/EvalCondition.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MutableTypeConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Package.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Rule.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Constraint.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Evaluator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Restriction.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockLeftTupleSink.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java
   labs/jbossrules/branches/DroolsChance/drools-decisiontables/.classpath
   labs/jbossrules/branches/DroolsChance/drools-decisiontables/.project
   labs/jbossrules/branches/DroolsChance/drools-eclipse/.project
   labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.classpath
   labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.project
   labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.classpath
   labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.project
   labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.classpath
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.project
   labs/jbossrules/branches/DroolsChance/drools-guvnor/.classpath
   labs/jbossrules/branches/DroolsChance/drools-guvnor/.project
   labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.launch
   labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.mac.launch
   labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt
   labs/jbossrules/branches/DroolsChance/drools-jsr94/.classpath
   labs/jbossrules/branches/DroolsChance/drools-jsr94/.project
   labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.classpath
   labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.project
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.classpath
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.project
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.classpath
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.project
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.classpath
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.project
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.classpath
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.project
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.classpath
   labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.project
   labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.classpath
   labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.project
   labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.classpath
   labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.project
   labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.classpath
   labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.project
   labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.classpath
   labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.project
   labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.classpath
   labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.project
   labs/jbossrules/branches/DroolsChance/drools-repository/.classpath
   labs/jbossrules/branches/DroolsChance/drools-repository/.project
   labs/jbossrules/branches/DroolsChance/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java
   labs/jbossrules/branches/DroolsChance/drools-server/.classpath
   labs/jbossrules/branches/DroolsChance/drools-server/.project
   labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.classpath
   labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.project
   labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.classpath
   labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.project
   labs/jbossrules/branches/DroolsChance/drools-templates/.classpath
   labs/jbossrules/branches/DroolsChance/drools-templates/.project
   labs/jbossrules/branches/DroolsChance/drools-templates/src/test/java/org/drools/template/parser/ExternalSheetListenerTest.java
   labs/jbossrules/branches/DroolsChance/drools-verifier/.classpath
   labs/jbossrules/branches/DroolsChance/drools-verifier/.project
Log:
Imperfect Drools experimental

Modified: labs/jbossrules/branches/DroolsChance/drools-ant/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-ant/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-ant/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,30 +1,9 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/ant/ant-nodeps/1.6.5/ant-nodeps-1.6.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-decisiontables"/>
-  <classpathentry kind="src" path="/drools-templates"/>
-  <classpathentry kind="src" path="/drools-verifier"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-ant/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-ant/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-ant/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,24 +1,24 @@
-<projectDescription>
-  <name>drools-ant</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-    <project>drools-decisiontables</project>
-    <project>drools-templates</project>
-    <project>drools-verifier</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.maven.ide.eclipse.maven2Builder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-    <nature>org.maven.ide.eclipse.maven2Nature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-ant</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+    <project>drools-decisiontables</project>
+    <project>drools-templates</project>
+    <project>drools-verifier</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-api/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-api/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-api/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,39 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-digester/commons-digester/1.8/commons-digester-1.8.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-jexl/commons-jexl/1.1/commons-jexl-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/freemarker/freemarker/2.3.9/freemarker-2.3.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-impl/2.1.9/jaxb-impl-2.1.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-xjc/2.1.9/jaxb-xjc-2.1.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/jms/jms/1.1/jms-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/jxls/jxls-reader/0.9.6/jxls-reader-0.9.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-commons/1.1/milyn-commons-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-smooks-core/1.1/milyn-smooks-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-smooks-javabean/1.1/milyn-smooks-javabean-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.3.12-java1.5/mvel-1.3.12-java1.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.0.2-FINAL/poi-3.0.2-FINAL.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-api/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-api/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-api/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,20 +1,24 @@
-<projectDescription>
-  <name>drools-api</name>
-  <comment>A rule production system</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.drools.eclipse.droolsbuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.devzuz.q.maven.jdt.core.mavenIncrementalBuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-    <nature>org.devzuz.q.maven.jdt.core.mavenNature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-api</name>
+  <comment>A rule production system</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.drools.eclipse.droolsbuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.devzuz.q.maven.jdt.core.mavenIncrementalBuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+    <nature>org.devzuz.q.maven.jdt.core.mavenNature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemoryEntryPoint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemoryEntryPoint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemoryEntryPoint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,5 +1,9 @@
 package org.drools.runtime.rule;
 
+import org.drools.degrees.IDegree;
+import org.drools.reteoo.ConstraintKey;
+
+
 /**
  * <p>An entry-point is an abstract channel through where facts are inserted into the engine.</p>
  * <p>Drools 5 supports multiple entry-points into a single <code>StatefulKnowledgeBase</code>: the
@@ -54,5 +58,13 @@
      */
     void update(FactHandle handle,
                 Object object);
+    
+    
+    
+    
+    
+    void inject(String ruleName, Object object, ConstraintKey key, IDegree degree);
+    
+    
 
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-clips/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-clips/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-clips/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,23 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-clips/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-clips/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-clips/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-clips</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-clips</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,31 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.1.1/antlr-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty/6.1.9/jetty-6.1.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty-embedded/6.1.9/jetty-embedded-6.1.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty-util/6.1.9/jetty-util-6.1.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/servlet-api-2.5/6.1.9/servlet-api-2.5-6.1.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,16 +1,20 @@
-<projectDescription>
-  <name>drools-compiler</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-compiler</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -24,6 +24,7 @@
 import java.io.StringReader;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -31,6 +32,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.StringTokenizer;
 
 import org.drools.ChangeSet;
 import org.drools.PackageIntegrationException;
@@ -75,6 +77,7 @@
 import org.drools.lang.dsl.DSLMappingFile;
 import org.drools.lang.dsl.DSLTokenizedMappingFile;
 import org.drools.lang.dsl.DefaultExpander;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.ReteooRuleBase;
 import org.drools.rule.CompositeClassLoader;
 import org.drools.rule.Function;
@@ -284,15 +287,29 @@
                                                     IOException {
         this.resource = resource;
         final DrlParser parser = new DrlParser();
-        final PackageDescr pkg = parser.parse( resource.getInputStream() );
+        final PackageDescr pkg = parser.parse( resource.getInputStream() );                                  
+        
+        
+        
         this.results.addAll( parser.getErrors() );
         if ( !parser.hasErrors() ) {
-            addPackage( pkg );
+        	 //TODO: Where to do it?
+            System.out.println(this.getClass().toString()+" HACKED TO DO LEXICAL ANALYSIS");
+            pkg.setDependencies(doLexicalAnalysis(pkg));
+        	
+            addPackage( pkg );            
         }
+        
+        this.getPackageRegistry();
+        
+        
+        
         this.resource = null;
     }
 
-    /**
+    
+
+	/**
      * Load a rule package from XML source.
      * 
      * @param reader
@@ -646,6 +663,10 @@
                 if ( isEmpty( ruleDescr.getDialect() ) ) {
                     ruleDescr.addAttribute( new AttributeDescr( "dialect", pkgRegistry.getDialect() ) );
                 }
+                
+                //TODO : ...
+            	ruleDescr.setDependencies(packageDescr.getDependencies());
+            	
                 addRule( ruleDescr );
             }
         }
@@ -657,7 +678,8 @@
         // iterate and compile
         if ( this.ruleBase != null ) {
             for ( final Iterator it = packageDescr.getRules().iterator(); it.hasNext(); ) {
-                RuleDescr ruleDescr = (RuleDescr) it.next();
+                RuleDescr ruleDescr = (RuleDescr) it.next();                                	
+                
                 pkgRegistry = this.pkgRegistryMap.get( ruleDescr.getNamespace() );
                 this.ruleBase.addRule( pkgRegistry.getPackage(),
                                        pkgRegistry.getPackage().getRule( ruleDescr.getName() ) );
@@ -771,6 +793,11 @@
         // Merge imports
         final Map<String, ImportDeclaration> imports = pkg.getImports();
         imports.putAll( newPkg.getImports() );
+        
+        
+        //TODO: remove
+//        System.out.println(this.getClass()+" HACKED TO MERGE DEPs INTO PACKAGE");
+//        pkg.setDependencies(newPkg.getDependencies());
 
         String lastType = null;
         try {
@@ -860,6 +887,9 @@
             // define a new package
             pkg = new Package( packageDescr.getName() );
             pkg.setClassFieldAccessorCache( new ClassFieldAccessorCache( this.rootClassLoader ) );
+            
+//            //TODO: Remove the hack;
+//            pkg.setDependencies(packageDescr.getDependencies());
 
             // if there is a rulebase then add the package.
             if ( this.ruleBase != null ) {
@@ -880,6 +910,7 @@
         this.pkgRegistryMap.put( packageDescr.getName(),
                                  pkgRegistry );
 
+        
         mergePackage( packageDescr );
 
         return pkgRegistry;
@@ -1503,4 +1534,68 @@
     public CompositeClassLoader getRootClassLoader() {
         return this.rootClassLoader;
     }
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    private Map<ConstraintKey,Set<String>> doLexicalAnalysis(PackageDescr pkg) {
+    	Map<ConstraintKey,Set<String>> ans = new HashMap<ConstraintKey, Set<String>>();
+    	if (pkg == null)
+    		return Collections.emptyMap();
+    	
+    	for (RuleDescr r : pkg.getRules()) {
+    		String cons = (String) r.getConsequence();
+    		
+    		
+    		int idx = cons.indexOf("inject");
+    		while (idx != -1) {
+    			int endIdx = cons.indexOf(';', idx);
+    			
+    			StringTokenizer tok = new StringTokenizer(cons.substring(idx,endIdx),",)");
+    			tok.nextToken();
+    			ConstraintKey ck = new ConstraintKey(tok.nextToken().replaceAll("\"", ""),tok.nextToken().replaceAll("\"", ""),tok.nextToken().replaceAll("\"", ""));    			
+    			
+    			Set<String> deps = ans.get(ck);
+    			if (deps == null) {
+    				deps = new HashSet<String>();
+    				ans.put(ck,deps);
+    			}
+    			deps.add(r.getName());
+    				
+    		
+    			idx = cons.indexOf("inject",endIdx);
+    		}
+    		    		
+    	}
+    	
+    	
+    	for (ConstraintKey ck : ans.keySet()) {
+			Set<String> rNs = ans.get(ck);
+			System.out.print(ck+ " ");
+			for (String id : rNs) {
+				System.out.print(id+ " ");
+			}
+			System.out.println();
+		}
+		
+		return ans;
+	}
+    
+    
+    
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,7 +22,10 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
+import org.drools.reteoo.ConstraintKey;
 import org.drools.rule.Namespaceable;
 
 public class PackageDescr extends BaseDescr
@@ -43,6 +46,8 @@
     private List<FunctionDescr>        functions        = Collections.emptyList();
     private List<RuleDescr>            rules            = Collections.emptyList();
     private List<TypeDeclarationDescr> typeDeclarations = Collections.emptyList();
+    
+    private Map<ConstraintKey,Set<String>> dependencies = Collections.emptyMap();
 
     public PackageDescr() {
     }
@@ -196,4 +201,30 @@
     public List<TypeDeclarationDescr> getTypeDeclarations() {
         return this.typeDeclarations;
     }
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+	/**
+	 * @param dependencies the dependencies to set
+	 */
+	public void setDependencies(Map<ConstraintKey,Set<String>> dependencies) {
+		this.dependencies = dependencies;
+	}
+
+	/**
+	 * @return the dependencies
+	 */
+	public Map<ConstraintKey,Set<String>> getDependencies() {
+		return dependencies;
+	}
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -23,8 +23,10 @@
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.Set;
 
 import org.drools.io.Resource;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.rule.Dialectable;
 import org.drools.rule.Namespaceable;
 
@@ -50,6 +52,8 @@
     private String                      className;
 
     private Resource                    resource;
+	private Map<ConstraintKey, Set<String>> dependencies;
+    
 
     public RuleDescr() {
     }
@@ -239,4 +243,24 @@
     public String toString() {
         return "[Rule name='" + this.name + "']";
     }
+
+    
+    
+    
+    
+    /**
+	 * @param dependencies the dependencies to set
+	 */
+	public void setDependencies(Map<ConstraintKey,Set<String>> dependencies) {
+		this.dependencies = dependencies;
+	}
+
+	/**
+	 * @return the dependencies
+	 */
+	public Map<ConstraintKey,Set<String>> getDependencies() {
+		return dependencies;
+	}
+    
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -85,6 +85,11 @@
 
             context.getDialect().getConsequenceBuilder().build( context );
         }
+        
+        //TODO:
+        //System.out.println(this.getClass()+"HACKED TO ADD DEPsss"); 
+        
+        context.getRule().setDependencies(context.getRuleDescr().getDependencies());
 
     }
 

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/reteoo/MockLeftTupleSink.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/reteoo/MockLeftTupleSink.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/reteoo/MockLeftTupleSink.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -27,6 +27,7 @@
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class MockLeftTupleSink extends LeftTupleSource
@@ -171,4 +172,11 @@
         return 0;
     }
 
+	public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+		// TODO Auto-generated method stub
+		
+	}
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -28,6 +28,7 @@
 import org.drools.common.TruthMaintenanceSystem;
 import org.drools.common.WorkingMemoryAction;
 import org.drools.concurrent.ExecutorService;
+import org.drools.degrees.IDegree;
 import org.drools.event.AgendaEventListener;
 import org.drools.event.AgendaEventSupport;
 import org.drools.event.RuleBaseEventListener;
@@ -40,6 +41,7 @@
 import org.drools.process.instance.WorkItemManager;
 import org.drools.process.instance.event.SignalManager;
 import org.drools.process.instance.timer.TimerManager;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LIANodePropagation;
 import org.drools.reteoo.PartitionTaskManager;
 import org.drools.rule.Rule;
@@ -541,4 +543,11 @@
         
     }
 
+
+	public void inject(String premise, Object object,
+			ConstraintKey key, IDegree degree) {
+		// TODO Auto-generated method stub
+		
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,22 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.9.GA/jboss-common-core-2.2.9.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/2.0.0.GA/jboss-vfs-2.0.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-container/drools-mc/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,16 +1,20 @@
-<projectDescription>
-  <name>drools-mc</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-mc</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,20 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-core/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,22 +1,26 @@
-<projectDescription>
-  <name>drools-core</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.drools.eclipse.droolsbuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.devzuz.q.maven.jdt.core.mavenIncrementalBuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-    <nature>org.devzuz.q.maven.jdt.core.mavenNature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-core</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.drools.eclipse.droolsbuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.devzuz.q.maven.jdt.core.mavenIncrementalBuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+    <nature>org.devzuz.q.maven.jdt.core.mavenNature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/pom.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/pom.xml	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/pom.xml	2009-04-05 18:51:22 UTC (rev 25943)
@@ -28,8 +28,10 @@
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-api</artifactId>
-    </dependency>         
+    </dependency>    
     
+     
+    
     <dependency>
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBase.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBase.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBase.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -39,6 +39,8 @@
     RuleBaseEventManager {
 
     public static final int RETEOO = 1;
+    
+    public static final int IMPERFECT_RETEOO = 99;
 
     StatelessSession newStatelessSession();
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBaseFactory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBaseFactory.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/RuleBaseFactory.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -57,6 +57,9 @@
                 
                 return new org.drools.reteoo.ReteooRuleBase( UUID.randomUUID().toString(),
                                                              config );
+                
+            case RuleBase.IMPERFECT_RETEOO :
+             	return new org.drools.reteoo.ImperfectRuleBase( UUID.randomUUID().toString(), config );
             default :
                 throw new IllegalArgumentException( "Unknown engine type: " + type );
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/BaseEvaluator.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/BaseEvaluator.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -23,7 +23,13 @@
 
 import org.drools.base.evaluators.Operator;
 import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
 import org.drools.spi.Evaluator;
+import org.drools.spi.FieldValue;
+import org.drools.spi.InternalReadAccessor;
 import org.drools.time.Interval;
 
 /**
@@ -117,5 +123,59 @@
     public int hashCode() {
         return (this.getValueType().hashCode()) ^ (this.getOperator().hashCode()) ^ (this.getClass().hashCode());
     }
+    
+    
+    
+    
+    
+    
+    
+    public abstract boolean evaluate(InternalWorkingMemory workingMemory,
+            final InternalReadAccessor leftExtractor,
+            final Object left,
+            final InternalReadAccessor rightExtractor,
+            final Object right);
+    
+    public abstract boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+            final VariableContextEntry context,
+            final Object left);
+    
+    public abstract boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+            final VariableContextEntry context,
+            final Object right);
+    
+    public abstract boolean evaluate(InternalWorkingMemory workingMemory,
+            final InternalReadAccessor extractor,
+            final Object object,
+            final FieldValue value); 
+    
+    
+    
+    public IDegree evaluate(InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, InternalReadAccessor extractor,
+			Object object, FieldValue value) {
+		return factory.fromBoolean(this.evaluate(workingMemory, extractor, object, value));
+	}
 
+	public IDegree evaluate(InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, InternalReadAccessor leftExtractor,
+			Object left, InternalReadAccessor rightExtractor, Object right) {
+		return factory.fromBoolean(this.evaluate(workingMemory, leftExtractor, left, rightExtractor, right));
+	}
+
+	public IDegree evaluateCachedLeft(InternalWorkingMemory workingMemory,
+			VariableContextEntry context, IDegreeFactory factory,
+			Object right) {
+		return factory.fromBoolean(this.evaluateCachedLeft(workingMemory, context, right));
+	}
+
+	public IDegree evaluateCachedRight(InternalWorkingMemory workingMemory,
+			VariableContextEntry context, IDegreeFactory factory,
+			Object left) {
+		return factory.fromBoolean(this.evaluateCachedRight(workingMemory, context, left));
+	}
+    
+    
+    
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -25,7 +25,10 @@
 
 import org.drools.FactException;
 import org.drools.common.InternalWorkingMemoryActions;
+import org.drools.degrees.IDegree;
 import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.ReteooStatefulSession;
 import org.drools.reteoo.ReteooWorkingMemory;
 import org.drools.rule.Declaration;
@@ -41,6 +44,8 @@
 import org.drools.spi.KnowledgeHelper;
 import org.drools.spi.Tuple;
 
+import org.drools.degrees.IDegree;
+
 public class DefaultKnowledgeHelper
     implements
     KnowledgeHelper,
@@ -53,6 +58,8 @@
     private Activation                   activation;
     private Tuple                        tuple;
     private InternalWorkingMemoryActions workingMemory;
+    
+    private IDegree						 consequenceDegree;
 
     public DefaultKnowledgeHelper() {
 
@@ -91,6 +98,7 @@
         this.subrule = null;
         this.activation = null;
         this.tuple = null;
+        this.consequenceDegree = null;
     }
 
     public void insert(final Object object) throws FactException {
@@ -272,4 +280,23 @@
     public Map<String, ExitPoint> getExitPoints() {
         return Collections.unmodifiableMap( this.workingMemory.getExitPoints() );
     }
+    
+    
+    
+    
+   
+    public void setConsequenceDegree(IDegree deg) {
+    	this.consequenceDegree = deg;
+    }
+    
+    public void inject(Object object, String field, String op, String value) {
+    	System.out.println(this.getClass()+" : KH injects a rule for degree "+getConsequenceDegree());
+    	workingMemory.inject(this.getRule().getName(), object, new ConstraintKey(field,op,value),getConsequenceDegree());    	
+    }
+    
+    public IDegree getConsequenceDegree() {
+    	return consequenceDegree;    
+    }
+    
+    
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -21,7 +21,10 @@
 
 import org.drools.FactException;
 import org.drools.common.InternalWorkingMemoryActions;
+import org.drools.degrees.IDegree;
 import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.ReteooStatefulSession;
 import org.drools.reteoo.ReteooWorkingMemory;
 import org.drools.rule.Declaration;
@@ -204,4 +207,22 @@
     public Map<String, ExitPoint> getExitPoints() {
         return Collections.unmodifiableMap( this.workingMemory.getExitPoints() );
     }
+
+    
+    
+    
+	public void inject(Object object, String field, String op, String value) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public IDegree getConsequenceDegree() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void setConsequenceDegree(IDegree deg) {
+		// TODO Auto-generated method stub
+		
+	}
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -32,6 +32,8 @@
 import org.drools.common.EventFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.rule.VariableRestriction.LongVariableContextEntry;
 import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
 import org.drools.rule.VariableRestriction.VariableContextEntry;
@@ -436,6 +438,8 @@
             }
         }
 
+		
+
     }
 
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -53,6 +53,8 @@
 import org.drools.base.MapGlobalResolver;
 import org.drools.concurrent.ExecutorService;
 import org.drools.definition.process.Process;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.event.AgendaEventListener;
 import org.drools.event.AgendaEventSupport;
 import org.drools.event.RuleBaseEventListener;
@@ -72,11 +74,17 @@
 import org.drools.process.instance.context.variable.VariableScopeInstance;
 import org.drools.process.instance.event.SignalManager;
 import org.drools.process.instance.timer.TimerManager;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.EntryPointNode;
+import org.drools.reteoo.Evaluation;
+import org.drools.reteoo.EvaluationTemplate;
+import org.drools.reteoo.IGammaNode;
+import org.drools.reteoo.ImperfectRuleBase;
 import org.drools.reteoo.InitialFactHandle;
 import org.drools.reteoo.InitialFactHandleDummyObject;
 import org.drools.reteoo.LIANodePropagation;
 import org.drools.reteoo.LeftTuple;
+import org.drools.reteoo.ObjectSource;
 import org.drools.reteoo.ObjectTypeConf;
 import org.drools.reteoo.PartitionTaskManager;
 import org.drools.rule.Declaration;
@@ -105,6 +113,7 @@
 import org.drools.workflow.core.node.EventTrigger;
 import org.drools.workflow.core.node.StartNode;
 import org.drools.workflow.core.node.Trigger;
+import org.joda.time.field.ImpreciseDateTimeField;
 
 /**
  * Implementation of <code>WorkingMemory</code>.
@@ -255,6 +264,7 @@
         this.id = id;
         this.config = config;
         this.ruleBase = ruleBase;
+        
         this.handleFactory = handleFactory;
         this.environment = environment;
         
@@ -328,6 +338,7 @@
         initProcessEventListeners();
         initPartitionManagers();
         initTransient();
+        
     }
     
     public static class GlobalsAdapter implements GlobalResolver {
@@ -1019,6 +1030,9 @@
                 addPropertyChangeListener( object );
             }
 
+            
+            
+            
             insert( handle,
                     object,
                     rule,
@@ -1063,11 +1077,28 @@
                                                                                   this.agenda.getDormantActivations(),
                                                                                   entryPoint );
 
-        this.entryPointNode.assertObject( handle,
-                                          propagationContext,
-                                          typeConf,
-                                          this );
-
+        //TODO:
+        //System.out.println(this.getClass().toString() + "Hacked to enroute imperfect");
+        
+        
+        if (this.ruleBase instanceof ImperfectRuleBase) {
+        	
+        	IDegreeFactory factory = ((ImperfectRuleBase) this.ruleBase).getDegreeFactory(); 
+        	
+                this.entryPointNode.assertImperfectObject((ImperfectFactHandle) handle,
+                		propagationContext, 
+                		typeConf,
+                		this,
+                		factory);                       
+        	
+        } else {
+        	this.entryPointNode.assertObject( handle,
+        									  propagationContext,
+        									  typeConf,
+        									  this );
+        }
+        
+        
         executeQueuedActions();
 
         this.workingMemoryEventSupport.fireObjectInserted( propagationContext,
@@ -1906,5 +1937,59 @@
     public Map<String, WorkingMemoryEntryPoint> getEntryPoints() {
         return this.entryPoints;
     }
+    
+    
+    
+    
+    
+    
+    
+    
+    public void inject(String ruleName, Object object, ConstraintKey key, IDegree degree) {
+    	Object factHandle = this.getObjectStore().getHandleForObject(object);
+    	    	
+    	IGammaNode node = this.ruleBase.getRete().getNode(key);
+    	
+    	if (factHandle == null) {
+    		//Object does not exist, YET
+    		//Prepare eval to be collected...    	
+    		if (node != null)
+    			node.storeEvaluation(object, prepareEval(ruleName,object,key,degree,node));
+    	} else {
+    		if (factHandle instanceof ImperfectFactHandle) {
+    			
+    			ImperfectFactHandle ifHandle = (ImperfectFactHandle) factHandle;
+    			
+    			Evaluation eval = ifHandle.getPropertyDegree(key);
+    			
+    			if (eval == null && node != null) {    				    				
+    				// Object exsits, but its prop hasn't been evaluated yet
+    				// Prepare eval to be collected at the node...
+    				node.storeEvaluation(object,prepareEval(ruleName,object,key,degree,node));
+    				    				    				
+    			} else {
+    				// Object exists and has already been eval'ed
+    				// Add new degree to evaluation
+    				//TODO: 1 should be confidence!
+    				eval.addDegree(ruleName, degree,1);
+    				//Notification is implicit in the record...
+    			}
+    			
+    		} else {
+    			throw new RuntimeException("Tried to inject a crisp fact!!");
+    		}    		
+    	}
+		
+		return;
+	}
 
+	private Evaluation prepareEval(String ruleName, Object object, ConstraintKey key,
+			IDegree degree, IGammaNode node) {
+				
+		EvaluationTemplate templ = node.getEvaluationTemplate(key);
+		
+		return templ.spawn(ruleName,degree);
+		
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/BetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/BetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/BetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -3,7 +3,10 @@
 import java.io.Externalizable;
 
 import org.drools.RuleBaseConfiguration;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 import org.drools.util.LinkedList;
@@ -27,7 +30,13 @@
 
     public boolean isAllowedCachedRight(ContextEntry[] context,
                                         LeftTuple tuple);
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+            InternalFactHandle handle, IDegreeFactory factory);
 
+    public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+             LeftTuple tuple, IDegreeFactory factory);
+
     public LinkedList getConstraints();
 
     public boolean isIndexed();
@@ -41,5 +50,7 @@
     public void resetTuple(final ContextEntry[] context);
 
     public void resetFactHandle(final ContextEntry[] context);
+    
+    public ConstraintKey getConstraintKey();
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultAgenda.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultAgenda.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultAgenda.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -36,6 +36,7 @@
 import org.drools.event.rule.ActivationCancelledCause;
 import org.drools.impl.StatefulKnowledgeSessionImpl;
 import org.drools.process.instance.ProcessInstance;
+import org.drools.reteoo.ImperfectAgendaItem;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.ReteooWorkingMemory;
 import org.drools.rule.Declaration;
@@ -930,6 +931,12 @@
         activation.setActivated( false );
 
         try {
+        	//TODO:
+        	//System.out.println(this.getClass()+"Hacked fireActivation to insert consequence degree");
+        	
+        	if (activation instanceof ImperfectAgendaItem)
+        		this.knowledgeHelper.setConsequenceDegree(((ImperfectAgendaItem) activation).getDegree());
+        	
             this.knowledgeHelper.setActivation( activation );
             activation.getRule().getConsequence().evaluate( this.knowledgeHelper,
                                                             this.workingMemory );

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,11 +20,15 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.base.evaluators.Operator;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.LeftTupleMemory;
 import org.drools.reteoo.RightTupleMemory;
@@ -36,6 +40,7 @@
 import org.drools.util.LeftTupleList;
 import org.drools.util.LinkedList;
 import org.drools.util.LinkedListEntry;
+import org.drools.util.LinkedListNode;
 import org.drools.util.RightTupleIndexHashTable;
 import org.drools.util.RightTupleList;
 import org.drools.util.AbstractHashTable.FieldIndex;
@@ -187,6 +192,26 @@
         return true;
     }
 
+    public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	// skip the indexed constraints
+        LinkedListEntry entry = (LinkedListEntry) findNode( this.indexed+1 );
+        java.util.LinkedList<IDegree> degs = new java.util.LinkedList<IDegree>();
+        
+        int i = 1;
+        while ( entry != null ) {
+            IDegree deg = ((BetaNodeFieldConstraint) entry.getObject()).isSatisfiedCachedLeft( context[this.indexed + i],
+                                                                                     handle, factory );
+            degs.add(deg);
+            entry = (LinkedListEntry) entry.getNext();
+            i++;
+        }
+        
+        return factory.getAndOperator().eval(degs);
+        
+	}
+	
+    
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#isAllowedCachedRight(org.drools.reteoo.ReteTuple)
      */
@@ -206,6 +231,24 @@
         }
         return true;
     }
+    
+    public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+			LeftTuple tuple, IDegreeFactory factory) {
+    	LinkedListEntry entry = (LinkedListEntry) findNode( this.indexed+1 );
+        java.util.LinkedList<IDegree> degs = new java.util.LinkedList<IDegree>();
+        
+        int i = 1;
+        while ( entry != null ) {
+            IDegree deg = ((BetaNodeFieldConstraint) entry.getObject()).isSatisfiedCachedRight(tuple, 
+            																		 context[this.indexed + i],
+                                                                                     factory );
+            degs.add(deg);
+            entry = (LinkedListEntry) entry.getNext();
+            i++;
+        }
+        
+        return factory.getAndOperator().eval(degs);
+	}
 
     public boolean isIndexed() {
         // false if -1
@@ -303,5 +346,24 @@
 
         return this.constraints.equals( other.constraints );
     }
-
+    
+    
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {
+			int N = this.constraints.size();			
+			ConstraintKey[] cks = new ConstraintKey[N];
+			LinkedListEntry entry = (LinkedListEntry) this.constraints.getFirst();
+			int j = 0;
+			while (entry != null) {				
+				cks[j++] = ((BetaNodeFieldConstraint) entry.getObject()).getConstraintKey();
+			}
+							
+			singletonKey = new ConstraintKey("and",cks);
+		}
+		return singletonKey;
+	}
+	
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -24,7 +24,10 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.base.evaluators.Operator;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.LeftTupleMemory;
 import org.drools.reteoo.RightTupleMemory;
@@ -172,7 +175,28 @@
                                                                        handle )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( context[1],
                                                                                                                                             handle ));
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	IDegree[] degs = new IDegree[2];
+    	degs[0] = this.constraint0.isSatisfiedCachedLeft(context[0], handle, factory);
+    	degs[1] = this.constraint1.isSatisfiedCachedLeft(context[1], handle, factory);
+    	
+    	return factory.getAndOperator().eval(degs);
+		
+	}
+	
+    
+    public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+			LeftTuple tuple, IDegreeFactory factory) {
+    	IDegree[] degs = new IDegree[2];
+		degs[0] = this.constraint0.isSatisfiedCachedRight(tuple, context[0], factory);
+		degs[1] = this.constraint0.isSatisfiedCachedRight(tuple, context[1], factory);
+		
+    	return factory.getAndOperator().eval(degs);
+	}
 
+
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#isAllowedCachedRight(org.drools.reteoo.ReteTuple)
      */
@@ -299,5 +323,16 @@
     public ContextEntry[] createContext() {
         return new ContextEntry[]{this.constraint0.createContextEntry(), this.constraint1.createContextEntry()};
     }
-
+    
+    
+    
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {				
+			singletonKey = new ConstraintKey("and",new ConstraintKey[] {constraint0.getConstraintKey(),constraint1.getConstraintKey()});
+		}
+		return singletonKey;
+	}
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -21,7 +21,10 @@
 import java.io.ObjectOutput;
 
 import org.drools.RuleBaseConfiguration;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 import org.drools.util.LeftTupleList;
@@ -143,4 +146,23 @@
         return EMPTY;
     }
 
+	public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return factory.True();
+	}
+
+	public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+			LeftTuple tuple, IDegreeFactory factory) { 
+		return factory.True();
+	}
+	
+	private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {				
+			singletonKey = new ConstraintKey("and",new ConstraintKey[] {});
+		}
+		return singletonKey;
+	}
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,7 +19,13 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
 
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 import org.drools.rule.Declaration;
@@ -86,12 +92,23 @@
                                        final InternalFactHandle handle) {
         return ((InstanceEqualsConstraintContextEntry) context).left == handle.getObject();
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return factory.fromBoolean(isAllowedCachedLeft(context, handle));
+	}
 
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         return tuple.get( this.otherPattern.getOffset() ).getObject() == ((InstanceEqualsConstraintContextEntry) context).right;
     }
+    
+	public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		return factory.fromBoolean(isAllowedCachedRight(tuple, context));
+	}
 
+
     public String toString() {
         return "[InstanceEqualsConstraint otherPattern=" + this.otherPattern + " ]";
     }
@@ -181,4 +198,25 @@
     public ConstraintType getType() {
         return ConstraintType.BETA;
     }
+
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {				
+			singletonKey = new ConstraintKey("this","equals","other");
+		}
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+
+	public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,12 +19,19 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
 
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 import org.drools.rule.Declaration;
 import org.drools.rule.Pattern;
 import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.util.LinkedListEntry;
 
 public class InstanceNotEqualsConstraint
     implements
@@ -84,11 +91,23 @@
                                        final InternalFactHandle handle) {
         return ((InstanceNotEqualsConstraintContextEntry) context).left != handle.getObject();
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return factory.fromBoolean(isAllowedCachedLeft(context, handle));
+	}
 
+	
+
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         return tuple.get( this.otherPattern.getOffset() ).getObject() != ((InstanceNotEqualsConstraintContextEntry) context).right;
     }
+    
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		return factory.fromBoolean(isAllowedCachedRight(tuple, context));
+	}
 
     public String toString() {
         return "[InstanceEqualsConstraint otherPattern=" + this.otherPattern + " ]";
@@ -178,4 +197,27 @@
         }
     }
 
+    
+
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {			
+			singletonKey = new ConstraintKey("this","!=","other");
+		}
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+
+	public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -12,7 +12,10 @@
 import org.drools.RuntimeDroolsException;
 import org.drools.WorkingMemoryEntryPoint;
 import org.drools.RuleBaseConfiguration.AssertBehaviour;
+import org.drools.degrees.IDegree;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.EntryPointNode;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.ObjectTypeConf;
 import org.drools.rule.EntryPoint;
@@ -483,4 +486,15 @@
         return this.ruleBase;
     }
 
+	
+	public void inject(String premise, Object object,
+			ConstraintKey key, IDegree degree) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	
+
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -24,7 +24,10 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.base.evaluators.Operator;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.LeftTupleMemory;
 import org.drools.reteoo.RightTupleMemory;
@@ -411,4 +414,36 @@
         return new ContextEntry[]{this.constraint0.createContextEntry(), this.constraint1.createContextEntry(), this.constraint2.createContextEntry(), this.constraint3.createContextEntry()};
     }
 
+	public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		IDegree[] degs = new IDegree[4];
+		degs[0] = this.constraint0.isSatisfiedCachedLeft(context[0], handle, factory);
+    	degs[1] = this.constraint1.isSatisfiedCachedLeft(context[1], handle, factory);
+    	degs[2] = this.constraint1.isSatisfiedCachedLeft(context[2], handle, factory);
+    	degs[3] = this.constraint1.isSatisfiedCachedLeft(context[3], handle, factory);
+    	
+    	return factory.getAndOperator().eval(degs);
+	}
+
+	public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+			LeftTuple tuple, IDegreeFactory factory) {
+		
+		IDegree[] degs = new IDegree[4];
+		degs[0] = this.constraint0.isSatisfiedCachedRight(tuple, context[0], factory);
+		degs[1] = this.constraint0.isSatisfiedCachedRight(tuple, context[1], factory);
+		degs[2] = this.constraint0.isSatisfiedCachedRight(tuple, context[2], factory);
+		degs[3] = this.constraint0.isSatisfiedCachedRight(tuple, context[3], factory);
+    	
+    	return factory.getAndOperator().eval(degs);
+	}
+
+	private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {				
+			singletonKey = new ConstraintKey("and",new ConstraintKey[] {constraint0.getConstraintKey(),constraint1.getConstraintKey(),constraint2.getConstraintKey(),constraint3.getConstraintKey()});
+		}
+		return singletonKey;
+	}
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -21,7 +21,10 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.base.evaluators.Operator;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.LeftTupleMemory;
 import org.drools.reteoo.RightTupleMemory;
@@ -236,4 +239,26 @@
         context[0].resetTuple();
     }
 
+	public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return this.constraint.isSatisfiedCachedLeft( context[0],
+                handle, factory );
+	}
+
+	public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+			LeftTuple tuple, IDegreeFactory factory) {
+		return this.constraint.isSatisfiedCachedRight(tuple, context[0], factory);
+	}
+
+	
+	private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {				
+			singletonKey = new ConstraintKey("and",new ConstraintKey[] {constraint.getConstraintKey()});
+		}
+		return singletonKey;
+	}
+	
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -24,7 +24,10 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.base.evaluators.Operator;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.BetaMemory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.reteoo.LeftTupleMemory;
 import org.drools.reteoo.RightTupleMemory;
@@ -352,4 +355,37 @@
         return new ContextEntry[]{this.constraint0.createContextEntry(), this.constraint1.createContextEntry(), this.constraint2.createContextEntry()};
     }
 
+	public IDegree isSatisfiedCachedLeft(ContextEntry[] context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		
+		IDegree[] degs = new IDegree[3];
+		degs[0] = this.constraint0.isSatisfiedCachedLeft(context[0], handle, factory);
+    	degs[1] = this.constraint1.isSatisfiedCachedLeft(context[1], handle, factory);
+    	degs[2] = this.constraint1.isSatisfiedCachedLeft(context[2], handle, factory);
+    	
+    	return factory.getAndOperator().eval(degs);
+	}
+
+	public IDegree isSatisfiedCachedRight(ContextEntry[] context,
+			LeftTuple tuple, IDegreeFactory factory) {
+		IDegree[] degs = new IDegree[3];
+		degs[0] = this.constraint0.isSatisfiedCachedRight(tuple, context[0], factory);
+		degs[1] = this.constraint0.isSatisfiedCachedRight(tuple, context[1], factory);
+		degs[2] = this.constraint0.isSatisfiedCachedRight(tuple, context[2], factory);
+		
+    	
+    	return factory.getAndOperator().eval(degs);
+	}
+
+	
+	private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {				
+			singletonKey = new ConstraintKey("and",new ConstraintKey[] {constraint0.getConstraintKey(),constraint1.getConstraintKey(),constraint2.getConstraintKey()});
+		}
+		return singletonKey;
+	}
+	
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,7 +19,13 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
 
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 import org.drools.rule.Declaration;
@@ -95,12 +101,23 @@
         final LeftTuple tuple = ((LeftTuple) handle.getObject()).getSubTuple( ((TupleStartEqualsConstraintContextEntry) context).compareSize );
         return ((TupleStartEqualsConstraintContextEntry) context).left.equals( tuple );
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return factory.fromBoolean(isAllowedCachedLeft(context, handle));
+	}
+    
 
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         return tuple.equals( ((TupleStartEqualsConstraintContextEntry) context).right.getSubTuple( tuple.size() ) );
     }
 
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		return factory.fromBoolean(isAllowedCachedRight(tuple, context));
+	}
+    
     public String toString() {
         return "[ TupleStartEqualsConstraint ]";
     }
@@ -184,4 +201,25 @@
     public ConstraintType getType() {
         return ConstraintType.BETA;
     }
+
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null)
+			singletonKey = new ConstraintKey("tuple","starts","...");
+		return singletonKey;
+	}
+
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+	
+	public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -52,6 +52,8 @@
 import org.drools.event.knowlegebase.impl.BeforeRuleRemovedEventImpl;
 import org.drools.process.command.CommandService;
 import org.drools.process.command.impl.CommandBasedStatefulKnowledgeSession;
+import org.drools.reteoo.ImperfectAgendaItem;
+import org.drools.reteoo.ImperfectRuleBase;
 import org.drools.reteoo.ReteooRuleBase;
 import org.drools.reteoo.ReteooStatefulSession;
 import org.drools.rule.Package;
@@ -119,6 +121,8 @@
             list.add( ((KnowledgePackageImp) knowledgePackage).pkg  );
         }
         ((ReteooRuleBase)ruleBase).addPackages( list);
+
+        
     }
 
     public Collection<KnowledgePackage> getKnowledgePackages() {

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseProviderImpl.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseProviderImpl.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/KnowledgeBaseProviderImpl.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -5,6 +5,7 @@
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseConfiguration;
 import org.drools.KnowledgeBaseProvider;
+import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
 import org.drools.SessionConfiguration;
@@ -29,12 +30,17 @@
         return new SessionConfiguration(properties);
     }        
     
+    
+    
 	public KnowledgeBase newKnowledgeBase() {		
-		return new KnowledgeBaseImpl( RuleBaseFactory.newRuleBase() );		
+		System.out.println("WARNING "+this.getClass().getName()+ " HACKED METHOD TO ACTIVATE IMPERFECTION");
+		return new KnowledgeBaseImpl( RuleBaseFactory.newRuleBase(RuleBase.IMPERFECT_RETEOO) );
+		//return new KnowledgeBaseImpl( RuleBaseFactory.newRuleBase(RuleBase.RETEOO) );
 	}	
 	
     public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) {
-        return new KnowledgeBaseImpl( RuleBaseFactory.newRuleBase( ( RuleBaseConfiguration ) conf ) );
+    	System.out.println("WARNING "+this.getClass().getName()+ " HACKED METHOD TO ACTIVATE IMPERFECTION");		
+        return new KnowledgeBaseImpl( RuleBaseFactory.newRuleBase(RuleBase.IMPERFECT_RETEOO, ( RuleBaseConfiguration ) conf ) );
     }
 
 	public Environment newEnvironment() {

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -18,6 +18,7 @@
 import org.drools.common.InternalWorkingMemoryEntryPoint;
 import org.drools.common.ObjectStore;
 import org.drools.common.ObjectTypeConfigurationRegistry;
+import org.drools.degrees.IDegree;
 import org.drools.event.ActivationCancelledEvent;
 import org.drools.event.ActivationCreatedEvent;
 import org.drools.event.AfterActivationFiredEvent;
@@ -50,7 +51,10 @@
 import org.drools.event.rule.impl.ObjectInsertedEventImpl;
 import org.drools.event.rule.impl.ObjectRetractedEventImpl;
 import org.drools.event.rule.impl.ObjectUpdatedEventImpl;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.rule.Rule;
 import org.drools.runtime.BatchExecutionResults;
 import org.drools.runtime.BatchExecutor;
 import org.drools.runtime.Environment;
@@ -659,4 +663,21 @@
         }
     }
 
+    
+    
+    
+	public void inject(String rule, Object object, ConstraintKey key,
+			IDegree degree) {
+		// TODO Auto-generated method stub
+		
+	}
+
+    
+    
+    
+    
+    
+    
+    
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -7,6 +7,7 @@
 
 import org.drools.KnowledgeBase;
 import org.drools.command.Command;
+import org.drools.degrees.IDegree;
 import org.drools.event.process.ProcessEventListener;
 import org.drools.event.rule.AgendaEventListener;
 import org.drools.event.rule.WorkingMemoryEventListener;
@@ -49,7 +50,10 @@
 import org.drools.process.command.StartProcessCommand;
 import org.drools.process.command.UnregisterExitPointCommand;
 import org.drools.process.command.UpdateCommand;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.rule.Rule;
 import org.drools.runtime.BatchExecutionResults;
 import org.drools.runtime.Environment;
 import org.drools.runtime.ExitPoint;
@@ -382,6 +386,14 @@
                                         Object[] arguments) {
         QueryCommand cmd = new QueryCommand(null, query, arguments);
         return this.commandService.execute( cmd );
-    }    
+    }
 
+	
+
+	public void inject(String premise, Object object, ConstraintKey key,
+			IDegree degree) {
+		// TODO Auto-generated method stub
+		
+	}    
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -27,9 +27,11 @@
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuntimeDroolsException;
 import org.drools.common.BetaConstraints;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.PropagationContextImpl;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.Accumulate;
 import org.drools.rule.Behavior;
@@ -671,4 +673,21 @@
         }
 
     }
+
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		//TODO Add imperfeect
+		throw new UnsupportedOperationException("Imperfect Accumulate will be supported soon ");
+		
+	}
+
+	public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+		// TODO Add imperfect
+		throw new UnsupportedOperationException("Imperfect Accumulate will be supported soon ");
+		
+	}
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,16 +19,26 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.Observable;
+import java.util.Observer;
+import java.util.Set;
 
 import org.drools.FactException;
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
+import org.drools.reteoo.filters.IFilterStrategy;
+import org.drools.reteoo.filters.IFilteringNode;
 import org.drools.rule.ContextEntry;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.PropagationContext;
@@ -47,18 +57,29 @@
 public class AlphaNode extends ObjectSource
     implements
     ObjectSinkNode,
-    NodeMemory {
+    NodeMemory,
+    IFilteringNode, 
+    Observer,
+    IGammaNode {
 
+
+	
     /**
      *
      */
-    private static final long        serialVersionUID = 400L;
+    private static final long        serialVersionUID = 500L;
 
+    
+    private IFilterStrategy filterStrat; 
+    
     /** The <code>FieldConstraint</code> */
     private AlphaNodeFieldConstraint constraint;
 
     private ObjectSinkNode      previousRightTupleSinkNode;
     private ObjectSinkNode      nextRightTupleSinkNode;
+    
+    
+    private GammaMemory 		gammaMemory;
 
     public AlphaNode() {
 
@@ -85,6 +106,28 @@
                objectSource,
                context.getRuleBase().getConfiguration().getAlphaNodeHashingThreshold() );
         this.constraint = constraint;
+       
+        
+        this.gammaMemory = new GammaMemory();
+        InternalRuleBase ruleBase = context.getRuleBase();
+        if (ruleBase instanceof ImperfectRuleBase) {
+        	IDegreeFactory factory = ((ImperfectRuleBase) ruleBase).getDegreeFactory();
+        	this.filterStrat = factory.getDefaultStrategy();                	
+        
+        	
+        	
+        	this.constraint.buildEvaluationTemplate(this.id,context.getRule().getDependencies(), factory);
+        	
+        	Collection<ConstraintKey> keys = this.constraint.getAllConstraintKeys();
+        	for (ConstraintKey key : keys)
+        		context.getRuleBase().getRete().indexGammaNode(key,this);
+        	
+		        
+		        
+        }        
+        //TODO:
+        //System.out.println(this.getClass().getName() + "(id "+id+") constructor hacked to add filter strategy");
+        
     }
 
     public void readExternal(ObjectInput in) throws IOException,
@@ -126,7 +169,8 @@
         for ( int i = 0, length = workingMemories.length; i < length; i++ ) {
             final InternalWorkingMemory workingMemory = workingMemories[i];
             final PropagationContext propagationContext = new PropagationContextImpl( workingMemory.getNextPropagationIdCounter(),
-                                                                                      PropagationContext.RULE_ADDITION,
+                                                                                      PropagationContext.RULE_ADDITION, 
+                                                                                      
                                                                                       null,
                                                                                       null,
                                                                                       null );
@@ -149,7 +193,116 @@
                                              workingMemory );
         }
     }
+    
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		
+		final AlphaMemory memory = (AlphaMemory) workingMemory.getNodeMemory( this );
+		
+		System.out.println("--------------     Passing by alpha" + id);
 
+		//Collect any provided info
+		Collection<Evaluation> storedEvals = this.gammaMemory.retrieve(factHandle.getObject());
+		if (storedEvals != null) {
+			record.addEvaluations(storedEvals);
+			factHandle.addPropertyDegrees(storedEvals);
+		}
+			
+		
+		//Call internal evaluator, if not done before
+		ConstraintKey key = this.constraint.getConstraintKey();
+		Evaluation eval = factHandle.getPropertyDegree(key);
+		if (eval == null) {
+			eval = this.constraint.isSatisfied(factHandle,
+					workingMemory,
+					memory.context,
+					factory
+                	);	
+			Collection<Evaluation> useless = eval.getEvalTree(); 
+			for (Evaluation subEval : eval.getEvalTree()) {
+				factHandle.addPropertyDegree(subEval);
+				record.addEvaluation(subEval);
+			}
+				
+			
+		} else {
+			if (eval.getDegreeBit(Evaluation.EVAL) == null) {
+				Evaluation localEval = this.constraint.isSatisfied(factHandle,
+						workingMemory,
+						memory.context,
+						factory
+	                	);		
+				record.addEvaluation(localEval);
+			}			
+		}   
+		 
+		//IMPORTANT: LAST ADDITION IS MAIN NOW
+		
+		System.out.println("Answer is given by " + record.getMainEval().toString()+ " info : " +record.getMainEval().getInfoRate());
+		//Merge is automatical, so now we decide what to do
+		switch (this.filterStrat.doTry(record.getMainEval())) {
+			case IFilterStrategy.DROP : 
+				//time to die
+				return;
+			
+			case IFilterStrategy.HOLD : 
+				System.out.println("WARNING::::::::::::::::::::::::::: OBJECT HELD AT NODE "+this.constraint.getConstraintKey());
+					record.setFactHandle(factHandle);
+					record.setFactory(factory);
+					record.setPropagationContext(propagationContext);
+					record.setWorkingMemory(workingMemory);
+				record.addObserver(this);				
+				//wait for more
+				return;
+			
+			case IFilterStrategy.PASS :
+				//go on
+				this.sink.propagateAssertObject(factHandle,
+		            propagationContext,
+		            workingMemory,
+		            factory,
+		            record);
+				break;
+			default : return;			
+		}
+		
+	}  
+ 	
+	
+	public void update(Observable watcher, Object info) {
+		EvalRecord record = (EvalRecord) watcher;
+System.out.println("**************************************************************UPDATE");
+		switch (this.filterStrat.doTry(record.getMainEval())) {
+		case IFilterStrategy.DROP : 
+			record.deleteObserver(this);
+			return;
+		
+		case IFilterStrategy.HOLD : 
+			//do nothing
+			return;
+		
+		case IFilterStrategy.PASS :
+			//go on
+			record.deleteObserver(this);
+			//throw new RuntimeException("Awakened objeect");
+			//TODO
+			this.sink.propagateAssertObject(record.getFactHandle(),
+	            record.getPropagationContext(),
+	            record.getWorkingMemory(),
+	            record.getFactory(),
+	            record);
+			//break;
+		default : return;	
+		
+		}
+		
+		
+		// propagate
+	}
+
+
     public void updateSink(final ObjectSink sink,
                            final PropagationContext context,
                            final InternalWorkingMemory workingMemory) {
@@ -260,7 +413,50 @@
     public void setPreviousObjectSinkNode(final ObjectSinkNode previous) {
         this.previousRightTupleSinkNode = previous;
     }
+    
+    
+    
+    
+    public void setStrategy(IFilterStrategy newStrat) {
+		this.filterStrat = newStrat;
+	}
+    
+    protected IFilterStrategy getStrategy() {
+		return this.filterStrat;
+	    
+    }
+    
+    
+    
+    protected Evaluation fromTemplate() {
+    	return null;
+    }
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
 
+    
+    
+    
+    
+    
+    
+    
+
     public static class AlphaMemory
         implements
         Externalizable {
@@ -328,6 +524,56 @@
             // this is a short living adapter class, so no need for serialization
         }
 
+		public void assertObject(ImperfectFactHandle factHandle,
+				PropagationContext propagationContext,
+				InternalWorkingMemory workingMemory, IDegreeFactory factory,
+				EvalRecord record) {
+			
+			
+			Evaluation eval = this.constraint.isSatisfied( factHandle,
+                    workingMemory,
+                    this.contextEntry,
+                    factory);
+			
+			
+			record.addEvaluation(eval);
+		
+			
+			
+			
+			this.sink.assertObject(factHandle,
+                propagationContext,
+                workingMemory,
+                factory,
+                record);
+			
+			
+		}
 
+
     }
+
+    
+	public EvaluationTemplate getEvaluationTemplate(ConstraintKey key) {
+		return this.constraint.getEvalTemplate(key);
+	}
+	
+	
+	
+	
+	
+	
+
+	public Collection<Evaluation> getStoredEvals(Object o) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void storeEvaluation(Object object, Evaluation prepareEval) {
+		this.gammaMemory.store(object, prepareEval);
+	}
+
+	
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -25,12 +25,16 @@
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
 import org.drools.common.BetaConstraints;
+import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.AccumulateNode.AccumulateMemory;
 import org.drools.reteoo.CollectNode.CollectMemory;
+import org.drools.reteoo.filters.IFilterStrategy;
+import org.drools.reteoo.filters.IFilteringNode;
 import org.drools.rule.Behavior;
 import org.drools.rule.BehaviorManager;
 import org.drools.spi.BetaNodeFieldConstraint;
@@ -56,7 +60,7 @@
     LeftTupleSinkNode,
     ObjectSinkNode,
     RightTupleSink,
-    NodeMemory {
+    NodeMemory, IFilteringNode {
     
     // ------------------------------------------------------------
     // Instance members
@@ -81,6 +85,9 @@
     protected boolean         objectMemory = true;   // hard coded to true
     protected boolean         tupleMemoryEnabled;
 
+    
+    protected IFilterStrategy filterStrat;
+    
     // ------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------
@@ -114,6 +121,7 @@
         if ( this.constraints == null ) {
             throw new RuntimeException( "cannot have null constraints, must at least be an instance of EmptyBetaConstraints" );
         }
+                     
     }
 
     public void readExternal(ObjectInput in) throws IOException,
@@ -414,4 +422,14 @@
         this.previousObjectSinkNode = previous;
     }
     
+    
+    public void setStrategy(IFilterStrategy newStrat) {
+		this.filterStrat = newStrat;
+	}
+    
+    protected IFilterStrategy getStrategy() {
+		return this.filterStrat;
+	}
+    
+    
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CollectNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CollectNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -25,8 +25,10 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BetaConstraints;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.Behavior;
 import org.drools.rule.Collect;
@@ -561,4 +563,21 @@
 
     }
 
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		//TODO: Define method... 
+		throw new UnsupportedOperationException("Imperfect collect will be supported soon");
+		
+	}
+
+	public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+		// TODO Auto-generated method stub
+		throw new UnsupportedOperationException("Imperfect collect will be supported soon");
+		
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -8,6 +8,7 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class CompositeLeftTupleSinkAdapter extends AbstractLeftTupleSinkAdapter {
@@ -39,7 +40,23 @@
             doPropagateAssertLeftTuple( context, workingMemory, sink, newLeftTuple );
         }
     }
+    
+    public void propagateAssertLeftTuple(ImperfectLeftTuple leftTuple,
+			ImperfectRightTuple rightTuple, PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record, boolean leftTupleMemoryEnabled) {
+    	
+    	for( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
+            ImperfectLeftTuple newLeftTuple = new ImperfectLeftTuple( leftTuple, rightTuple, sink, leftTupleMemoryEnabled,record);
+            doPropagateAssertLeftTuple( context, workingMemory, factory, sink, newLeftTuple );
+        }
+		
+	}
+    
 
+
+	
+
     public void propagateAssertLeftTuple( final LeftTuple tuple, final PropagationContext context,
                                           final InternalWorkingMemory workingMemory,
                                           final boolean leftTupleMemoryEnabled ) {
@@ -49,6 +66,17 @@
         }
     }
 
+    
+    public void propagateAssertLeftTuple(ImperfectLeftTuple tuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, EvalRecord record,
+			boolean leftTupleMemoryEnabled) {
+    	for( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
+            doPropagateAssertLeftTuple( context, workingMemory, factory, sink,
+                                        new ImperfectLeftTuple( tuple, sink, leftTupleMemoryEnabled, record ) );
+        }
+	}
+        
     public void createAndPropagateAssertLeftTuple( final InternalFactHandle factHandle,
                                                    final PropagationContext context,
                                                    final InternalWorkingMemory workingMemory,
@@ -58,8 +86,21 @@
                                         new LeftTuple( factHandle, sink, leftTupleMemoryEnabled ) );
         }
     }
+    
+    public void createAndPropagateAssertLeftTuple(
+			InternalFactHandle factHandle, PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record,
+			boolean leftTupleMemoryEnabled) {
 
+    	for( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
+            doPropagateAssertLeftTuple( context, workingMemory, factory, sink,
+                                        new ImperfectLeftTuple( factHandle, sink, leftTupleMemoryEnabled, record ) );
+        }
+		
+	}
 
+
     public void propagateRetractLeftTuple( final LeftTuple leftTuple, final PropagationContext context,
                                            final InternalWorkingMemory workingMemory ) {
         LeftTuple child = leftTuple.getBetaChildren();
@@ -145,6 +186,14 @@
         sink.assertLeftTuple( leftTuple, context, workingMemory );
     }
 
+    
+    
+    protected void doPropagateAssertLeftTuple( PropagationContext context, InternalWorkingMemory workingMemory,
+    		IDegreeFactory factory,
+            LeftTupleSinkNode sink, ImperfectLeftTuple leftTuple ) {
+    	sink.assertLeftTuple( leftTuple, context, workingMemory, factory );
+    }
+    
     /**
      * This is a hook method that may be overriden by subclasses. Please keep it
      * protected.
@@ -159,5 +208,16 @@
         sink.retractLeftTuple( leftTuple, context, workingMemory );
     }
 
+	
 
+	
+
+	
+	
+
+	
+
+	
+
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -10,9 +10,11 @@
 import org.drools.base.ValueType;
 import org.drools.base.evaluators.Operator;
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.rule.LiteralConstraint;
 import org.drools.runtime.rule.Evaluator;
 import org.drools.spi.AlphaNodeFieldConstraint;
@@ -25,6 +27,7 @@
 import org.drools.util.LinkedListNode;
 import org.drools.util.ObjectHashMap;
 import org.drools.util.ObjectHashMap.ObjectEntry;
+import org.joda.time.field.ImpreciseDateTimeField;
 
 public class CompositeObjectSinkAdapter extends AbstractObjectSinkAdapter {
 
@@ -335,6 +338,8 @@
                 }
             }
         }
+        
+        
 
         // propagate unhashed
         if ( this.hashableSinks != null ) {
@@ -352,6 +357,55 @@
 
     }
 
+    
+    
+    public void propagateAssertObject(ImperfectFactHandle factHandle,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, EvalRecord record) {
+    	
+    	final Object object = factHandle.getObject();
+
+        // Iterates t he FieldIndex collection, which tells you if particularly field is hashed or not
+        // if the field is hashed then it builds the hashkey to return the correct sink for the current objects slot's
+        // value, one object may have multiple fields indexed.
+        if ( this.hashedFieldIndexes != null ) {
+            // Iterate the FieldIndexes to see if any are hashed
+            for ( FieldIndex fieldIndex = (FieldIndex) this.hashedFieldIndexes.getFirst(); fieldIndex != null; fieldIndex = (FieldIndex) fieldIndex.getNext() ) {
+                if ( !fieldIndex.isHashed() ) {
+                    continue;
+                }
+                // this field is hashed so set the existing hashKey and see if there is a sink for it
+                final int index = fieldIndex.getIndex();
+                final ReadAccessor extractor = fieldIndex.getFieldExtactor();
+                HashKey hashKey = new HashKey( index,
+                                               object,
+                                               fieldIndex.getFieldExtractor() );
+                final ObjectSink sink = (ObjectSink) this.hashedSinkMap.get( hashKey );
+                if ( sink != null ) {
+                    // The sink exists so propagate
+                    doPropagateAssertObject( factHandle, context, workingMemory, factory, record.clone(), sink );
+                }
+            }
+        }
+        
+        
+
+        // propagate unhashed
+        if ( this.hashableSinks != null ) {
+            for ( ObjectSinkNode sink = this.hashableSinks.getFirst(); sink != null; sink = sink.getNextObjectSinkNode() ) {
+                doPropagateAssertObject( factHandle, context, workingMemory, factory, record.clone(), sink );
+            }
+        }
+
+        if ( this.otherSinks != null ) {
+            // propagate others
+            for ( ObjectSinkNode sink = this.otherSinks.getFirst(); sink != null; sink = sink.getNextObjectSinkNode() ) {
+                doPropagateAssertObject( factHandle, context, workingMemory, factory, record.clone(), sink );
+            }
+        }
+		
+	}
+    
     /**
      * This is a Hook method for subclasses to override. Please keep it protected unless you know
      * what you are doing.
@@ -367,6 +421,15 @@
                            context,
                            workingMemory );
     }
+    
+    protected void doPropagateAssertObject( ImperfectFactHandle factHandle, PropagationContext context,
+            InternalWorkingMemory workingMemory, IDegreeFactory factory, EvalRecord record, ObjectSink sink ) {
+    	sink.assertObject( factHandle,
+    					   context,
+    					   workingMemory, 
+    					   factory, 
+    					   record );
+}
 
     public BaseNode getMatchingNode(BaseNode candidate) {
         if ( this.otherSinks != null ) {
@@ -801,4 +864,6 @@
             this.previous = previous;
         }
     }
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyLeftTupleSinkAdapter.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyLeftTupleSinkAdapter.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyLeftTupleSinkAdapter.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -8,6 +8,7 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class EmptyLeftTupleSinkAdapter extends AbstractLeftTupleSinkAdapter {
@@ -76,4 +77,28 @@
         return 0;
     }
 
+	public void createAndPropagateAssertLeftTuple(
+			InternalFactHandle factHandle, PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record, boolean leftTupleWorkingMemoryEnabled) {
+		
+		
+	}
+
+	public void propagateAssertLeftTuple(ImperfectLeftTuple leftTuple,
+			ImperfectRightTuple rightTuple, PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record, boolean leftTupleMemoryEnabled) {
+		
+		
+	}
+
+	public void propagateAssertLeftTuple(ImperfectLeftTuple tuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, EvalRecord record,
+			boolean leftTupleMemoryEnabled) {
+		
+		
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyObjectSinkAdapter.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyObjectSinkAdapter.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EmptyObjectSinkAdapter.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -5,9 +5,11 @@
 import java.io.ObjectOutput;
 
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class EmptyObjectSinkAdapter extends AbstractObjectSinkAdapter {
@@ -71,4 +73,10 @@
         return obj instanceof EmptyObjectSinkAdapter;
     }
 
+	public void propagateAssertObject(ImperfectFactHandle factHandle,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, EvalRecord record) {
+		
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EntryPointNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -27,12 +27,14 @@
 
 import org.drools.base.ShadowProxy;
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.InternalWorkingMemoryEntryPoint;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.EntryPoint;
 import org.drools.spi.ObjectType;
@@ -142,6 +144,7 @@
         
         ObjectTypeNode[] cachedNodes = objectTypeConf.getObjectTypeNodes();
 
+                
         for ( int i = 0, length = cachedNodes.length; i < length; i++ ) {
             cachedNodes[i].assertObject( handle,
                                          context,
@@ -306,4 +309,35 @@
         return "[EntryPointNode(" + this.id + ") " + this.entryPoint + " ]";
     }
 
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory, EvalRecord record) {
+	
+	}
+	public void assertImperfectObject(final ImperfectFactHandle handle,
+            final PropagationContext context,
+            final ObjectTypeConf objectTypeConf,	//TODO: extend to have node type constraint
+            final InternalWorkingMemory workingMemory,
+            IDegreeFactory factory) {
+		
+			// checks if shadow is enabled
+			if ( objectTypeConf.isShadowEnabled() ) {
+		//the user has implemented the ShadowProxy interface, let their implementation
+		// know it is safe to update the information the engine can see.
+				((ShadowProxy) handle.getObject()).updateProxy();
+			}
+		
+			ObjectTypeNode[] cachedNodes = objectTypeConf.getObjectTypeNodes();
+		
+			for ( int i = 0, length = cachedNodes.length; i < length; i++ ) {
+				System.out.println(this.getClass() + " dispatching obj to node "+i);
+				EvalRecord record = new EvalRecord();				
+				cachedNodes[i].assertObject(handle,
+		                        context,
+		                        workingMemory,
+		                        factory,
+		                        record);
+			}
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -26,6 +26,8 @@
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.EvalCondition;
 import org.drools.spi.PropagationContext;
@@ -192,7 +194,43 @@
                                                 this.tupleMemoryEnabled );
         }
     }
+    
+    
+    
+    
+    public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+    	
+    	final EvalMemory memory = (EvalMemory) workingMemory.getNodeMemory( this );
 
+        final IDegree ans = this.condition.isSatisfied( leftTuple,
+                                                          workingMemory,
+                                                          memory.context,
+                                                          factory);
+
+        EvalRecord record = leftTuple.getRecord();
+        ConstraintKey key = new ConstraintKey("eval",this.condition.getEvalExpression().toString());
+        Evaluation eval = new Evaluation(this.getId(),ans,key,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+        record.addEvaluation(eval);
+        
+        //TODO: Imperfect strategy here!
+        //if ( allowed ) {
+            if ( this.tupleMemoryEnabled ) {
+                memory.tupleMemory.add( leftTuple );
+            }
+
+            this.sink.propagateAssertLeftTuple( leftTuple,
+                                                context,
+                                                workingMemory,
+                                                factory, 
+                                                record,
+                                                this.tupleMemoryEnabled );
+        //}
+
+		
+	}
+
     public void retractLeftTuple(final LeftTuple leftTuple,
                                  final PropagationContext context,
                                  final InternalWorkingMemory workingMemory) {
@@ -367,4 +405,8 @@
         }
     }
 
+	
+
+	
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -17,8 +17,10 @@
 package org.drools.reteoo;
 
 import org.drools.common.BetaConstraints;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.Behavior;
 import org.drools.spi.PropagationContext;
@@ -394,6 +396,23 @@
     
     public short getType() {
         return NodeTypeEnums.ExistsNode;
-    }     
+    }
 
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		// TODO Auto-generated method stub
+		throw new UnsupportedOperationException("Imperfect exist will be supported soon");
+	}
+
+	
+
+	public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+		// TODO Auto-generated method stub
+		throw new UnsupportedOperationException("Imperfect exist will be supported soon");
+	}   
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/FromNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/FromNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/FromNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -13,6 +13,7 @@
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.ContextEntry;
 import org.drools.spi.AlphaNodeFieldConstraint;
@@ -106,6 +107,15 @@
                               workingMemory,
                               memory );
     }
+    
+    
+    public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+		// TODO Imperfect
+		throw new UnsupportedOperationException("Imperfect from will be supported");
+	}
+    
 
     /**
      * @param leftTuple
@@ -329,4 +339,6 @@
             }
         }
     }
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -17,9 +17,14 @@
  */
 
 import org.drools.common.BetaConstraints;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
+import org.drools.reteoo.filters.IFilterStrategy;
 import org.drools.rule.Behavior;
 import org.drools.spi.PropagationContext;
 import org.drools.util.Iterator;
@@ -77,6 +82,14 @@
                binder,
                behaviors );
         tupleMemoryEnabled = context.isTupleMemoryEnabled();
+        
+        InternalRuleBase ruleBase = context.getRuleBase();
+        if (ruleBase instanceof ImperfectRuleBase) {
+        	IDegreeFactory factory = ((ImperfectRuleBase) ruleBase).getDegreeFactory();
+        	this.filterStrat = factory.getDefaultStrategy();
+        }
+        System.out.println(this.getClass().getName() + "(id "+id+") constructor hacked to add filter strategy");
+
     }
 
     /**
@@ -123,7 +136,59 @@
 
         this.constraints.resetTuple( memory.getContext() );
     }
+    
+    
+    public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+    	
+    	final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
 
+        if ( this.tupleMemoryEnabled ) {
+            memory.getLeftTupleMemory().add( leftTuple );
+        }
+
+        this.constraints.updateFromTuple( memory.getContext(),
+                                          workingMemory,
+                                          leftTuple );
+        for ( ImperfectRightTuple rightTuple = (ImperfectRightTuple) memory.getRightTupleMemory().getFirst( leftTuple ); rightTuple != null; rightTuple = (ImperfectRightTuple) rightTuple.getNext() ) {
+            final InternalFactHandle handle = rightTuple.getFactHandle();
+            
+            //TODO : Imperfect beta constraint
+            IDegree ans = this.constraints.isSatisfiedCachedLeft( memory.getContext(), handle,factory );
+            
+            EvalRecord record = new EvalRecord();
+            ConstraintKey key = this.constraints.getConstraintKey();
+            Evaluation eval = new Evaluation(this.getId(),ans,key,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+            record.addEvaluation(eval);
+            	record.addEvaluations(leftTuple.getRecord());
+            	record.addEvaluations(rightTuple.getRecord());
+            
+            
+            switch (this.filterStrat.doTry(record.getMainEval())) {
+    		case IFilterStrategy.DROP : return;
+		
+    		case IFilterStrategy.HOLD : //TODO: HOLD
+    			break;
+		
+    		case IFilterStrategy.PASS : 
+    			this.sink.propagateAssertLeftTuple( leftTuple,
+                        rightTuple,
+                        context,
+                        workingMemory,
+                        factory,
+                        record,
+                        this.tupleMemoryEnabled  );
+
+    			break;
+    		default : return;			
+    	}
+            
+        }
+
+        this.constraints.resetTuple( memory.getContext() );
+	}
+
     /**
      * Assert a new <code>FactHandleImpl</code>. The left input of
      * <code>ReteTuple</code>s is iterated and joins attemped, via the
@@ -183,6 +248,77 @@
         this.constraints.resetFactHandle( memory.getContext() );
     }
 
+    
+    
+    
+    public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+    	
+        final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
+
+        ImperfectRightTuple rightTuple = new ImperfectRightTuple( factHandle,
+                                                this, record );
+
+        if ( !behavior.assertRightTuple( memory.getBehaviorContext(),
+                                         rightTuple,
+                                         workingMemory ) ) {
+            // destroy right tuple
+            rightTuple.unlinkFromRightParent();
+            return;
+        }
+
+        memory.getRightTupleMemory().add( rightTuple );
+        if ( !this.tupleMemoryEnabled ) {
+            // do nothing here, as we know there are no left tuples at this stage in sequential mode.
+            return;
+        }
+
+        this.constraints.updateFromFactHandle( memory.getContext(),
+                                               workingMemory,
+                                               factHandle );
+        int i = 0;
+        for ( ImperfectLeftTuple leftTuple = (ImperfectLeftTuple) memory.getLeftTupleMemory().getFirst( rightTuple ); leftTuple != null; leftTuple = (ImperfectLeftTuple) leftTuple.getNext() ) {
+        	IDegree ans = this.constraints.isSatisfiedCachedRight( memory.getContext(),
+                                                        leftTuple, factory );
+        	ConstraintKey key = this.constraints.getConstraintKey();
+        	
+        	EvalRecord clonedRecord = record.clone();        	
+        	Evaluation eval = new Evaluation(this.getId(),ans,key,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+        	clonedRecord.addEvaluation(eval);
+        		clonedRecord.addEvaluations(leftTuple.getRecord());
+        	
+        	
+        	
+        	switch (this.filterStrat.doTry(record.getMainEval())) {
+        		case IFilterStrategy.DROP : return;
+			
+        		case IFilterStrategy.HOLD : //TODO: HOLD
+        			break;
+			
+        		case IFilterStrategy.PASS : 
+        			this.sink.propagateAssertLeftTuple( leftTuple,
+                            rightTuple,
+                            context,
+                            workingMemory,
+                            factory,
+                            clonedRecord,
+                            this.tupleMemoryEnabled  );
+
+        			break;
+        		default : return;			
+        	}
+        	
+        			
+            i++;
+        }
+        this.constraints.resetFactHandle( memory.getContext() );
+		
+	}
+    
+    
+    
     /**
      * Retract a FactHandleImpl. Iterates the referenced TupleMatches stored in
      * the handle's ObjectMatches retracting joined tuples.
@@ -276,4 +412,10 @@
 
         return "[JoinNode(" + this.getId() + ") - " + ((ObjectTypeNode) source).getObjectType() + "]";
     }
+
+	
+
+	
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,11 +22,13 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.spi.PropagationContext;
 import org.drools.util.RightTupleList;
@@ -148,6 +150,27 @@
         }
     }
 
+    
+    public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+    	
+    	if ( !workingMemory.isSequential() ) {
+    		this.sink.createAndPropagateAssertLeftTuple( factHandle,
+                context,
+                workingMemory, 
+                factory,
+                record,
+                this.leftTupleMemoryEnabled );
+    	} else {
+    		throw new UnsupportedOperationException("Sequential mode not supported");    		
+    	}
+
+		
+	}
+
+    
     public void updateSink(final LeftTupleSink sink,
                            final PropagationContext context,
                            final InternalWorkingMemory workingMemory) {
@@ -261,6 +284,20 @@
                                        context,
                                        workingMemory );
         }
+        
+        public void assertObject(ImperfectFactHandle factHandle,
+				PropagationContext context,
+				InternalWorkingMemory workingMemory, IDegreeFactory factory,
+				EvalRecord record) {
+        	final ImperfectLeftTuple tuple = new ImperfectLeftTuple( factHandle,
+                    this.sink,
+                    this.leftTupleMemoryEnabled, record );
+        	this.sink.assertLeftTuple( tuple,
+        			context,        			
+        			workingMemory,
+        			factory);
+			
+		}
 
         public void retractRightTuple(final RightTuple rightTuple,
                                       final PropagationContext context,
@@ -285,6 +322,9 @@
             // this is a short living adapter class used only during an update operation, and
             // as so, no need for serialization code
         }
+
+		
     }
 
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSink.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSink.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSink.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,6 +19,7 @@
 import java.io.Externalizable;
 
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 /**
@@ -51,6 +52,13 @@
                          PropagationContext context,
                          InternalWorkingMemory workingMemory);
 
+    
+    void assertLeftTuple(ImperfectLeftTuple leftTuple,
+            PropagationContext context,            
+            InternalWorkingMemory workingMemory,
+            IDegreeFactory factory
+            );
+
     void retractLeftTuple(LeftTuple leftTuple,
                           PropagationContext context,
                           InternalWorkingMemory workingMemory);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSinkPropagator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSinkPropagator.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/LeftTupleSinkPropagator.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -5,6 +5,7 @@
 import org.drools.common.BaseNode;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public interface LeftTupleSinkPropagator
@@ -25,7 +26,31 @@
                                                   PropagationContext context,
                                                   InternalWorkingMemory workingMemory,
                                                   boolean leftTupleWorkingMemoryEnabled );
+    
+    
+    public void propagateAssertLeftTuple(ImperfectLeftTuple leftTuple,
+            ImperfectRightTuple rightTuple,
+            PropagationContext context,
+            InternalWorkingMemory workingMemory,
+            IDegreeFactory factory,
+            EvalRecord record,
+            boolean leftTupleMemoryEnabled);
 
+    public void propagateAssertLeftTuple(ImperfectLeftTuple tuple,
+            PropagationContext context,
+            InternalWorkingMemory workingMemory,
+            IDegreeFactory factory,     
+            EvalRecord record,
+            boolean leftTupleMemoryEnabled);
+
+    public void createAndPropagateAssertLeftTuple(InternalFactHandle factHandle,
+                     PropagationContext context,
+                     InternalWorkingMemory workingMemory,
+                     IDegreeFactory factory,
+                     EvalRecord record,
+                     boolean leftTupleWorkingMemoryEnabled );
+    
+
     public void propagateRetractLeftTuple(LeftTuple tuple,
                                           PropagationContext context,
                                           InternalWorkingMemory workingMemory);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/NotNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/NotNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/NotNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -17,8 +17,10 @@
  */
 
 import org.drools.common.BetaConstraints;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.Behavior;
 import org.drools.spi.PropagationContext;
@@ -311,4 +313,21 @@
 
         return "[NotNode - " + ((ObjectTypeNode) source).getObjectType() + "]";
     }
+
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		// TODO Auto-generated method stub
+		throw new UnsupportedOperationException("Imperfect not exist will be supported soon");
+		
+	}
+
+
+	public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+		// TODO Auto-generated method stub
+		
+	}
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -16,8 +16,10 @@
  * limitations under the License.
  */
 
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 /**
@@ -37,4 +39,10 @@
     public void assertObject(InternalFactHandle factHandle,
                              PropagationContext propagationContext,
                              InternalWorkingMemory workingMemory);
+    
+    public void assertObject(ImperfectFactHandle factHandle,
+            PropagationContext propagationContext,
+            InternalWorkingMemory workingMemory,
+            IDegreeFactory factory,
+            EvalRecord record);
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSinkPropagator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSinkPropagator.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectSinkPropagator.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -3,9 +3,11 @@
 import java.io.Externalizable;
 
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public interface ObjectSinkPropagator
@@ -17,6 +19,12 @@
     public void propagateAssertObject(InternalFactHandle factHandle,
                                       PropagationContext context,
                                       InternalWorkingMemory workingMemory);
+    
+    public void propagateAssertObject(ImperfectFactHandle factHandle,
+            PropagationContext context,
+            InternalWorkingMemory workingMemory,
+            IDegreeFactory factory,
+            EvalRecord record);
 
     public BaseNode getMatchingNode(BaseNode candidate);
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,6 +20,8 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.base.ClassObjectType;
@@ -27,10 +29,12 @@
 import org.drools.common.BaseNode;
 import org.drools.common.DroolsObjectInputStream;
 import org.drools.common.EventFactHandle;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.ReteooWorkingMemory.WorkingMemoryReteExpireAction;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.Declaration;
@@ -93,7 +97,10 @@
     private long                expirationOffset = -1;
 
     private transient ExpireJob job              = new ExpireJob();
+    
+    private EvaluationTemplate  template; 
 
+
     public ObjectTypeNode() {
 
     }
@@ -118,6 +125,13 @@
                context.getRuleBase().getConfiguration().getAlphaNodeHashingThreshold() );
         this.objectType = objectType;
         setObjectMemoryEnabled( context.isObjectTypeNodeMemoryEnabled() );
+        
+        //TODO: 
+        //System.out.println(this.getClass()+" Hacked to add class constraint evaluation");
+        if (context.getRuleBase() instanceof ImperfectRuleBase) {
+        	IDegreeFactory factory = ((ImperfectRuleBase) context.getRuleBase()).getDegreeFactory();
+        	this.template = new SingleEvaluationTemplate(this.getId(),this.getConstraintKey(),new HashSet<String>(),factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+        }
     }
 
     public void readExternal(ObjectInput in) throws IOException,
@@ -494,4 +508,48 @@
         }
 
     }
+
+    
+    
+    
+    
+    protected ConstraintKey getConstraintKey() {
+    	return new ConstraintKey("class","==",((ClassObjectType) this.objectType).getClassName() );
+    }
+    
+    
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		
+		
+		if ( context.getType() == PropagationContext.MODIFICATION && this.skipOnModify && context.getDormantActivations() == 0 ) {
+            // we do this after the shadowproxy update, just so that its up to date for the future
+            return;
+        }
+
+		//TODO Test for class membership...
+		ConstraintKey key = getConstraintKey();
+		
+		Evaluation eval = factHandle.getPropertyDegree(key); 
+		if (eval == null) {
+			eval = this.template.spawn(factory.True()); 				
+			factHandle.addPropertyDegree(eval);
+		}						
+		record.addEvaluation(eval);
+		
+        if ( this.objectMemoryEnabled ) {
+            final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( this );
+            memory.add( factHandle,
+                        false );
+        }
+        this.sink.propagateAssertObject( factHandle,
+                                         context,
+                                         workingMemory,
+                                         factory,
+                                         record);
+
+        
+	}
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -25,10 +25,12 @@
 import org.drools.RuleBaseConfiguration;
 import org.drools.RuntimeDroolsException;
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.WorkingMemoryAction;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.marshalling.impl.MarshallerReaderContext;
 import org.drools.marshalling.impl.MarshallerWriteContext;
 import org.drools.reteoo.builder.BuildContext;
@@ -183,6 +185,16 @@
         }
     }
 
+    
+    public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+    	//TODO: add support
+    	throw new UnsupportedOperationException("Imperfect queueing not supported");
+		
+	}
+    
     public boolean isObjectMemoryEnabled() {
         return true;
     }
@@ -394,4 +406,6 @@
             this.node.propagateActions( workingMemory );
         }
     }
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/QueryTerminalNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -26,6 +26,7 @@
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.GroupElement;
 import org.drools.rule.Rule;
@@ -150,7 +151,17 @@
         }
         list.add( tuple );
     }
+    
+     
 
+    public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+    	//TODO: Imperfect queries will be supported soon
+    	throw new UnsupportedOperationException("Imperfect Query not supported");		
+	}
+
+    
     public void retractLeftTuple(final LeftTuple tuple,
                                  final PropagationContext context,
                                  final InternalWorkingMemory workingMemory) {
@@ -270,6 +281,9 @@
     
     public short getType() {
         return NodeTypeEnums.QueryTerminalNode;
-    } 
+    }
 
+	
+	
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -28,11 +28,13 @@
 
 import org.drools.common.BaseNode;
 import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.InternalWorkingMemoryEntryPoint;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.rule.EntryPoint;
 import org.drools.spi.ObjectType;
 import org.drools.spi.PropagationContext;
@@ -72,6 +74,9 @@
     private Map<EntryPoint, EntryPointNode> entryPoints;
 
     private transient InternalRuleBase      ruleBase;
+    
+    
+    private Map<ConstraintKey,IGammaNode>	constraintIndex;
 
     public Rete() {
         this( null );
@@ -84,7 +89,10 @@
     public Rete(InternalRuleBase ruleBase) {
         super( 0, RuleBasePartitionId.MAIN_PARTITION, ruleBase != null ? ruleBase.getConfiguration().isMultithreadEvaluation() : false );
         this.entryPoints = Collections.synchronizedMap( new HashMap<EntryPoint, EntryPointNode>() );
-        this.ruleBase = ruleBase;
+        this.ruleBase = ruleBase;     
+        
+        this.constraintIndex = new HashMap<ConstraintKey, IGammaNode>();
+        
     }
 
     // ------------------------------------------------------------
@@ -244,4 +252,36 @@
     public Map<EntryPoint,EntryPointNode> getEntryPointNodes() {
         return this.entryPoints;
     }
+
+    
+    
+    
+	public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext propagationContext,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		
+		EntryPoint entryPoint = propagationContext.getEntryPoint();
+        EntryPointNode node = this.entryPoints.get( entryPoint );
+        ObjectTypeConf typeConf = ((InternalWorkingMemoryEntryPoint) workingMemory.getWorkingMemoryEntryPoint( entryPoint.getEntryPointId() )).getObjectTypeConfigurationRegistry().getObjectTypeConf( entryPoint,
+                                                                                                                                                                                                       factHandle.getObject() );
+        node.assertImperfectObject(factHandle,
+                           propagationContext,
+                           typeConf,
+                           workingMemory,
+                           factory );
+		
+	}
+	
+	
+	
+	public void indexGammaNode(ConstraintKey key, IGammaNode node) {
+		this.constraintIndex.put(key, node);
+	}
+	
+	public IGammaNode getNode(ConstraintKey key) {
+		return this.constraintIndex.get(key);
+	}
+	
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -144,7 +144,7 @@
         super( id,
                config,
                factHandleFactory );
-        setupRete();
+        setupRete();        
     }
 
     private void setupRete() {

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -345,4 +345,5 @@
         }
     }
 
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,10 +22,12 @@
 
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.spi.PropagationContext;
 import org.drools.util.Iterator;
@@ -137,6 +139,34 @@
                                          workingMemory );
     }
 
+    
+    
+    public void assertLeftTuple(ImperfectLeftTuple tuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+    	
+    	// creating a dummy fact handle to wrap the tuple
+        final ImperfectFactHandle handle = (ImperfectFactHandle) workingMemory.getFactHandleFactory().newFactHandle( tuple,
+                                                                                              workingMemory.getObjectTypeConfigurationRegistry().getObjectTypeConf( context.getEntryPoint(),
+                                                                                                                                                           tuple ),
+                                                                                              workingMemory );
+
+        if ( this.tupleMemoryEnabled ) {
+            final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
+            // add it to a memory mapping
+            memory.put( tuple,
+                        handle );
+        }
+
+        // propagate it
+        this.sink.propagateAssertObject( handle,
+                                         context,
+                                         workingMemory,
+                                         factory,
+                                         tuple.getRecord());
+		
+	}
+    
     /**
      * Retracts the corresponding tuple by retrieving and retracting
      * the fact created for it
@@ -310,4 +340,8 @@
 
         return this.tupleMemoryEnabled == other.tupleMemoryEnabled && this.tupleSource.equals( other.tupleSource );
     }
+
+	
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -32,6 +32,7 @@
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
 import org.drools.common.ScheduledAgendaItem;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.event.rule.ActivationCancelledCause;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.GroupElement;
@@ -42,6 +43,8 @@
 import org.drools.util.Iterator;
 import org.drools.util.LeftTupleList;
 
+import org.drools.degrees.IDegree;
+
 /**
  * Leaf Rete-OO node responsible for enacting <code>Action</code> s on a
  * matched <code>Rule</code>.
@@ -168,7 +171,50 @@
                      true );
 
     }
+    
+    public void assertLeftTuple(ImperfectLeftTuple tuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+    	
+    	EvalRecord record = tuple.getRecord();
+    	System.out.println(this.rule);
+    	System.out.println(""+this.hashCode() + record);
+    	
+    	IDegree degree = record.getOverallDegree();
+    	
+    	 // @FIXME
+        final LeftTuple cloned = tuple;//new LeftTuple( tuple );
 
+        final InternalAgenda agenda = (InternalAgenda) workingMemory.getAgenda();
+    	
+        final TerminalNodeMemory memory = (TerminalNodeMemory) workingMemory.getNodeMemory( this );
+
+        final AgendaItem item = new ImperfectAgendaItem( context.getPropagationNumber(),
+                                                cloned,
+                                                rule.getSalience().getValue( tuple,
+                                                                             workingMemory ),
+                                                context,
+                                                this.rule,
+                                                this.subrule,
+                                                degree);
+
+        item.setSequenence( this.sequence );
+
+        tuple.setActivation( item );
+        memory.getTupleMemory().add( tuple );
+        
+        boolean added = agenda.addActivation( item );
+
+        item.setActivated( added );
+
+        // We only want to fire an event on a truly new Activation and not on an Activation as a result of a modify
+        if ( added ) {
+            ((EventSupport) workingMemory).getAgendaEventSupport().fireActivationCreated( item,
+                                                                                          workingMemory );
+        }
+		
+	}
+    
     /**
      * Assert a new <code>Tuple</code>.
      *
@@ -523,4 +569,8 @@
 //            this.ruleFlowGroup = ruleFlowGroup;
 //        }
     }
+
+	
+
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleLeftTupleSinkAdapter.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleLeftTupleSinkAdapter.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleLeftTupleSinkAdapter.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -8,6 +8,7 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class SingleLeftTupleSinkAdapter extends AbstractLeftTupleSinkAdapter {
@@ -28,12 +29,41 @@
         doPropagateAssertLeftTuple( context, workingMemory,
                                     new LeftTuple( leftTuple, rightTuple, this.sink, leftTupleMemoryEnabled ) );
     }
+    
+    
+    public void propagateAssertLeftTuple(ImperfectLeftTuple leftTuple,
+			ImperfectRightTuple rightTuple, PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record, boolean leftTupleMemoryEnabled) {
+    	
+    	doPropagateAssertLeftTuple( context, workingMemory, factory, record,
+                new ImperfectLeftTuple( leftTuple, rightTuple, this.sink, leftTupleMemoryEnabled, record ) );
+		
+	}
 
+    
+    
+	
+
     public void propagateAssertLeftTuple( final LeftTuple tuple, final PropagationContext context,
                                           final InternalWorkingMemory workingMemory, boolean leftTupleMemoryEnabled ) {
         doPropagateAssertLeftTuple( context, workingMemory, new LeftTuple( tuple, this.sink, leftTupleMemoryEnabled ) );
     }
 
+
+
+    
+    
+    public void propagateAssertLeftTuple(ImperfectLeftTuple tuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, EvalRecord record,
+			boolean leftTupleMemoryEnabled) {
+    	doPropagateAssertLeftTuple( context, workingMemory, factory, record, new ImperfectLeftTuple( tuple, this.sink, leftTupleMemoryEnabled, record ) );
+		
+	}
+    
+    
+    
     public void propagateRetractLeftTuple( final LeftTuple leftTuple, final PropagationContext context,
                                            final InternalWorkingMemory workingMemory ) {
         LeftTuple child = leftTuple.getBetaChildren();
@@ -78,7 +108,21 @@
         doPropagateAssertLeftTuple( context, workingMemory,
                                     new LeftTuple( factHandle, this.sink, leftTupleMemoryEnabled ) );
     }
+    
+    
+    public void createAndPropagateAssertLeftTuple(
+			InternalFactHandle factHandle, PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record, boolean leftTupleMemoryEnabled) {
+    	
+    	doPropagateAssertLeftTuple( context, workingMemory, factory, record,
+                new ImperfectLeftTuple( factHandle, this.sink, leftTupleMemoryEnabled, record ) );
+		
+	}
 
+	
+    
+
     public BaseNode getMatchingNode( BaseNode candidate ) {
         if( candidate.equals( sink ) ) {
             return (BaseNode) sink;
@@ -116,6 +160,12 @@
                                                LeftTuple newLeftTuple ) {
         this.sink.assertLeftTuple( newLeftTuple, context, workingMemory );
     }
+    
+    
+    protected void doPropagateAssertLeftTuple( PropagationContext context, InternalWorkingMemory workingMemory,
+            IDegreeFactory factory, EvalRecord record, ImperfectLeftTuple newLeftTuple ) {
+    	this.sink.assertLeftTuple( newLeftTuple, context, workingMemory, factory );
+    }
 
     /**
      * This is a hook method that may be overriden by subclasses. Please keep it
@@ -131,4 +181,8 @@
         tupleSink.retractLeftTuple( child, context, workingMemory );
     }
 
+	
+
+	
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleObjectSinkAdapter.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleObjectSinkAdapter.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/SingleObjectSinkAdapter.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -5,9 +5,11 @@
 import java.io.ObjectOutput;
 
 import org.drools.common.BaseNode;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class SingleObjectSinkAdapter extends AbstractObjectSinkAdapter {
@@ -43,7 +45,19 @@
                                 context,
                                 workingMemory );
     }
+    
+    public void propagateAssertObject(ImperfectFactHandle factHandle,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory, EvalRecord record) {
 
+    	this.sink.assertObject(factHandle, 
+    						   context, 
+    						   workingMemory, 
+    						   factory, 
+    						   record);
+		
+	}
+
     public BaseNode getMatchingNode(BaseNode candidate) {
         if (candidate.equals(sink)) {
             return (BaseNode)sink;
@@ -59,4 +73,6 @@
         return 1;
     }
 
+	
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/BuildContext.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,11 +19,14 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
 
 import org.drools.common.BaseNode;
 import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTupleSource;
 import org.drools.reteoo.ObjectSource;
 import org.drools.reteoo.ReteooBuilder;
@@ -96,6 +99,15 @@
 
     /** the calculate temporal distance matrix */
     private TemporalDependencyMatrix         temporal;
+    
+    
+    
+    
+    private Map<ConstraintKey,Set<String>> dependencies;
+    
+    
+    
+    
 
     public BuildContext(final InternalRuleBase rulebase,
                         final ReteooBuilder.IdGenerator idGenerator) {
@@ -433,4 +445,22 @@
         this.rule = rule;
     }
 
+    
+    
+    
+    
+	/**
+	 * @param dependencies the dependencies to set
+	 */
+	public void setDependencies(Map<ConstraintKey,Set<String>> dependencies) {
+		this.dependencies = dependencies;
+	}
+
+	/**
+	 * @return the dependencies
+	 */
+	public Map<ConstraintKey,Set<String>> getDependencies() {
+		return dependencies;
+	}
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -19,10 +19,16 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.Arrays;
+import java.util.Map;
+import java.util.Set;
 
 import org.drools.RuntimeDroolsException;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.CompositeEvaluationTemplate;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.BetaNodeFieldConstraint;
@@ -81,6 +87,16 @@
         return false;
     }
 
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
     /**
      * Adds an alpha constraint to the multi field OR constraint
      *
@@ -338,5 +354,38 @@
         }
 
     }
+    
+    
+    
+    
+    
+    
+	
+	 public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+			return ((CompositeEvaluationTemplate) this.getTemplate()).getTemplate(key);
+	}
+	
+    
+    
+    
+    
+//    public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+//		if (this.getTemplate().getConstraintKey().equals(key)) {
+//			return this.getTemplate();
+//		} else {
+//			for (int j = 0; j < this.alphaConstraints.length; j++) {
+//				EvaluationTemplate temp = this.alphaConstraints[j].getEvalTemplate(key);
+//				if (temp != null) return temp;
+//			}
+//			for (int j = 0; j < this.betaConstraints.length; j++) {
+//				EvaluationTemplate temp = this.betaConstraints[j].getEvalTemplate(key);
+//				if (temp != null) return temp;
+//			}
+//			return null;
+//		}	
+//	}
+    
+    
+    
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeRestriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeRestriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AbstractCompositeRestriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -35,6 +35,10 @@
         out.writeObject(restrictions);
     }
 
+    public Restriction[] getRestrictions() {
+    	return restrictions;
+    }
+    
     public Declaration[] getRequiredDeclarations() {
         // Iterate all restrictions building up a unique list of declarations
         // No need to cache, as this should only be called once at build time

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,7 +1,13 @@
 package org.drools.rule;
 
+import java.util.Collection;
+import java.util.LinkedList;
+
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.InternalReadAccessor;
 import org.drools.spi.Restriction;
@@ -32,6 +38,26 @@
         return true;
     }
 
+    
+    public IDegree isSatisfied(InternalReadAccessor extractor,
+			InternalFactHandle handle, InternalWorkingMemory workingMemory,
+			ContextEntry context, IDegreeFactory factory) {
+    	
+    	int N = this.restrictions.length;
+    	IDegree[] degs = new IDegree[N];
+    	
+    	for ( int i = 0; i < N; i++ ) 
+            degs[i] = this.restrictions[i].isSatisfied( extractor,
+                                                  handle,
+                                                  workingMemory,
+                                                  context, factory );
+    	return factory.getAndOperator().eval(degs);
+        
+	}
+
+	
+
+    
     public boolean isAllowedCachedLeft(final ContextEntry context,
                                        final InternalFactHandle handle) {
         CompositeContextEntry contextEntry = (CompositeContextEntry) context;
@@ -43,7 +69,23 @@
         }
         return true;
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	
+    	int N = this.restrictions.length;
+    	IDegree[] degs = new IDegree[N];
+    	CompositeContextEntry contextEntry = (CompositeContextEntry) context;
+        for ( int i = 0; i < N; i++ ) 
+        	degs[i] = this.restrictions[i].isSatisfiedCachedLeft( contextEntry.contextEntries[i],
+                                                            handle, factory );
+            
+        
+        return factory.getAndOperator().eval(degs);
+	}
 
+	
+
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         CompositeContextEntry contextEntry = (CompositeContextEntry) context;
@@ -55,7 +97,24 @@
         }
         return true;
     }
+    
+    
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		
+    	int N = this.restrictions.length;
+    	IDegree[] degs = new IDegree[N];
+    	CompositeContextEntry contextEntry = (CompositeContextEntry) context;
+        for ( int i = 0; i < N; i++ ) 
+        	degs[i] = this.restrictions[i].isSatisfiedCachedRight( tuple, 
+        													contextEntry.contextEntries[i],
+        													factory );
+                   
+        return factory.getAndOperator().eval(degs);
+	}
 
+    
+    
     public Object clone() {
         Restriction[] clone = new Restriction[ this.restrictions.length ];
         for( int i = 0; i < clone.length; i++ ) {
@@ -64,4 +123,28 @@
         return new AndCompositeRestriction( clone );
     }
 
+	private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {
+			int N = this.restrictions.length;			
+			ConstraintKey[] cks = new ConstraintKey[N];
+			for (int j = 0; j < N; j++)
+				cks[j] = this.restrictions[j].getConstraintKey();			
+			singletonKey = new ConstraintKey("and",cks);
+		}
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+		
+			int N = this.restrictions.length;			
+			for (int j = 0; j < N; j++) 		
+				ans.add(this.restrictions[j].getConstraintKey());
+		
+		ans.add(getConstraintKey());
+		return ans;
+	}
+	
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/AndConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -18,9 +18,19 @@
 package org.drools.rule;
 
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
 
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.CompositeEvaluationTemplate;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.BetaNodeFieldConstraint;
@@ -38,6 +48,9 @@
 
     private static final long serialVersionUID = 400L;
 
+
+    
+    
     /**
      * {@inheritDoc}
      */
@@ -53,6 +66,25 @@
         }
         return true;
     }
+    
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+			InternalWorkingMemory workingMemory, ContextEntry context,
+			IDegreeFactory factory) {
+    	
+    	int N = this.alphaConstraints.length;
+    	Evaluation[] evals = new Evaluation[N];
+    	
+    	for ( int i = 0; i < N; i++ ) 
+            evals[i] = this.alphaConstraints[i].isSatisfied( handle,
+                                                      	workingMemory,
+                                                      	((MultiFieldConstraintContextEntry) context).alphas[i],
+                                                      	factory);
+           
+        return getTemplate().spawn(evals);
+    	
+	}
+    
 
     /**
      * {@inheritDoc}
@@ -76,6 +108,34 @@
         return true;
     }
 
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	
+    	int N1 = this.alphaConstraints.length;
+    	int N2 = this.betaConstraints.length;
+    	int N = N1 + N2; 
+    	Evaluation[] evals = new Evaluation[N];
+    	
+    	for ( int i = 0; i < N1; i++ ) 
+            evals[i] = this.alphaConstraints[i].isSatisfied( handle,
+            											((MultiFieldConstraintContextEntry) context).workingMemory,
+                                                      	((MultiFieldConstraintContextEntry) context).alphas[i],
+                                                      	factory);
+    	for ( int i = 0; i < N2; i++ )
+    		//TODO: Extend BetaConstraints as well..
+    		evals[N1+i] = new Evaluation(0, 
+    			this.betaConstraints[i].isSatisfiedCachedLeft(
+    				((MultiFieldConstraintContextEntry) context).betas[i],
+    				handle, 
+    				factory),
+    				null,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+    				
+
+    	return getTemplate().spawn(evals).getDegree();
+    	
+	}
+    
+    
     /**
      * {@inheritDoc}
      */
@@ -96,7 +156,38 @@
         }
         return true;
     }
+    
+    
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		
+    	int N1 = this.alphaConstraints.length;
+    	int N2 = this.betaConstraints.length;
+    	int N = N1 + N2; 
+    	Evaluation[] evals = new Evaluation[N];
+    	
+    	for ( int i = 0; i < N1; i++ ) 
+            evals[i] = this.alphaConstraints[i].isSatisfied( ((MultiFieldConstraintContextEntry) context).handle,
+            											((MultiFieldConstraintContextEntry) context).workingMemory,
+                                                      	((MultiFieldConstraintContextEntry) context).alphas[i],
+                                                      	factory);
+    	for ( int i = 0; i < N2; i++ )
+    		//TODO: Extend Beta as well
+    		evals[N1+i] = new Evaluation(0,     			
+    			this.betaConstraints[i].isSatisfiedCachedRight(
+    				tuple,
+    				((MultiFieldConstraintContextEntry) context).betas[i],    				
+    				factory),
+    				
+    				null,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+    				
 
+    	return getTemplate().spawn(evals).getDegree();
+    	
+	}
+    
+    
+
     public int hashCode() {
         final int PRIME = 31;
         int result = 1;
@@ -141,4 +232,66 @@
         return clone;
     }
 
+
+    
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {
+			int Na = this.alphaConstraints.length;
+			int Nb = this.betaConstraints.length;
+			ConstraintKey[] cks = new ConstraintKey[Na+Nb];
+			for (int j = 0; j < Na; j++)
+				cks[j] = this.alphaConstraints[j].getConstraintKey();
+			for (int j = 0; j < Nb; j++)
+				cks[Na+j] = this.betaConstraints[j].getConstraintKey();
+			singletonKey = new ConstraintKey("and",cks);
+		}
+		return singletonKey;
+	}
+
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+		
+			int Na = this.alphaConstraints.length;
+			int Nb = this.betaConstraints.length;		
+		
+			for (int j = 0; j < Na; j++)
+				ans.add(alphaConstraints[j].getConstraintKey());
+			for (int j = 0; j < Nb; j++)
+				ans.add(betaConstraints[j].getConstraintKey());
+					
+		ans.add(this.getConstraintKey());
+		return ans;
+	}
+
+
+	
+    public EvaluationTemplate buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+		//BUILD A COMPOSITE TEMPLATE
+    	int N = this.getAlphaConstraints().length + this.getBetaConstraints().length;
+    	CompositeEvaluationTemplate temp = new CompositeEvaluationTemplate(id,this.getConstraintKey(),dependencies.get(this.getConstraintKey()),N,factory.getAndOperator(),factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+
+    	int Na = this.alphaConstraints.length;
+		int Nb = this.betaConstraints.length;		
+	
+		for (int j = 0; j < Na; j++)
+			temp.addChild(alphaConstraints[j].buildEvaluationTemplate(id, dependencies, factory));
+		//for (int j = 0; j < Nb; j++)
+		//	temp.addChild(betaConstraints[j].build);
+
+    	
+    	this.setTemplate(temp);
+    	return temp;
+    }
+
+//    public void buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+//    	
+//    	setTemplate(new EvaluationTemplate(id,this.getConstraintKey(),dependencies.get(this.getConstraintKey()),N,factory.getAndOperator(),factory.getMergeStrategy(),factory.getNullHandlingStrategy()));
+//    }
+
+	
+
+	
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/EvalCondition.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/EvalCondition.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/EvalCondition.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -27,6 +27,8 @@
 
 import org.drools.RuntimeDroolsException;
 import org.drools.WorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.CompiledInvoker;
 import org.drools.spi.EvalExpression;
 import org.drools.spi.Tuple;
@@ -123,6 +125,13 @@
                                               e );
         }
     }
+    
+    public IDegree isSatisfied(final Tuple tuple,
+            final WorkingMemory workingMemory,
+            final Object context,
+            final IDegreeFactory factory) {
+    	return factory.fromBoolean(this.isAllowed(tuple, workingMemory, context));
+    }
 
     public Object clone() {
         final EvalCondition clone = new EvalCondition( this.expression,

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,9 +20,20 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
 
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
+import org.drools.reteoo.EvaluationTemplate;
+import org.drools.reteoo.SingleEvaluationTemplate;
 import org.drools.spi.AcceptsReadAccessor;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.Constraint;
@@ -41,6 +52,8 @@
     private InternalReadAccessor readAccesor;
     private LiteralRestriction   restriction;
 
+	private EvaluationTemplate template;
+
     public LiteralConstraint() {
         this( null,
               null );
@@ -111,6 +124,17 @@
                                            workingMemory,
                                            ctx );
     }
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+			InternalWorkingMemory workingMemory, ContextEntry context,
+			IDegreeFactory factory) {
+    	IDegree deg =  this.restriction.isSatisfied( this.readAccesor,
+    												handle,
+    												workingMemory,
+    												context,
+    												factory);
+    	return template.spawn(deg);
+	}
 
     public String toString() {
         return "[LiteralConstraint fieldExtractor=" + this.readAccesor + " evaluator=" + getEvaluator() + " value=" + getField() + "]";
@@ -154,4 +178,37 @@
     public boolean isTemporal() {
         return this.restriction.isTemporal();
     }
+
+	public ConstraintKey getConstraintKey() {
+		return restriction.getConstraintKey();
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+									
+		ans.add(this.getConstraintKey());
+		return ans;
+	}
+
+	
+	
+	
+	 public EvaluationTemplate buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+		 Set<String> deps;
+		 if (dependencies == null)
+			 deps = Collections.emptySet();
+		 else 
+			 deps = dependencies.get(this.getConstraintKey());
+	    	this.template = new SingleEvaluationTemplate(id,this.getConstraintKey(),deps,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+	    	return template;
+	    }
+
+	public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+		if (this.template.getConstraintKey().equals(key))
+			return this.template;
+		else return null;
+	}
+	
+
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,9 +20,15 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
 
+import org.drools.base.ClassFieldReader;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.AcceptsReadAccessor;
 import org.drools.spi.Evaluator;
@@ -94,6 +100,16 @@
                                         handle.getObject(),
                                         this.field );
     }
+    
+    public IDegree isSatisfied(InternalReadAccessor extractor,
+			InternalFactHandle handle, InternalWorkingMemory workingMemory,
+			ContextEntry context, IDegreeFactory factory) {
+    	return this.evaluator.evaluate( null,
+    			factory,
+                this.readAccessor,
+                handle.getObject(),
+                this.field );
+	}
 
     public boolean isAllowedCachedLeft(final ContextEntry context,
                                        final InternalFactHandle handle) {
@@ -102,6 +118,15 @@
                                         handle.getObject(),
                                         this.field );
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	return this.evaluator.evaluate( null,
+    			factory,
+                ((LiteralContextEntry) context).getFieldExtractor(),
+                handle.getObject(),
+                this.field );
+	}
 
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
@@ -111,6 +136,15 @@
                                         this.field );
     }
 
+    
+	public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+	    return this.evaluator.evaluate( null,
+	    		factory,
+                ((LiteralContextEntry) context).getFieldExtractor(),
+                ((LiteralContextEntry) context).getObject(),
+                this.field );	}
+
     /**
      * Literal constraints cannot have required declarations, so always return an empty array.
      * @return
@@ -226,4 +260,23 @@
 
     }
 
+	
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {			
+			singletonKey = new ConstraintKey(((ClassFieldReader) this.readAccessor).getFieldName(),this.getEvaluator().toString(),this.getField().toString());
+		}
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+					
+		ans.add(this.getConstraintKey());
+		return ans;
+	}
+	
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -3,10 +3,22 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
 
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.degrees.operators.IDegreeCombiner;
+import org.drools.reteoo.CompositeEvaluationTemplate;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
+import org.drools.reteoo.SingleEvaluationTemplate;
 import org.drools.spi.AcceptsReadAccessor;
 import org.drools.spi.InternalReadAccessor;
 import org.drools.spi.ReadAccessor;
@@ -99,6 +111,17 @@
                                             workingMemory,
                                             context );
     }
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+			InternalWorkingMemory workingMemory, ContextEntry context,
+			IDegreeFactory factory) {
+		IDegree deg = this.restrictions.isSatisfied(this.readAccessor,
+											 handle, 
+											 workingMemory, 
+											 context, 
+											 factory);			
+		return getTemplate().spawn(deg);
+	}
 
     public ContextEntry createContextEntry() {
         return this.restrictions.createContextEntry();
@@ -110,15 +133,105 @@
                                                       handle );
     }
 
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	return this.restrictions.isSatisfiedCachedLeft( context,
+                handle, factory );
+	}
+    
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         return this.restrictions.isAllowedCachedRight( tuple,
                                                        context );
     }
+    
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+    	return this.restrictions.isSatisfiedCachedRight( tuple,
+                context, factory );
+	}
 
     public Object clone() {
         return new MultiRestrictionFieldConstraint( this.readAccessor,
                                                     (Restriction) this.restrictions.clone() );
     }
 
+    
+    
+      
+	public ConstraintKey getConstraintKey() {
+		
+		return this.restrictions.getConstraintKey();
+	}
+
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+							
+		//ans.addAll(this.restrictions.getAllConstraintKeys());
+		ans.add(this.getConstraintKey());
+		return ans;
+	}
+
+	
+	public EvaluationTemplate buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+		//BUILD A COMPOSITE TEMPLATE
+    	
+				
+		//EvaluationTemplate temp = buildTemplateForRestriction(this.restrictions, null, id, dependencies, factory);
+		EvaluationTemplate temp = new SingleEvaluationTemplate(id,this.restrictions.getConstraintKey(),dependencies.get(restrictions.getConstraintKey()),factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+    			    	    		
+		this.setTemplate(temp);
+    	return getTemplate();
+    }
+	
+	 public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+			if (this.getTemplate().getConstraintKey().equals(key))
+				return this.getTemplate();
+			else return null;
+	}
+	
+	 
+	 
+	 
+	 /*
+	 private EvaluationTemplate buildTemplateForRestriction(Restriction restr, CompositeEvaluationTemplate master, int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+		 EvaluationTemplate temp = null;
+		 	if (restr instanceof AbstractCompositeRestriction) {
+		 		AbstractCompositeRestriction compRestr = (AbstractCompositeRestriction) restr;
+		 		
+		 		IDegreeCombiner operator = null;
+		 			if (restr instanceof AndCompositeRestriction) {
+		 				operator = factory.getAndOperator();
+		 			} else if (restr instanceof OrCompositeRestriction) {
+		 				operator = factory.getOrOperator();
+		 			} else {
+		 				throw new UnsupportedOperationException("Unknown composite restriction...");
+		 			}
+		 			
+		 		temp = new CompositeEvaluationTemplate(id,
+		 				getConstraintKey(),
+		 				dependencies.get(getConstraintKey()),
+		 				compRestr.getRestrictions().length,
+		 				operator,
+		 				factory.getMergeStrategy(),
+		 				factory.getNullHandlingStrategy()		 				
+		 				);
+		 		
+		 		for (Restriction r : compRestr.getRestrictions())
+		 			buildTemplateForRestriction(r, (CompositeEvaluationTemplate) temp, id, dependencies, factory); 
+		 		
+		 	} else {
+		 		temp = new SingleEvaluationTemplate(id,
+		 				restr.getConstraintKey(),
+		 				dependencies.get(restr.getConstraintKey()),
+		 				factory.getMergeStrategy(),
+		 				factory.getNullHandlingStrategy());
+		 	}
+		 if (master != null)
+			 master.addChild(temp);
+		 return temp;
+	 }
+*/
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MutableTypeConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MutableTypeConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/MutableTypeConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,7 +22,13 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Map;
+import java.util.Set;
 
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.EvaluationTemplate;
+import org.drools.reteoo.SingleEvaluationTemplate;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.Constraint;
@@ -39,6 +45,8 @@
     Externalizable {
 
     private Constraint.ConstraintType type = Constraint.ConstraintType.UNKNOWN;
+    
+    private EvaluationTemplate template;
 
     public void setType( ConstraintType type ) {
         this.type = type;
@@ -56,4 +64,30 @@
         out.writeObject(type);
     }
     public abstract Object clone();
+    
+    
+    public EvaluationTemplate buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+    	setTemplate(new SingleEvaluationTemplate(id,this.getConstraintKey(),dependencies.get(this.getConstraintKey()),factory.getMergeStrategy(),factory.getNullHandlingStrategy()));
+    	return getTemplate();
+    }
+    
+    public EvaluationTemplate getTemplate() {
+    	return this.template;
+    }
+    
+    public void setTemplate(EvaluationTemplate newTemplate) {
+    	this.template = newTemplate;
+    }
+    
+    
+    public EvaluationTemplate getEvalTemplate(ConstraintKey key) {
+		if (this.template.getConstraintKey().equals(key)) {
+			return this.template;
+		} else {
+			return null;
+		}	
+	}
+    
+    
+    
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,8 +1,15 @@
 package org.drools.rule;
 
+import java.util.Collection;
+import java.util.LinkedList;
+
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
+import org.drools.rule.AbstractCompositeRestriction.CompositeContextEntry;
 import org.drools.spi.InternalReadAccessor;
 import org.drools.spi.Restriction;
 
@@ -31,6 +38,22 @@
         }
         return false;
     }
+    
+    public IDegree isSatisfied(InternalReadAccessor extractor,
+			InternalFactHandle handle, InternalWorkingMemory workingMemory,
+			ContextEntry context, IDegreeFactory factory) {
+    	
+    	int N = this.restrictions.length;
+    	IDegree[] degs = new IDegree[N];
+    	
+    	for ( int i = 0; i < N; i++ ) 
+            degs[i] = this.restrictions[i].isSatisfied( extractor,
+                                                  handle,
+                                                  workingMemory,
+                                                  context, factory );
+    	return factory.getOrOperator().eval(degs);
+        
+	}
 
     public boolean isAllowedCachedLeft(final ContextEntry context,
                                        final InternalFactHandle handle) {
@@ -43,6 +66,20 @@
         }
         return false;
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	
+    	int N = this.restrictions.length;
+    	IDegree[] degs = new IDegree[N];
+    	CompositeContextEntry contextEntry = (CompositeContextEntry) context;
+        for ( int i = 0; i < N; i++ ) 
+        	degs[i] = this.restrictions[i].isSatisfiedCachedLeft( contextEntry.contextEntries[i],
+                                                            handle, factory );
+            
+        
+        return factory.getOrOperator().eval(degs);
+	}
 
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
@@ -55,6 +92,20 @@
         }
         return false;
     }
+    
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		
+    	int N = this.restrictions.length;
+    	IDegree[] degs = new IDegree[N];
+    	CompositeContextEntry contextEntry = (CompositeContextEntry) context;
+        for ( int i = 0; i < N; i++ ) 
+        	degs[i] = this.restrictions[i].isSatisfiedCachedRight( tuple, 
+        													contextEntry.contextEntries[i],
+        													factory );
+                   
+        return factory.getOrOperator().eval(degs);
+	}
 
     public Object clone() {
         Restriction[] clone = new Restriction[ this.restrictions.length ];
@@ -63,4 +114,35 @@
         }
         return new OrCompositeRestriction( clone );
     }
+    
+    
+    
+    
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null) {
+			int N = this.restrictions.length;			
+			ConstraintKey[] cks = new ConstraintKey[N];
+			for (int j = 0; j < N; j++)
+				cks[j] = this.restrictions[j].getConstraintKey();			
+			singletonKey = new ConstraintKey("or",cks);
+		}
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+		
+		int N = this.restrictions.length;			
+			
+		for (int j = 0; j < N; j++)
+			ans.add(this.restrictions[j].getConstraintKey());
+			
+					
+		ans.add(this.getConstraintKey());
+		return ans;
+	}
+    
+    
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/OrConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -17,10 +17,21 @@
 package org.drools.rule;
 
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
 
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.CompositeEvaluationTemplate;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.reteoo.LeftTuple;
+import org.drools.rule.AbstractCompositeConstraint.MultiFieldConstraintContextEntry;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.util.ArrayUtils;
@@ -40,6 +51,27 @@
     public OrConstraint() {
     }
 
+    
+    
+
+    public EvaluationTemplate buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory) {
+    	//BUILD A COMPOSITE TEMPLATE
+    	int N = this.getAlphaConstraints().length + this.getBetaConstraints().length;
+    	CompositeEvaluationTemplate temp = new CompositeEvaluationTemplate(id,this.getConstraintKey(),dependencies.get(this.getConstraintKey()),N,factory.getOrOperator(),factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+
+    	int Na = this.alphaConstraints.length;
+		int Nb = this.betaConstraints.length;		
+	
+		for (int j = 0; j < Na; j++)
+			temp.addChild(alphaConstraints[j].buildEvaluationTemplate(id, dependencies, factory));
+		//for (int j = 0; j < Nb; j++)
+		//	temp.addChild(betaConstraints[j].build);
+
+    	
+    	this.setTemplate(temp);
+    	return temp;
+    }
+    
     /**
      * {@inheritDoc}
      */
@@ -154,4 +186,114 @@
 
         return clone;
     }
+
+    
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+			InternalWorkingMemory workingMemory, ContextEntry context,
+			IDegreeFactory factory) {
+    	
+    	int N = this.alphaConstraints.length;
+    	Evaluation[] evals = new Evaluation[N];
+    	
+    	for ( int i = 0; i < N; i++ ) 
+            evals[i] = this.alphaConstraints[i].isSatisfied( handle,
+                                                      	workingMemory,
+                                                      	((MultiFieldConstraintContextEntry) context).alphas[i],
+                                                      	factory);
+           
+        return getTemplate().spawn(evals);
+	}
+
+	 public IDegree isSatisfiedCachedLeft(ContextEntry context,
+				InternalFactHandle handle, IDegreeFactory factory) {
+	    	
+	    	int N1 = this.alphaConstraints.length;
+	    	int N2 = this.betaConstraints.length;
+	    	int N = N1 + N2; 
+	    	Evaluation[] evals = new Evaluation[N];
+	    	
+	    	for ( int i = 0; i < N1; i++ ) 
+	            evals[i] = this.alphaConstraints[i].isSatisfied( handle,
+	            											((MultiFieldConstraintContextEntry) context).workingMemory,
+	                                                      	((MultiFieldConstraintContextEntry) context).alphas[i],
+	                                                      	factory);
+	    	for ( int i = 0; i < N2; i++ )
+	    		//TODO : beta...
+	    		evals[N1+i] = new Evaluation(0, 
+	    			this.betaConstraints[i].isSatisfiedCachedLeft(
+	    				((MultiFieldConstraintContextEntry) context).betas[i],
+	    				handle, 
+	    				factory)
+	    				, null,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+	    				
+
+	    	return getTemplate().spawn(evals).getDegree();
+	    	
+		}
+
+	 public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+				ContextEntry context, IDegreeFactory factory) {
+			
+	    	int N1 = this.alphaConstraints.length;
+	    	int N2 = this.betaConstraints.length;
+	    	int N = N1 + N2; 
+	    	Evaluation[] evals = new Evaluation[N];
+	    	
+	    	for ( int i = 0; i < N1; i++ ) 
+	            evals[i] = this.alphaConstraints[i].isSatisfied( ((MultiFieldConstraintContextEntry) context).handle,
+	            											((MultiFieldConstraintContextEntry) context).workingMemory,
+	                                                      	((MultiFieldConstraintContextEntry) context).alphas[i],
+	                                                      	factory);
+	    	for ( int i = 0; i < N2; i++ )
+	    		//TODO: beta...
+	    		evals[N1+i] = new Evaluation(0, 
+	    			this.betaConstraints[i].isSatisfiedCachedRight(
+	    				tuple,
+	    				((MultiFieldConstraintContextEntry) context).betas[i],    				
+	    				factory),
+	    				null,factory.getMergeStrategy(),factory.getNullHandlingStrategy());
+	    				
+
+	    	return getTemplate().spawn(evals).getDegree();
+	    	
+		}
+	 
+	 
+	 
+	 
+	 
+	 
+	 
+	 	private ConstraintKey singletonKey = null;
+	    
+		public ConstraintKey getConstraintKey() {
+			if (singletonKey == null) {
+				int Na = this.alphaConstraints.length;
+				int Nb = this.betaConstraints.length;
+				ConstraintKey[] cks = new ConstraintKey[Na+Nb];
+				for (int j = 0; j < Na; j++)
+					cks[j] = this.alphaConstraints[j].getConstraintKey();
+				for (int j = 0; j < Nb; j++)
+					cks[Na+j] = this.betaConstraints[j].getConstraintKey();
+				singletonKey = new ConstraintKey("or",cks);
+			}
+			return singletonKey;
+		}
+	 
+		public Collection<ConstraintKey> getAllConstraintKeys() {
+			Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			
+				int Na = this.alphaConstraints.length;
+				int Nb = this.betaConstraints.length;		
+			
+				for (int j = 0; j < Na; j++)
+					ans.add(alphaConstraints[j].getConstraintKey());
+				for (int j = 0; j < Nb; j++)
+					ans.add(betaConstraints[j].getConstraintKey());
+						
+			ans.add(this.getConstraintKey());
+			return ans;
+		}
+		
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Package.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Package.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -36,6 +36,7 @@
 import org.drools.definition.process.Process;
 import org.drools.definition.type.FactType;
 import org.drools.facttemplates.FactTemplate;
+import org.drools.reteoo.ConstraintKey;
 
 /**
  * Collection of related <code>Rule</code>s.
@@ -99,6 +100,8 @@
      */
     private String                         errorSummary;
 
+//	private Map<ConstraintKey, Set<String>> dependencies;
+
     // ------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------
@@ -555,4 +558,30 @@
         this.classFieldAccessorStore.setClassFieldAccessorCache( classFieldAccessorCache );
     }
 
+    
+    
+    
+    
+    
+    
+    
+    
+//    
+//    /**
+//	 * @param dependencies the dependencies to set
+//	 */
+//	public void setDependencies(Map<ConstraintKey,Set<String>> dependencies) {
+//		this.dependencies = dependencies;
+//	}
+//
+//	/**
+//	 * @return the dependencies
+//	 */
+//	public Map<ConstraintKey,Set<String>> getDependencies() {
+//		return dependencies;
+//	}
+//    
+//    
+    
+    
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,12 +22,18 @@
 import java.io.ObjectOutput;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.drools.RuntimeDroolsException;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.CompiledInvoker;
 import org.drools.spi.InternalReadAccessor;
@@ -280,6 +286,15 @@
                                               e );
         }
     }
+    
+    public Evaluation isSatisfied(final InternalFactHandle handle,
+            final InternalWorkingMemory workingMemory,
+            final ContextEntry ctx, IDegreeFactory factory) {
+    	
+    	IDegree deg = factory.fromBoolean(this.isAllowed(handle, workingMemory, ctx));
+    	return getTemplate().spawn(deg);
+	}
+        
 
     public boolean isAllowed(InternalReadAccessor extractor,
                              InternalFactHandle handle,
@@ -287,7 +302,14 @@
                              ContextEntry context) {
         throw new UnsupportedOperationException( "Method not supported. Please contact development team." );
     }
+    
+    public IDegree isSatisfied(InternalReadAccessor extractor,
+			InternalFactHandle handle, InternalWorkingMemory workingMemory,
+			ContextEntry context, IDegreeFactory factory) {
+    	throw new UnsupportedOperationException( "Method not supported. Please contact development team." );
+	}
 
+
     public boolean isAllowedCachedLeft(final ContextEntry context,
                                        final InternalFactHandle handle) {
         try {
@@ -303,7 +325,13 @@
                                               e );
         }
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return factory.fromBoolean(this.isAllowedCachedLeft(context, handle));
+	}
 
+
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         try {
@@ -319,6 +347,11 @@
                                               e );
         }
     }
+    
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		return factory.fromBoolean(this.isAllowedCachedRight(tuple, context));
+	}
 
     public Object clone() {
         Declaration[] previous = new Declaration[this.previousDeclarations.length];
@@ -409,4 +442,24 @@
         }
     }
 
+    
+    
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null)
+			singletonKey = new ConstraintKey("...","predicate","...");
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+	
+	
+
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,10 +20,16 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
 
 import org.drools.RuntimeDroolsException;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ReturnValueRestriction.ReturnValueContextEntry;
 import org.drools.runtime.rule.Evaluator;
@@ -140,6 +146,25 @@
         }
     }
 
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+			InternalWorkingMemory workingMemory, ContextEntry context,
+			IDegreeFactory factory) {
+    	try {
+            IDegree deg = this.restriction.isSatisfied( this.readAccessor,
+                                               handle,
+                                               null,
+                                               workingMemory,
+                                               context,
+                                               factory);
+            return getTemplate().spawn(deg);
+        } catch ( final Exception e ) {
+            throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction + " : " + e.getMessage(),
+                                              e );            
+        }        
+	}
+    
+    
     public boolean isAllowedCachedLeft(final ContextEntry context,
                                        final InternalFactHandle handle) {
         try {
@@ -154,6 +179,23 @@
                                               e );
         }
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	 try {
+             final ReturnValueContextEntry ctx = (ReturnValueContextEntry) context;
+             return this.restriction.isSatisfied( this.readAccessor,
+                                                handle,
+                                                ctx.getTuple(),
+                                                ctx.getWorkingMemory(),
+                                                ctx,
+                                                factory);
+         } catch ( final Exception e ) {
+             throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction + " : " + e.getMessage(),
+                                               e );
+         }
+	}
+    
 
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
@@ -170,9 +212,44 @@
         }
     }
 
+
+	public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+        try {
+            final ReturnValueContextEntry ctx = (ReturnValueContextEntry) context;
+            return this.restriction.isSatisfied( this.readAccessor,
+                                               ctx.getHandle(),
+                                               tuple,
+                                               ctx.getWorkingMemory(),
+                                               ctx,
+                                               factory);
+        } catch ( final Exception e ) {
+            throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction + " : " + e.getMessage(),
+                                              e );
+        }
+		
+	}
+
+    
+    
     public Object clone() {
         return new ReturnValueConstraint( this.readAccessor,
                                           (ReturnValueRestriction) this.restriction.clone() );
     }
 
+	public ConstraintKey getConstraintKey() {
+		return this.restriction.getConstraintKey();
+	}
+
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+	
+    
+    
+
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -21,13 +21,18 @@
 import java.io.ObjectOutput;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.drools.RuntimeDroolsException;
 import org.drools.WorkingMemory;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.AcceptsReadAccessor;
 import org.drools.spi.CompiledInvoker;
@@ -235,6 +240,29 @@
         }
     }
 
+    
+    public IDegree isSatisfied(final InternalReadAccessor readAccessor,
+            final InternalFactHandle handle,
+            final Tuple tuple,
+            final WorkingMemory workingMemory,
+            final ContextEntry context,
+            IDegreeFactory factory) {
+    	try {
+    			return this.evaluator.evaluate( null,
+    					   factory,
+                           this.readAccessor,
+                           handle.getObject(),
+                           this.expression.evaluate( handle.getObject(),
+                                                     tuple,
+                                                     this.previousDeclarations,
+                                                     this.localDeclarations,
+                                                     workingMemory,
+                                                     ((ReturnValueContextEntry) context).dialectContext ) );
+    	} catch ( final Exception e ) {
+    		throw new RuntimeDroolsException( e );
+    	}
+    }
+    
     public boolean isAllowed(final InternalReadAccessor extractor,
                              final InternalFactHandle handle,
                              final InternalWorkingMemory workingMemoiry,
@@ -469,4 +497,35 @@
         }
     }
 
+	public IDegree isSatisfied(InternalReadAccessor extractor,
+			InternalFactHandle handle, InternalWorkingMemory workingMemory,
+			ContextEntry context, IDegreeFactory factory) {
+		throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+	}
+
+	public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+	}
+
+	public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+	}
+
+
+    
+	private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null)
+			singletonKey = new ConstraintKey(readAccessor.toString(),evaluator.toString(),"retval");
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Rule.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Rule.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/Rule.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -24,11 +24,13 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import org.drools.WorkingMemory;
 import org.drools.base.EnabledBoolean;
 import org.drools.base.SalienceInteger;
 import org.drools.io.Resource;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.spi.AgendaGroup;
 import org.drools.spi.CompiledInvoker;
 import org.drools.spi.Consequence;
@@ -124,6 +126,8 @@
     
     private Resource          resource;
 
+	private Map<ConstraintKey, Set<String>> dependencies;
+
     public void writeExternal(ObjectOutput out) throws IOException {
         out.writeObject(pkg);
         out.writeObject(name);
@@ -700,4 +704,16 @@
 	public Rule getParent() {
 		return parent;
 	}
+
+	
+	
+	public Map<ConstraintKey, Set<String>> getDependencies() {
+		return dependencies;
+	}
+
+	
+	
+	public void setDependencies(Map<ConstraintKey, Set<String>> dependencies) {
+		this.dependencies = dependencies;
+	}
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,9 +20,15 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.LinkedList;
 
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.AcceptsReadAccessor;
 import org.drools.spi.Evaluator;
@@ -113,6 +119,39 @@
                                                       context );
     }
     
+    
+    
+    
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+			InternalWorkingMemory workingMemory, ContextEntry context,
+			IDegreeFactory factory) {
+    	IDegree deg = this.restriction.isSatisfied( this.fieldExtractor,
+                handle,
+                workingMemory,
+                context,
+                factory);
+    	return getTemplate().spawn(deg);
+	}
+
+	public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+		return this.restriction.isSatisfiedCachedLeft( context,
+                handle,
+                factory);
+	}
+
+	public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+			ContextEntry context, IDegreeFactory factory) {
+		return this.restriction.isSatisfiedCachedRight( tuple,
+                context, 
+                factory);
+	}
+    
+    
+    
+    
+    
     public boolean isTemporal() {
         return this.restriction.isTemporal();
     }
@@ -156,4 +195,20 @@
                                        (VariableRestriction) this.restriction.clone() );
     }
 
+    
+    
+    
+    
+	public ConstraintKey getConstraintKey() {
+		return this.restriction.getConstraintKey();
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableRestriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/rule/VariableRestriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,10 +20,15 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
 
 import org.drools.base.ValueType;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.spi.AcceptsReadAccessor;
 import org.drools.spi.Evaluator;
@@ -103,6 +108,22 @@
                                         this.declaration.getExtractor(),
                                         this.evaluator.prepareLeftObject( handle ) );
     }
+    
+    public IDegree isSatisfied(InternalReadAccessor extractor,
+			InternalFactHandle handle, InternalWorkingMemory workingMemory,
+			ContextEntry context, IDegreeFactory factory) {
+    	
+    	return this.evaluator.evaluate( workingMemory,
+    			factory,
+                this.readAccessor,
+                this.evaluator.prepareLeftObject( handle ),
+                this.declaration.getExtractor(),
+                this.evaluator.prepareLeftObject( handle ) );
+    	
+	}
+    
+    
+            	  
 
     public boolean isAllowedCachedLeft(final ContextEntry context,
                                        final InternalFactHandle handle) {
@@ -110,7 +131,17 @@
                                                   (VariableContextEntry) context,
                                                   this.evaluator.prepareLeftObject( handle ) );
     }
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+			InternalFactHandle handle, IDegreeFactory factory) {
+    	return this.evaluator.evaluateCachedLeft(    			
+    			((VariableContextEntry) context).workingMemory,    			
+                (VariableContextEntry) context,
+                factory,
+                this.evaluator.prepareLeftObject( handle ) );
+	}
 
+    
     public boolean isAllowedCachedRight(final LeftTuple tuple,
                                         final ContextEntry context) {
         return this.evaluator.evaluateCachedRight( ((VariableContextEntry) context).workingMemory,
@@ -118,6 +149,19 @@
                                                    this.evaluator.prepareLeftObject( tuple.get( this.declaration ) ) );
     }
     
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple, ContextEntry context,
+			IDegreeFactory factory) {
+    	return this.evaluator.evaluateCachedRight(
+    			((VariableContextEntry) context).workingMemory,
+                (VariableContextEntry) context,
+                factory,
+                this.evaluator.prepareLeftObject( tuple.get( this.declaration ) ) );
+	}
+
+    
+    
+    
+    
     public boolean isTemporal() {
         return this.evaluator.isTemporal();
     }
@@ -586,4 +630,20 @@
             }
         }
     }
+
+    
+    private ConstraintKey singletonKey = null;
+    
+	public ConstraintKey getConstraintKey() {
+		if (singletonKey == null)
+			singletonKey = new ConstraintKey(readAccessor.toString(),evaluator.toString(),declaration.toString());
+		return singletonKey;
+	}
+	
+	public Collection<ConstraintKey> getAllConstraintKeys() {
+		Collection<ConstraintKey> ans = new LinkedList<ConstraintKey>();
+			ans.add(getConstraintKey());
+	return ans;
+	}
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -16,8 +16,16 @@
  * limitations under the License.
  */
 
+import java.util.Map;
+import java.util.Set;
+
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.Evaluation;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.rule.ContextEntry;
 
 public interface AlphaNodeFieldConstraint
@@ -29,4 +37,11 @@
     public boolean isAllowed(InternalFactHandle handle,
                              InternalWorkingMemory workingMemory,
                              ContextEntry context);
+    
+    public Evaluation isSatisfied(InternalFactHandle handle,
+            InternalWorkingMemory workingMemory,
+            ContextEntry context,
+            IDegreeFactory factory);
+    
+    public EvaluationTemplate buildEvaluationTemplate(int id, Map<ConstraintKey, Set<String>> dependencies, IDegreeFactory factory);
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -17,6 +17,8 @@
  */
 
 import org.drools.common.InternalFactHandle;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 
@@ -26,10 +28,18 @@
 
     public boolean isAllowedCachedLeft(ContextEntry context,
                                        InternalFactHandle handle);
+    
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+            							  InternalFactHandle handle,
+            							  IDegreeFactory factory);
 
     public boolean isAllowedCachedRight(LeftTuple tuple,
-                                        ContextEntry context);
+             							ContextEntry context);
 
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+                                        ContextEntry context,
+                                        IDegreeFactory factory);
+
     public ContextEntry createContextEntry();
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Constraint.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Constraint.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Constraint.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,7 +1,12 @@
 package org.drools.spi;
 
 import java.io.Externalizable;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
 
+import org.drools.reteoo.ConstraintKey;
+import org.drools.reteoo.EvaluationTemplate;
 import org.drools.rule.Declaration;
 
 /*
@@ -68,6 +73,17 @@
      */
     public boolean isTemporal();
     
+    
+    public ConstraintKey getConstraintKey();
+    
+    public Collection<ConstraintKey> getAllConstraintKeys();
+    
+//    public void setDependencies(Map<ConstraintKey,Set<String>> deps);
+//    
+//    public Map<ConstraintKey,Set<String>> getDependencies();
+    
+    public EvaluationTemplate getEvalTemplate(ConstraintKey key);
+    
     /**
      * An enum for Constraint Types
      */

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Evaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Evaluator.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Evaluator.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -21,6 +21,8 @@
 import org.drools.base.ValueType;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.rule.VariableRestriction.VariableContextEntry;
 import org.drools.runtime.rule.Operator;
 import org.drools.time.Interval;
@@ -126,6 +128,14 @@
                             InternalReadAccessor extractor,
                             Object object,
                             FieldValue value);
+    
+    
+    public IDegree evaluate(InternalWorkingMemory workingMemory,
+    		IDegreeFactory factory,
+            InternalReadAccessor extractor,
+            Object object,
+            FieldValue value
+            );
 
     /**
      * Evaluates the expression using the provided parameters.
@@ -164,6 +174,14 @@
                             Object left,
                             InternalReadAccessor rightExtractor,
                             Object right);
+    
+    public IDegree evaluate(InternalWorkingMemory workingMemory,
+    		IDegreeFactory factory,
+            InternalReadAccessor leftExtractor,
+            Object left,
+            InternalReadAccessor rightExtractor,
+            Object right
+            );
 
     /**
      * Evaluates the expression using the provided parameters.
@@ -196,7 +214,13 @@
     public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
                                       VariableContextEntry context,
                                       Object right);
+    
+    public IDegree evaluateCachedLeft(InternalWorkingMemory workingMemory,    		
+            VariableContextEntry context,
+            IDegreeFactory factory,
+            Object right);
 
+
     /**
      * Evaluates the expression using the provided parameters.
      * 
@@ -228,6 +252,11 @@
                                        VariableContextEntry context,
                                        Object left);
     
+    public IDegree evaluateCachedRight(InternalWorkingMemory workingMemory,    		
+            VariableContextEntry context,
+            IDegreeFactory factory,
+            Object left);
+    
     /**
      * Returns true if this evaluator implements a temporal evaluation,
      * i.e., a time sensitive evaluation whose properties of matching

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,6 +22,8 @@
 import org.drools.FactException;
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.reteoo.Evaluation;
 import org.drools.rule.Declaration;
 import org.drools.rule.Rule;
 import org.drools.runtime.ExitPoint;
@@ -126,5 +128,13 @@
     public Declaration getDeclaration(String identifier);
     
     public void halt();
+    
+    
+    public IDegree getConsequenceDegree();
+    
+    public void inject(Object object, String field, String op, String value);
 
+    public void setConsequenceDegree(IDegree deg);
+    
+    
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Restriction.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Restriction.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/spi/Restriction.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,9 +1,13 @@
 package org.drools.spi;
 
 import java.io.Externalizable;
+import java.util.Collection;
 
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ConstraintKey;
 import org.drools.reteoo.LeftTuple;
 import org.drools.rule.ContextEntry;
 import org.drools.rule.Declaration;
@@ -24,7 +28,22 @@
 
     public boolean isAllowedCachedRight(LeftTuple tuple,
                                         ContextEntry context);
+    
+    
+    public IDegree isSatisfied(InternalReadAccessor extractor,
+            InternalFactHandle handle,
+            InternalWorkingMemory workingMemory,
+            ContextEntry context,
+            IDegreeFactory factory);
 
+    public IDegree isSatisfiedCachedLeft(ContextEntry context,
+                      InternalFactHandle handle,
+                      IDegreeFactory factory);
+
+    public IDegree isSatisfiedCachedRight(LeftTuple tuple,
+                       ContextEntry context,
+                       IDegreeFactory factory);
+
     public ContextEntry createContextEntry();
 
     /**
@@ -46,4 +65,9 @@
 
     public Object clone();
 
+    
+    public ConstraintKey getConstraintKey();
+    
+    public Collection<ConstraintKey> getAllConstraintKeys();
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -17,9 +17,11 @@
 import org.drools.base.field.LongFieldImpl;
 import org.drools.base.field.ObjectFieldImpl;
 import org.drools.common.EmptyBetaConstraints;
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.reteoo.builder.BuildContext;
 import org.drools.rule.Behavior;
 import org.drools.rule.LiteralConstraint;
@@ -603,5 +605,21 @@
             // TODO Auto-generated method stub
             return 0;
         }
+
+		public void assertObject(ImperfectFactHandle factHandle,
+				PropagationContext propagationContext,
+				InternalWorkingMemory workingMemory, IDegreeFactory factory,
+				EvalRecord record) {
+			// Auto-generated method stub
+			
+		}
+
+		public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+				PropagationContext context,
+				InternalWorkingMemory workingMemory, IDegreeFactory factory
+				) {
+			// TODO Auto-generated method stub
+			
+		}
     }
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockLeftTupleSink.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockLeftTupleSink.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockLeftTupleSink.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -27,6 +27,7 @@
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.NodeMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class MockLeftTupleSink extends LeftTupleSource
@@ -57,6 +58,15 @@
         this.asserted.add( new Object[]{tuple, context, workingMemory} );
 
     }
+    
+    
+    
+    public void assertLeftTuple(ImperfectLeftTuple leftTuple,
+			PropagationContext context, InternalWorkingMemory workingMemory,
+			IDegreeFactory factory) {
+    	this.asserted.add( new Object[]{leftTuple, context, workingMemory, factory} );
+		
+	}
 
     public void retractLeftTuple(final LeftTuple tuple,
                              final PropagationContext context,
@@ -171,4 +181,8 @@
         return 0;
     }
 
+	
+
+	
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -22,9 +22,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.drools.common.ImperfectFactHandle;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.RuleBasePartitionId;
+import org.drools.degrees.factory.IDegreeFactory;
 import org.drools.spi.PropagationContext;
 
 public class MockObjectSink
@@ -44,6 +46,15 @@
         this.asserted.add( new Object[]{factHandle, context, workingMemory} );
     }
 
+    
+    public void assertObject(ImperfectFactHandle factHandle,
+			PropagationContext context,
+			InternalWorkingMemory workingMemory, IDegreeFactory factory,
+			EvalRecord record) {
+		this.asserted.add( new Object[]{factHandle, context, workingMemory, factory, record} );
+		
+	}
+    
     public void retractRightTuple(final RightTuple rightTuple,
                               final PropagationContext context,
                               final InternalWorkingMemory workingMemory) {
@@ -125,4 +136,6 @@
         // TODO Auto-generated method stub
         return NodeTypeEnums.JoinNode;
     }
+
+	
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-decisiontables/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-decisiontables/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-decisiontables/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,25 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-templates"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-decisiontables/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-decisiontables/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-decisiontables/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -11,8 +11,12 @@
     <buildCommand>
       <name>org.eclipse.jdt.core.javabuilder</name>
     </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
   </buildSpec>
   <natures>
     <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
   </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-eclipse/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-eclipse/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-eclipse/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -5,7 +5,19 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
 	</natures>
 </projectDescription>

Modified: labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,21 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry kind="src" path="src/main/resources"/>
-	<classpathentry exported="true" kind="lib" path="lib/joda-time.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-api.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-core.jar" sourcepath="/drools-core"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar" sourcepath="/drools-compiler"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-templates.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-decisiontables.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-jsr94.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jsr94.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jxl.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/mvel2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/xpp3.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/xstream.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/antlr-runtime.jar"/>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,28 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.drools.eclipse</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.drools.eclipse</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>

Modified: labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -439,7 +439,7 @@
                                           parserErrors,
                                           builder.getPackage(),
                                           builder.getErrors().getErrors(),
-                                          builder.getPackageRegistry( builder.getDefaultNamespace() ).getDialectCompiletimeRegistry() );
+                                          builder.getPackageRegistry( builder.getDefaultDialect() ).getDialectCompiletimeRegistry() );
                 } else {
                     result = new DRLInfo( resource == null ? "" : resource.getProjectRelativePath().toString(),
                                           packageDescr,

Modified: labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,11 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry exported="true" kind="lib" path="lib/slf4j-api.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/slf4j-jdk14.jar"/>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="lib" path="lib/drools-process-task.jar"/>
-	<classpathentry kind="lib" path="lib/mina-core.jar"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-eclipse/org.drools.eclipse.task/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,9 +20,15 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
 </projectDescription>

Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
-	<classpathentry excluding="**/*.java" kind="src" path="src/main/rules"/>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/foxtrot-2.0.jar"/>
-	<classpathentry kind="lib" path="lib/jgoodies-forms-1.0.4.jar"/>
-	<classpathentry kind="con" path="DROOLS/Drools"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/rules"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,16 +1,20 @@
-<projectDescription>
-  <name>drools-examples</name>
-  <comment>A rule production system</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.drools.eclipse.droolsbuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-examples-drl</name>
+  <comment>A rule production system</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.drools.eclipse.droolsbuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-guvnor/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-guvnor/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-guvnor/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,92 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/acl-spi/2.0.2.CR6/acl-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2.CR6/authorization-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/cobogw/gwt/cobogw/1.0/cobogw-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.2.1/commons-fileupload-1.2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.4/commons-io-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6/dom4j-1.6.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-decisiontables"/>
-  <classpathentry kind="src" path="/drools-repository"/>
-  <classpathentry kind="src" path="/drools-templates"/>
-  <classpathentry kind="src" path="/drools-verifier"/>
-  <classpathentry kind="var" path="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.2/el-api-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/el/el-ri/1.2/el-ri-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/emma/emma/2.0.5312/emma-2.0.5312.jar"/>
-  <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
-  <classpathentry kind="var" path="M2_REPO/pl/balon/gwt/gwt-diagrams/0.2-RC00/gwt-diagrams-0.2-RC00.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-servlet/1.5.2/gwt-servlet-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/gwtext/gwtext/2.0.5/gwtext-2.0.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.4.sp1/hibernate-3.2.4.sp1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.3.0.ga/hibernate-annotations-3.3.0.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.3.1.ga/hibernate-entitymanager-3.3.1.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.2/hsqldb-1.8.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-impl/2.0.2.CR6/identity-impl-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.CR6/identity-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.4/jackrabbit-api-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.4.5/jackrabbit-core-1.4.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi/1.4/jackrabbit-spi-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi-commons/1.4/jackrabbit-spi-commons-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.4/jackrabbit-text-extractors-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.4.GA/jboss-common-core-2.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/el/jboss-el/1.0_02.CR2/jboss-el-1.0_02.CR2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-log4j/2.0.2.GA/jboss-logging-log4j-2.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam/2.1.0.GA/jboss-seam-2.1.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam-remoting/2.1.0.GA/jboss-seam-remoting-2.1.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl/2.0.2.Beta4/jboss-security-acl-2.0.2.Beta4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl-impl/2.0.2.CR6/jboss-security-acl-impl-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi/2.0.2.CR6/jboss-security-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-guvnor/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-guvnor/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-guvnor/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -12,10 +12,10 @@
   </projects>
   <buildSpec>
     <buildCommand>
-      <name>org.maven.ide.eclipse.maven2Builder</name>
+      <name>org.eclipse.jdt.core.javabuilder</name>
     </buildCommand>
     <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
     </buildCommand>
   </buildSpec>
   <natures>

Modified: labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.launch
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.launch	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.launch	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
 <listEntry value="/drools-guvnor"/>
@@ -84,8 +84,10 @@
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-decisiontables&quot; type=&quot;1&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-api&quot; type=&quot;1&quot;/&gt;&#10;"/>
 </listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out www org.drools.guvnor.Guvnor/Guvnor.html"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="drools-guvnor"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
 </launchConfiguration>

Modified: labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.mac.launch
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.mac.launch	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-guvnor/Guvnor.mac.launch	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
 <listEntry value="/drools-guvnor"/>
@@ -73,10 +73,12 @@
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/mvel2-2.0.1-SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;drools-api&quot; type=&quot;1&quot;/&gt;&#10;"/>
 </listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.5"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out www org.drools.guvnor.Guvnor/Guvnor.html"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="drools-guvnor"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx400m -Xms40m"/>
 </launchConfiguration>

Modified: labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1 +1 @@
-5.0.0.SNAPSHOT 25658M
\ No newline at end of file
+5.0.0.SNAPSHOT 25662M
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-jsr94/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-jsr94/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-jsr94/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,29 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-decisiontables"/>
-  <classpathentry kind="src" path="/drools-templates"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jsr94/jsr94/1.1/jsr94-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-sigtest/1.1/jsr94-sigtest-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-tck/1.0.3/jsr94-tck-1.0.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-jsr94/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-jsr94/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-jsr94/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,19 +1,23 @@
-<projectDescription>
-  <name>drools-jsr94</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-    <project>drools-decisiontables</project>
-    <project>drools-templates</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-jsr94</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+    <project>drools-decisiontables</project>
+    <project>drools-templates</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,41 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/codehaus/btm/btm/1.3.2/btm-1.3.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0.1/geronimo-jms_1.1_spec-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.77/h2-1.0.77.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-persistence-jpa/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-persistence-jpa</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-persistence-jpa</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,41 +1,9 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/activemq/activeio-core/3.1.0/activeio-core-3.1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/activemq/activemq-core/5.2.0/activemq-core-5.2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/backport-util-concurrent/backport-util-concurrent/2.1/backport-util-concurrent-2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/camel/camel-core/1.5.0/camel-core-1.5.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-transformer-jaxb"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/1.0/geronimo-j2ee-management_1.0_spec-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-impl/2.0.3/jaxb-impl-2.0.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-xjc/2.0.3/jaxb-xjc-2.0.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/simple-jndi/simple-jndi/0.11.4/simple-jndi-0.11.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-messenger-jms/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,18 +1,22 @@
-<projectDescription>
-  <name>drools-messenger-jms</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-    <project>drools-transformer-jaxb</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-messenger-jms</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+    <project>drools-transformer-jaxb</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,28 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.0/jaxb-api-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-impl/2.0.3/jaxb-impl-2.0.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-xjc/2.0.3/jaxb-xjc-2.0.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jaxb/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-transformer-jaxb</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-transformer-jaxb</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,31 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-digester/commons-digester/1.8/commons-digester-1.8.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-jexl/commons-jexl/1.1/commons-jexl-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/jxls/jxls-reader/0.9.6/jxls-reader-0.9.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.0.2-FINAL/poi-3.0.2-FINAL.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-jxls/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-transformer-jxls</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-transformer-jxls</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,36 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/freemarker/freemarker/2.3.9/freemarker-2.3.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-commons/1.1/milyn-commons-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-smooks-core/1.1/milyn-smooks-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-smooks-javabean/1.1/milyn-smooks-javabean-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.3.12-java1.5/mvel-1.3.12-java1.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xmlunit/xmlunit/1.2/xmlunit-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-smooks/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-transformer-smooks</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-transformer-smooks</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,26 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xmlunit/xmlunit/1.2/xmlunit-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-pipeline/drools-transformer-xstream/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-transformer-xstream</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-transformer-xstream</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,37 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.77/h2-1.0.77.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-bam/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-bam</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-bam</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,33 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/saxon/saxon/8.7/saxon-8.7.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/saxon/saxon-xpath/8.7/saxon-xpath-8.7.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ode/ode-bpel-compiler/1.2/ode-bpel-compiler-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ode/ode-bpel-schemas/1.2/ode-bpel-schemas-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ode/ode-utils/1.2/ode-utils-1.2.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.1-SNAPSHOT/mvel2-2.0.1-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0.1/antlr-runtime-3.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/wsdl4j/wsdl4j/1.6.1/wsdl4j-1.6.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.0/xalan-2.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-bpel/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-  <name>drools-bpel</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
-</projectDescription>
\ No newline at end of file
+	<name>drools-bpel</name>
+	<comment>A rule production system</comment>
+	<projects>
+		<project>drools-api</project>
+		<project>drools-compiler</project>
+		<project>drools-core</project>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,49 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/bsh/bsh/1.3.0/bsh-1.3.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/drools/drools-api/5.0.0.SNAPSHOT/drools-api-5.0.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-api/5.0.0.SNAPSHOT/drools-api-5.0.0.SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/5.0.0.SNAPSHOT/drools-compiler-5.0.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-compiler/5.0.0.SNAPSHOT/drools-compiler-5.0.0.SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/5.0.0.SNAPSHOT/drools-core-5.0.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-core/5.0.0.SNAPSHOT/drools-core-5.0.0.SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.4/jackrabbit-api-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.4.5/jackrabbit-core-1.4.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi/1.4/jackrabbit-spi-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi-commons/1.4/jackrabbit-spi-commons-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.4/jackrabbit-text-extractors-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jbpm/jbpm3/jbpm-jpdl/3.3.0.GA/jbpm-jpdl-3.3.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.4-SNAPSHOT/mvel2-2.0.4-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/nekohtml/nekohtml/0.9.4/nekohtml-0.9.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/pdfbox/pdfbox/0.6.4/pdfbox-0.6.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/textmining/tm-extractors/0.4/tm-extractors-0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-jpdl/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,13 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-  <name>drools-jpdl</name>
-  <comment>A rule production system</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
-</projectDescription>
\ No newline at end of file
+	<name>drools-jpdl</name>
+	<comment>A rule production system</comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,63 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-cli/2.0-SNAPSHOT/commons-cli-2.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-compress/1.0-SNAPSHOT/commons-compress-1.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-exec/1.0.0-SNAPSHOT/commons-exec-1.0.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-finder/1.0-SNAPSHOT/commons-finder-1.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.4/commons-io-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-net/commons-net/2.0/commons-net-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-workitems"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.0/el-api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.77/h2-1.0.77.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/el/jboss-el/1.0_02.CR2/jboss-el-1.0_02.CR2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam/2.1.0.SP1/jboss-seam-2.1.0.SP1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jdom/jdom/1.0/jdom-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/mina/mina-core/2.0.0-M3/mina-core-2.0.0-M3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/postgresql/postgresql/8.3-603.jdbc3/postgresql-8.3-603.jdbc3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/rome/rome/0.9/rome-0.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jivesoftware/smack/3.0.4/smack-3.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-smtp/1.2/subethasmtp-smtp-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-wiser/1.2/subethasmtp-wiser-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-process-task/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,18 +1,22 @@
-<projectDescription>
-  <name>drools-process-task</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-    <project>drools-workitems</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-process-task</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+    <project>drools-workitems</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,46 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-cli/2.0-SNAPSHOT/commons-cli-2.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-compress/1.0-SNAPSHOT/commons-compress-1.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-exec/1.0.0-SNAPSHOT/commons-exec-1.0.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-finder/1.0-SNAPSHOT/commons-finder-1.0-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.4/commons-io-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-net/commons-net/2.0/commons-net-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ftpserver/ftplet-api/1.0.0-RC2/ftplet-api-1.0.0-RC2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ftpserver/ftpserver-core/1.0.0-RC2/ftpserver-core-1.0.0-RC2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jdom/jdom/1.0/jdom-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/mina/mina-core/2.0.0-M4/mina-core-2.0.0-M4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/rome/rome/0.9/rome-0.9.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jivesoftware/smack/3.0.4/smack-3.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-smtp/1.2/subethasmtp-smtp-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-wiser/1.2/subethasmtp-wiser-1.2.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-process/drools-workitems/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-workitems</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-workitems</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-repository/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-repository/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-repository/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,65 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/acl-spi/2.0.2.CR6/acl-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2.CR6/authorization-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.4.sp1/hibernate-3.2.4.sp1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.3.0.ga/hibernate-annotations-3.3.0.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.3.1.ga/hibernate-entitymanager-3.3.1.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.2/hsqldb-1.8.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-impl/2.0.2.CR6/identity-impl-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.CR6/identity-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.4/jackrabbit-api-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.4.5/jackrabbit-core-1.4.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi/1.4/jackrabbit-spi-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi-commons/1.4/jackrabbit-spi-commons-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.4/jackrabbit-text-extractors-1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.3.GA/javassist-3.3.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.2.GA/jboss-common-core-2.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-log4j/2.0.2.GA/jboss-logging-log4j-2.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl/2.0.2.Beta4/jboss-security-acl-2.0.2.Beta4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl-impl/2.0.2.CR6/jboss-security-acl-impl-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi/2.0.2.CR6/jboss-security-spi-2.0.2.CR6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-repository/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-repository/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-repository/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,13 +1,17 @@
-<projectDescription>
-  <name>drools-repository</name>
-  <comment>A rule production system</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-repository</name>
+  <comment>A rule production system</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -20,7 +20,7 @@
 import org.drools.repository.remoteapi.Response.Binary;
 import org.drools.repository.remoteapi.Response.Text;
 
-import com.sun.org.apache.xalan.internal.xsltc.cmdline.getopt.GetOpt;
+//import com.sun.org.apache.xalan.internal.xsltc.cmdline.getopt.GetOpt;
 
 /**
  * This provides a simple REST style remote friendly API.

Modified: labs/jbossrules/branches/DroolsChance/drools-server/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-server/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-server/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,29 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0.1/jettison-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.8-SNAPSHOT/mvel2-2.0.8-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/stax/stax/1.2.0/stax-1.2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-server/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-server/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-server/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,28 +1,32 @@
-<projectDescription>
-  <name>drools-server</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.eclipse.wst.validation.validationbuilder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-    <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-server</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.eclipse.wst.validation.validationbuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+    <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,30 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-core/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-solver-core</name>
-  <comment>Drools solver core ... TODO</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-solver-core</name>
+  <comment>Drools solver core ... TODO</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,31 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="src" path="/drools-solver-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-solver/drools-solver-examples/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,18 +1,22 @@
-<projectDescription>
-  <name>drools-solver-examples</name>
-  <comment>Drools solver examples ... TODO</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-    <project>drools-solver-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-solver-examples</name>
+  <comment>Drools solver examples ... TODO</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+    <project>drools-solver-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-templates/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-templates/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-templates/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,23 +1,10 @@
-<classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-templates/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-templates/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-templates/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,17 +1,21 @@
-<projectDescription>
-  <name>drools-templates</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-templates</name>
+  <comment>A rule production system</comment>
+  <projects>
+    <project>drools-api</project>
+    <project>drools-compiler</project>
+    <project>drools-core</project>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-templates/src/test/java/org/drools/template/parser/ExternalSheetListenerTest.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-templates/src/test/java/org/drools/template/parser/ExternalSheetListenerTest.java	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-templates/src/test/java/org/drools/template/parser/ExternalSheetListenerTest.java	2009-04-05 18:51:22 UTC (rev 25943)
@@ -25,6 +25,8 @@
 import org.drools.process.instance.WorkItemManager;
 import org.drools.process.instance.event.SignalManager;
 import org.drools.process.instance.timer.TimerManager;
+import org.drools.reteoo.ConstraintKey;
+import org.drools.rule.Rule;
 import org.drools.runtime.Environment;
 import org.drools.runtime.ObjectFilter;
 import org.drools.spi.AgendaFilter;
@@ -32,6 +34,7 @@
 import org.drools.spi.AsyncExceptionHandler;
 import org.drools.spi.GlobalResolver;
 import org.drools.time.SessionClock;
+import org.drools.degrees.IDegree;
 
 public class ExternalSheetListenerTest extends TestCase {
 
@@ -436,6 +439,13 @@
                     // TODO Auto-generated method stub
                     return null;
                 }
+
+				
+
+				public void inject(String rule, Object object, ConstraintKey key, IDegree degree) {
+					// TODO Auto-generated method stub
+					
+				}
 			};
 		}
 	}

Modified: labs/jbossrules/branches/DroolsChance/drools-verifier/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-verifier/.classpath	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-verifier/.classpath	2009-04-05 18:51:22 UTC (rev 25943)
@@ -1,25 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.7-SNAPSHOT/mvel2-2.0.7-SNAPSHOT.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-verifier/.project
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-verifier/.project	2009-04-05 15:32:18 UTC (rev 25942)
+++ labs/jbossrules/branches/DroolsChance/drools-verifier/.project	2009-04-05 18:51:22 UTC (rev 25943)
@@ -10,8 +10,12 @@
     <buildCommand>
       <name>org.eclipse.jdt.core.javabuilder</name>
     </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
   </buildSpec>
   <natures>
     <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
   </natures>
 </projectDescription>
\ No newline at end of file




More information about the jboss-svn-commits mailing list