[jboss-svn-commits] JBL Code SVN: r18319 - in labs/jbossrules/trunk: documentation and 43 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Feb 5 13:38:52 EST 2008
Author: mark.proctor at jboss.com
Date: 2008-02-05 13:38:51 -0500 (Tue, 05 Feb 2008)
New Revision: 18319
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java
Removed:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java
Modified:
labs/jbossrules/trunk/documentation/manual/en/master.xml
labs/jbossrules/trunk/documentation/pom.xml
labs/jbossrules/trunk/drools-analytics/.classpath
labs/jbossrules/trunk/drools-analytics/pom.xml
labs/jbossrules/trunk/drools-ant/.classpath
labs/jbossrules/trunk/drools-ant/.project
labs/jbossrules/trunk/drools-ant/pom.xml
labs/jbossrules/trunk/drools-clips/.classpath
labs/jbossrules/trunk/drools-clips/pom.xml
labs/jbossrules/trunk/drools-compiler/.classpath
labs/jbossrules/trunk/drools-compiler/.project
labs/jbossrules/trunk/drools-compiler/pom.xml
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/compilers/EclipseJavaCompiler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/PackageStore.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateMVEL.drl
labs/jbossrules/trunk/drools-core/.classpath
labs/jbossrules/trunk/drools-core/pom.xml
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsClassLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LineMappings.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/validation/RuleFlowProcessValidator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java
labs/jbossrules/trunk/drools-decisiontables/.classpath
labs/jbossrules/trunk/drools-decisiontables/.project
labs/jbossrules/trunk/drools-decisiontables/pom.xml
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-feature/feature.xml
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-test-feature/feature.xml
labs/jbossrules/trunk/drools-eclipse/pom.xml
labs/jbossrules/trunk/drools-examples/drools-examples-drl/.classpath
labs/jbossrules/trunk/drools-examples/drools-examples-drl/pom.xml
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltz/waltz.drl
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HelloWorld.drl
labs/jbossrules/trunk/drools-examples/drools-insurance/pom.xml
labs/jbossrules/trunk/drools-jbrms/.classpath
labs/jbossrules/trunk/drools-jbrms/.project
labs/jbossrules/trunk/drools-jbrms/pom.xml
labs/jbossrules/trunk/drools-jsr94/.classpath
labs/jbossrules/trunk/drools-jsr94/.project
labs/jbossrules/trunk/drools-jsr94/pom.xml
labs/jbossrules/trunk/drools-repository/.classpath
labs/jbossrules/trunk/drools-repository/pom.xml
labs/jbossrules/trunk/drools-server/pom.xml
labs/jbossrules/trunk/drools-solver/drools-solver-core/pom.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml
labs/jbossrules/trunk/drools-solver/pom.xml
labs/jbossrules/trunk/pom.xml
Log:
JBRULES-1450 De-couple drools-core from the java dialect's PackageCompilationData
-Initial de-coupling attempt
-also updated to mvel 2.0 alpha 2
Modified: labs/jbossrules/trunk/documentation/manual/en/master.xml
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/master.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/documentation/manual/en/master.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<subtitle>Drools Documentation</subtitle>
- <releaseinfo>4.1.0.SNAPSHOT</releaseinfo>
+ <releaseinfo>5.0.0.SNAPSHOT</releaseinfo>
<author>
<firstname>Mark</firstname>
Modified: labs/jbossrules/trunk/documentation/pom.xml
===================================================================
--- labs/jbossrules/trunk/documentation/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/documentation/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-documentation</artifactId>
Modified: labs/jbossrules/trunk/drools-analytics/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-analytics/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-analytics/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,13 +5,13 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="src" path="/drools-compiler"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="src" path="/drools-core"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="src" path="/drools-core"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-analytics/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-analytics/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-analytics/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-analytics</artifactId>
Modified: labs/jbossrules/trunk/drools-ant/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-ant/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-ant/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,17 +5,17 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
+ <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.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.0/antlr-runtime-3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="src" path="/drools-core"/>
<classpathentry kind="src" path="/drools-analytics"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
<classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar"/>
<classpathentry kind="src" path="/drools-decisiontables"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-ant/.project
===================================================================
--- labs/jbossrules/trunk/drools-ant/.project 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-ant/.project 2008-02-05 18:38:51 UTC (rev 18319)
@@ -3,8 +3,8 @@
<comment>A rule production system</comment>
<projects>
<project>drools-compiler</project>
+ <project>drools-core</project>
<project>drools-analytics</project>
- <project>drools-core</project>
<project>drools-decisiontables</project>
</projects>
<buildSpec>
Modified: labs/jbossrules/trunk/drools-ant/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-ant/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-ant/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -2,7 +2,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: labs/jbossrules/trunk/drools-clips/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-clips/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-clips/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -6,10 +6,10 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
<classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-clips/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-clips/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-clips/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>${project.version}
<artifactId>drools-clips</artifactId>
Modified: labs/jbossrules/trunk/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-compiler/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,12 +5,12 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" 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/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
<classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/.project
===================================================================
--- labs/jbossrules/trunk/drools-compiler/.project 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/.project 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,7 +1,9 @@
<projectDescription>
<name>drools-compiler</name>
<comment>A rule production system</comment>
- <projects/>
+ <projects>
+ <project>drools-core</project>
+ </projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
Modified: labs/jbossrules/trunk/drools-compiler/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-compiler</artifactId>
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/compilers/EclipseJavaCompiler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/compilers/EclipseJavaCompiler.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/compilers/EclipseJavaCompiler.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -225,7 +225,7 @@
final String resourceName = ClassUtils.convertClassToResourcePath(pClazzName);
- final byte[] clazzBytes = pStore.read(pClazzName);
+ final byte[] clazzBytes = pStore.read( resourceName );
if (clazzBytes != null) {
final char[] fileName = pClazzName.toCharArray();
try {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -306,7 +306,10 @@
// iterate and compile
for ( final Iterator it = packageDescr.getFunctions().iterator(); it.hasNext(); ) {
- addFunction( (FunctionDescr) it.next() );
+ // inherit the dialect from the package
+ FunctionDescr functionDescr = (FunctionDescr) it.next();
+ functionDescr.setDialect( this.dialect.getId() );
+ addFunction( functionDescr );
}
// We need to compile all the functions, so scripting languages like mvel can find them
@@ -326,11 +329,11 @@
}
this.dialectRegistry.compileAll();
+
+
// some of the rules and functions may have been redefined
- if ( this.pkg.getPackageCompilationData().isDirty() ) {
- this.pkg.getPackageCompilationData().reload();
- }
+ this.pkg.getDialectDatas().reloadDirty();
this.results = this.dialectRegistry.addResults( this.results );
}
@@ -470,8 +473,8 @@
* Compiled packages are serializable.
*/
public Package getPackage() {
- if ( this.pkg != null && this.pkg.getPackageCompilationData() != null && this.pkg.getPackageCompilationData().isDirty() ) {
- this.pkg.getPackageCompilationData().reload();
+ if ( this.pkg != null ) {
+ this.pkg.getDialectDatas().reloadDirty();
}
if ( hasErrors() && this.pkg != null ) {
this.pkg.setError( getErrors().toString() );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -104,11 +104,8 @@
// we can only do this is this.pkg != null, as otherwise the dialects won't be properly initialised
// as the dialects are initialised when the pkg is first created
this.packageBuilder.getDialectRegistry().compileAll();
-
- // some of the rules and functions may have been redefined
- if ( pkg.getPackageCompilationData().isDirty() ) {
- pkg.getPackageCompilationData().reload();
- }
+
+ pkg.getDialectDatas().reloadDirty();
}
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -20,31 +20,42 @@
import java.util.Collections;
import java.util.List;
-public class FunctionDescr extends BaseDescr {
+import org.drools.rule.Dialectable;
+
+public class FunctionDescr extends BaseDescr implements Dialectable {
private static final long serialVersionUID = 400L;
private final String name;
private final String returnType;
+ private String dialect;
- private List parameterTypes = Collections.EMPTY_LIST;
- private List parameterNames = Collections.EMPTY_LIST;
+ private List<String> parameterTypes = Collections.emptyList();
+ private List<String> parameterNames = Collections.emptyList();
- private String text;
+ private Object content;
private int offset;
private String className;
public FunctionDescr(final String name,
- final String returnType) {
+ final String returnType ) {
this.name = name;
this.returnType = returnType;
}
public String getName() {
return this.name;
+ }
+
+ public void setDialect(String dialect) {
+ this.dialect = dialect;
}
+ public String getDialect() {
+ return this.dialect;
+ }
+
public String getClassName() {
return this.className;
}
@@ -53,23 +64,23 @@
this.className = className;
}
- public List getParameterNames() {
+ public List<String> getParameterNames() {
return this.parameterNames;
}
- public List getParameterTypes() {
+ public List<String> getParameterTypes() {
return this.parameterTypes;
}
public void addParameter(final String type,
final String name) {
if ( this.parameterTypes == Collections.EMPTY_LIST ) {
- this.parameterTypes = new ArrayList();
+ this.parameterTypes = new ArrayList<String>();
}
this.parameterTypes.add( type );
if ( this.parameterNames == Collections.EMPTY_LIST ) {
- this.parameterNames = new ArrayList();
+ this.parameterNames = new ArrayList<String>();
}
this.parameterNames.add( name );
}
@@ -78,12 +89,12 @@
return this.returnType;
}
- public void setText(final String text) {
- this.text = text;
+ public void setContent(Object content) {
+ this.content = content;
}
- public String getText() {
- return this.text;
+ public Object getContent() {
+ return this.content;
}
public int getOffset() {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -21,11 +21,13 @@
import java.util.List;
import org.drools.compiler.Dialect;
+import org.drools.rule.Dialectable;
-public class RuleDescr extends BaseDescr {
+public class RuleDescr extends BaseDescr implements Dialectable {
private static final long serialVersionUID = 400L;
private String name;
+ private String dialect;
private String documentation;
private AndDescr lhs;
@@ -54,6 +56,10 @@
public String getName() {
return this.name;
}
+
+ public String getDialect() {
+ return this.dialect;
+ }
public String getSalience() {
return salience;
@@ -83,6 +89,12 @@
if ( this.attributes == Collections.EMPTY_LIST ) {
this.attributes = new ArrayList();
}
+
+ if ( "dialect".equals( attribute.getName() ) ) {
+ // set dialect specifically as its to drive the build process.
+ this.dialect = attribute.getValue();
+ }
+
this.attributes.add( attribute );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -833,7 +833,7 @@
factTemplate.getFieldTemplateIndex( fieldName ) );
} else {
try {
- ClassLoader classloader = context.getPkg().getPackageCompilationData().getClassLoader();
+ ClassLoader classloader = context.getPkg().getDialectDatas().getClassLoader();
extractor = context.getDialect().getClassFieldExtractorCache().getExtractor( ((ClassObjectType) objectType).getClassType(),
fieldName,
classloader );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -24,7 +24,7 @@
0, // offset is 0 by default
objectType,
null );
- ClassLoader classloader = context.getPkg().getPackageCompilationData().getClassLoader();
+ ClassLoader classloader = context.getPkg().getDialectDatas().getClassLoader();
final FieldExtractor extractor = context.getDialect().getClassFieldExtractorCache().getExtractor( DroolsQuery.class,
"name",
classloader );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -84,6 +84,10 @@
ruleDescr.getAttributes() );
init(configuration, pkg, ruleDescr, dialectRegistry, defaultDialect, this.rule );
+
+ if ( this.rule.getDialect() == null ) {
+ this.rule.setDialect( getDialect().getId() );
+ }
getDialect().init( ruleDescr );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -33,7 +33,7 @@
import org.drools.rule.builder.dialect.java.parser.JavaModifyBlockDescr;
import org.drools.rule.builder.dialect.mvel.MVELDialect;
import org.drools.spi.PatternExtractor;
-import org.mvel.ExecutableStatement;
+import org.mvel.compiler.ExecutableStatement;
/**
* @author etirelli
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -42,6 +42,8 @@
import org.drools.lang.descr.QueryDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.rule.EntryPoint;
+import org.drools.rule.Function;
+import org.drools.rule.JavaDialectData;
import org.drools.rule.LineMappings;
import org.drools.rule.Package;
import org.drools.rule.Rule;
@@ -80,23 +82,23 @@
private final static String EXPRESSION_DIALECT_NAME = "MVEL";
// builders
- private final PatternBuilder pattern = new PatternBuilder();
- private final QueryBuilder query = new QueryBuilder();
- private final SalienceBuilder salience = new MVELSalienceBuilder();
- private final JavaAccumulateBuilder accumulate = new JavaAccumulateBuilder();
- private final JavaEvalBuilder eval = new JavaEvalBuilder();
- private final JavaPredicateBuilder predicate = new JavaPredicateBuilder();
- private final JavaReturnValueBuilder returnValue = new JavaReturnValueBuilder();
- private final JavaConsequenceBuilder consequence = new JavaConsequenceBuilder();
- private final JavaActionBuilder actionBuilder = new JavaActionBuilder();
- private final ReturnValueEvaluatorBuilder returnValueEvaluatorBuilder = new JavaReturnValueEvaluatorBuilder();
- private final JavaRuleClassBuilder ruleClassBuilder = new JavaRuleClassBuilder();
- private final JavaProcessClassBuilder processClassBuilder = new JavaProcessClassBuilder();
- private final MVELFromBuilder from = new MVELFromBuilder();
- private final JavaFunctionBuilder function = new JavaFunctionBuilder();
- private final CollectBuilder collect = new CollectBuilder();
- private final ForallBuilder forall = new ForallBuilder();
- private final EntryPointBuilder entrypoint = new EntryPointBuilder();
+ private static final PatternBuilder pattern = new PatternBuilder();
+ private static final QueryBuilder query = new QueryBuilder();
+ private static final SalienceBuilder salience = new MVELSalienceBuilder();
+ private static final JavaAccumulateBuilder accumulate = new JavaAccumulateBuilder();
+ private static final JavaEvalBuilder eval = new JavaEvalBuilder();
+ private static final JavaPredicateBuilder predicate = new JavaPredicateBuilder();
+ private static final JavaReturnValueBuilder returnValue = new JavaReturnValueBuilder();
+ private static final JavaConsequenceBuilder consequence = new JavaConsequenceBuilder();
+ private static final JavaActionBuilder actionBuilder = new JavaActionBuilder();
+ private static final ReturnValueEvaluatorBuilder returnValueEvaluatorBuilder = new JavaReturnValueEvaluatorBuilder();
+ private static final JavaRuleClassBuilder ruleClassBuilder = new JavaRuleClassBuilder();
+ private static final JavaProcessClassBuilder processClassBuilder = new JavaProcessClassBuilder();
+ private static final MVELFromBuilder from = new MVELFromBuilder();
+ private static final JavaFunctionBuilder function = new JavaFunctionBuilder();
+ private static final CollectBuilder collect = new CollectBuilder();
+ private static final ForallBuilder forall = new ForallBuilder();
+ private static final EntryPointBuilder entrypoint = new EntryPointBuilder();
//
private KnowledgeHelperFixer knowledgeHelperFixer;
@@ -202,7 +204,9 @@
this.generatedClassList = new ArrayList();
- this.packageStoreWrapper = new PackageStore( pkg.getPackageCompilationData(),
+ JavaDialectData data = (JavaDialectData) this.pkg.getDialectDatas().getDialectData( this.ID );
+
+ this.packageStoreWrapper = new PackageStore( data,
this.results );
}
@@ -213,16 +217,16 @@
"Rule",
this.src );
ruleDescr.setClassName( StringUtils.ucFirst( ruleClassName ) );
- }
-
+ }
+
public void init(final ProcessDescr processDescr) {
final String processDescrClassName = getUniqueLegalName( this.pkg.getName(),
- processDescr.getName(),
- "java",
- "Process",
- this.src );
+ processDescr.getName(),
+ "java",
+ "Process",
+ this.src );
processDescr.setClassName( StringUtils.ucFirst( processDescrClassName ) );
- }
+ }
public String getExpressionDialectName() {
return EXPRESSION_DIALECT_NAME;
@@ -374,7 +378,7 @@
final CompilationResult result = this.compiler.compile( classes,
this.src,
this.packageStoreWrapper,
- this.pkg.getPackageCompilationData().getClassLoader() );
+ this.pkg.getDialectDatas().getClassLoader() );
//this will sort out the errors based on what class/file they happened in
if ( result.getErrors().length > 0 ) {
@@ -437,6 +441,8 @@
rule,
"Rule Compilation error" ) );
+ JavaDialectData data = (JavaDialectData) this.pkg.getDialectDatas().getDialectData( this.ID );
+
for ( final Iterator it = context.getInvokers().keySet().iterator(); it.hasNext(); ) {
final String className = (String) it.next();
@@ -444,8 +450,8 @@
// If so we add it to the PackageCompilationData as it will get wired up on compilation
final Object invoker = context.getInvokerLookups().get( className );
if ( invoker != null ) {
- this.pkg.getPackageCompilationData().putInvoker( className,
- invoker );
+ data.putInvoker( className,
+ invoker );
}
final String text = (String) context.getInvokers().get( className );
@@ -466,8 +472,8 @@
mapping.setStartLine( ruleDescr.getConsequenceLine() );
mapping.setOffset( ruleDescr.getConsequenceOffset() );
- context.getPkg().getPackageCompilationData().getLineMappings().put( name,
- mapping );
+ this.pkg.getDialectDatas().getLineMappings().put( name,
+ mapping );
}
@@ -496,6 +502,8 @@
process,
"Process Compilation error" ) );
+ JavaDialectData data = (JavaDialectData) this.pkg.getDialectDatas().getDialectData( this.ID );
+
for ( final Iterator it = context.getInvokers().keySet().iterator(); it.hasNext(); ) {
final String className = (String) it.next();
@@ -503,8 +511,8 @@
// If so we add it to the PackageCompilationData as it will get wired up on compilation
final Object invoker = context.getInvokerLookups().get( className );
if ( invoker != null ) {
- this.pkg.getPackageCompilationData().putInvoker( className,
- invoker );
+ data.putInvoker( className,
+ invoker );
}
final String text = (String) context.getInvokers().get( className );
@@ -534,14 +542,17 @@
public void addFunction(final FunctionDescr functionDescr,
final TypeResolver typeResolver) {
+ JavaDialectData data = (JavaDialectData) this.pkg.getDialectDatas().getDialectData( this.ID );
//System.out.println( functionDescr + " : " + typeResolver );
final String functionClassName = this.pkg.getName() + "." + StringUtils.ucFirst( functionDescr.getName() );
- this.pkg.addFunction( functionDescr.getName() );
+ Function function = new Function( functionDescr.getName(),
+ this.ID );
+ this.pkg.addFunction( function );
final String functionSrc = getFunctionBuilder().build( this.pkg,
functionDescr,
typeResolver,
- pkg.getPackageCompilationData().getLineMappings(),
+ this.pkg.getDialectDatas().getLineMappings(),
this.results );
addClassCompileTask( functionClassName,
@@ -554,8 +565,8 @@
final LineMappings mapping = new LineMappings( functionClassName );
mapping.setStartLine( functionDescr.getLine() );
mapping.setOffset( functionDescr.getOffset() );
- pkg.getPackageCompilationData().getLineMappings().put( functionClassName,
- mapping );
+ this.pkg.getDialectDatas().getLineMappings().put( functionClassName,
+ mapping );
}
/**
@@ -636,7 +647,7 @@
final ResourceReader src) {
// replaces all non alphanumeric or $ chars with _
String newName = prefix + "_" + name.replaceAll( "[[^\\w]$]",
- "_" );
+ "_" );
// make sure the class name does not exist, if it does increase the counter
int counter = -1;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/PackageStore.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/PackageStore.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/PackageStore.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -19,25 +19,25 @@
import java.util.List;
import org.drools.commons.jci.stores.ResourceStore;
-import org.drools.rule.PackageCompilationData;
+import org.drools.rule.JavaDialectData;
public class PackageStore
implements
ResourceStore {
- private PackageCompilationData packageCompilationData;
+ private JavaDialectData packageCompilationData;
private List errors;
public PackageStore() {
}
- public PackageStore(final PackageCompilationData packageCompiationData,
+ public PackageStore(final JavaDialectData packageCompiationData,
final List errors) {
this.packageCompilationData = packageCompiationData;
this.errors = errors;
}
- public void setPackageCompilationData(final PackageCompilationData packageCompiationData) {
+ public void setPackageCompilationData(final JavaDialectData packageCompiationData) {
this.packageCompilationData = packageCompiationData;
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -63,8 +63,8 @@
import org.drools.spi.DeclarationScopeResolver;
import org.drools.spi.KnowledgeHelper;
import org.drools.util.StringUtils;
-import org.mvel.AbstractParser;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
import org.mvel.optimizers.OptimizerFactory;
@@ -74,33 +74,33 @@
implements
Dialect {
- public final static String ID = "mvel";
+ public final static String ID = "mvel";
private final static String EXPRESSION_DIALECT_NAME = "MVEL";
- private final PatternBuilder pattern = new PatternBuilder();
- private final QueryBuilder query = new QueryBuilder();
- private final MVELAccumulateBuilder accumulate = new MVELAccumulateBuilder();
- private final SalienceBuilder salience = new MVELSalienceBuilder();
- private final MVELEvalBuilder eval = new MVELEvalBuilder();
- private final MVELPredicateBuilder predicate = new MVELPredicateBuilder();
- private final MVELReturnValueBuilder returnValue = new MVELReturnValueBuilder();
- private final MVELConsequenceBuilder consequence = new MVELConsequenceBuilder();
- private final MVELActionBuilder actionBuilder = new MVELActionBuilder();
- private final MVELReturnValueEvaluatorBuilder returnValueEvaluatorBuilder = new MVELReturnValueEvaluatorBuilder();
+ private static final PatternBuilder pattern = new PatternBuilder();
+ private static final QueryBuilder query = new QueryBuilder();
+ private static final MVELAccumulateBuilder accumulate = new MVELAccumulateBuilder();
+ private static final SalienceBuilder salience = new MVELSalienceBuilder();
+ private static final MVELEvalBuilder eval = new MVELEvalBuilder();
+ private static final MVELPredicateBuilder predicate = new MVELPredicateBuilder();
+ private static final MVELReturnValueBuilder returnValue = new MVELReturnValueBuilder();
+ private static final MVELConsequenceBuilder consequence = new MVELConsequenceBuilder();
+ private static final MVELActionBuilder actionBuilder = new MVELActionBuilder();
+ private static final MVELReturnValueEvaluatorBuilder returnValueEvaluatorBuilder = new MVELReturnValueEvaluatorBuilder();
//private final JavaRuleClassBuilder rule = new JavaRuleClassBuilder();
- private final MVELFromBuilder from = new MVELFromBuilder();
- private final JavaFunctionBuilder function = new JavaFunctionBuilder();
- private final CollectBuilder collect = new CollectBuilder();
- private final ForallBuilder forall = new ForallBuilder();
- private final EntryPointBuilder entrypoint = new EntryPointBuilder();
+ private static final MVELFromBuilder from = new MVELFromBuilder();
+ private static final JavaFunctionBuilder function = new JavaFunctionBuilder();
+ private static final CollectBuilder collect = new CollectBuilder();
+ private static final ForallBuilder forall = new ForallBuilder();
+ private static final EntryPointBuilder entrypoint = new EntryPointBuilder();
- private Map interceptors;
+ private Map interceptors;
- private List results;
+ private List results;
//private final JavaFunctionBuilder function = new JavaFunctionBuilder();
- private MemoryResourceReader src;
+ private MemoryResourceReader src;
private Package pkg;
private MVELDialectConfiguration configuration;
@@ -212,7 +212,7 @@
this.builders.put( FunctionDescr.class,
this.function );
-
+
this.builders.put( EntryPointDescr.class,
this.entrypoint );
}
@@ -262,7 +262,7 @@
mapping.setStartLine( ruleDescr.getConsequenceLine() );
mapping.setOffset( ruleDescr.getConsequenceOffset() );
- context.getPkg().getPackageCompilationData().getLineMappings().put( name,
+ context.getPkg().getDialectDatas().getLineMappings().put( name,
mapping );
}
@@ -308,7 +308,7 @@
String methodName = staticImportEntry.substring( index + 1 );
try {
- Class cls = this.pkg.getPackageCompilationData().getClassLoader().loadClass( className );
+ Class cls = this.pkg.getDialectDatas().getClassLoader().loadClass( className );
Method[] methods = cls.getDeclaredMethods();
for ( int i = 0; i < methods.length; i++ ) {
if ( methods[i].getName().equals( methodName ) ) {
@@ -465,7 +465,7 @@
(Class) globalTypes.get( identifier ) );
}
- if( otherInputVariables != null ) {
+ if ( otherInputVariables != null ) {
for ( Iterator it = otherInputVariables.entrySet().iterator(); it.hasNext(); ) {
Entry entry = (Entry) it.next();
parserContext.addInput( (String) entry.getKey(),
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -35,7 +35,8 @@
import org.drools.rule.builder.RuleBuildContext;
import org.drools.rule.builder.RuleConditionBuilder;
import org.drools.spi.DeclarationScopeResolver;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
import org.mvel.util.ParseTools;
@@ -74,7 +75,7 @@
try {
final DroolsMVELFactory factory = new DroolsMVELFactory( context.getDeclarationResolver().getDeclarations(),
null,
- context.getPkg().getGlobals() );
+ context.getPkg().getGlobals() );
Dialect.AnalysisResult analysis = context.getDialect().analyzeExpression( context,
evalDescr,
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELExprAnalyzer.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -28,7 +28,8 @@
import org.antlr.runtime.RecognitionException;
import org.drools.rule.builder.PackageBuildContext;
import org.drools.rule.builder.RuleBuildContext;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.ParserContext;
import org.mvel.integration.impl.MapVariableResolver;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -32,7 +32,8 @@
import org.drools.rule.builder.FromBuilder;
import org.drools.rule.builder.RuleBuildContext;
import org.drools.spi.DataProvider;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
import org.mvel.integration.impl.ClassImportResolverFactory;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -31,7 +31,8 @@
import org.drools.rule.PredicateConstraint;
import org.drools.rule.builder.PredicateBuilder;
import org.drools.rule.builder.RuleBuildContext;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -30,7 +30,8 @@
import org.drools.rule.ReturnValueRestriction;
import org.drools.rule.builder.ReturnValueBuilder;
import org.drools.rule.builder.RuleBuildContext;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -9,7 +9,8 @@
import org.drools.compiler.DescrBuildError;
import org.drools.rule.builder.RuleBuildContext;
import org.drools.rule.builder.SalienceBuilder;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.AbstractParser;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
import org.mvel.integration.impl.ClassImportResolverFactory;
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -76,6 +76,7 @@
import org.drools.rule.Declaration;
import org.drools.rule.EvalCondition;
import org.drools.rule.GroupElement;
+import org.drools.rule.JavaDialectData;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Package;
import org.drools.rule.Pattern;
@@ -190,7 +191,7 @@
// Make sure the compiled classes are also removed
assertEquals( 0,
- pkg.getPackageCompilationData().list().length );
+ ((JavaDialectData)pkg.getDialectDatas().getDialectData( "java" )).list().length );
builder.addPackage( packageDescr );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/JavaActionBuilderTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -47,7 +47,7 @@
import org.drools.spi.PatternExtractor;
import org.drools.workflow.core.impl.WorkflowProcessImpl;
import org.drools.workflow.core.node.ActionNode;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.ParserContext;
public class JavaActionBuilderTest extends TestCase {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELActionBuilderTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -44,7 +44,7 @@
import org.drools.spi.ObjectType;
import org.drools.spi.PatternExtractor;
import org.drools.workflow.core.node.ActionNode;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.ParserContext;
public class MVELActionBuilderTest extends TestCase {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -38,7 +38,7 @@
import org.drools.rule.builder.RuleBuilder;
import org.drools.spi.ObjectType;
import org.drools.spi.PatternExtractor;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.ParserContext;
public class MVELConsequenceBuilderTest extends TestCase {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELDecisionBuilderTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -44,7 +44,7 @@
import org.drools.spi.ObjectType;
import org.drools.spi.PatternExtractor;
import org.drools.workflow.core.node.ActionNode;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.ParserContext;
public class MVELDecisionBuilderTest extends TestCase {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -6,7 +6,7 @@
import java.util.List;
import java.util.Map;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
import org.mvel.ParserContext;
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateMVEL.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateMVEL.drl 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateMVEL.drl 2008-02-05 18:38:51 UTC (rev 18319)
@@ -17,6 +17,7 @@
results.add($totalAmount);
end
+
rule "Accumulate with Bindings" salience 90
dialect "mvel"
when
@@ -64,5 +65,4 @@
result( total ) );
then
results.add($totalAmount);
-end
-
+end
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-core/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -6,7 +6,7 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-core/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-core</artifactId>
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ModifyInterceptor.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -4,7 +4,7 @@
import org.drools.base.mvel.DroolsMVELKnowledgeHelper;
import org.drools.spi.KnowledgeHelper;
-import org.mvel.ASTNode;
+import org.mvel.ast.ASTNode;
import org.mvel.ast.WithNode;
import org.mvel.integration.Interceptor;
import org.mvel.integration.VariableResolverFactory;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/MVELClassFieldExtractor.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -27,8 +27,8 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.spi.Extractor;
import org.drools.spi.FieldExtractor;
-import org.mvel.CompiledExpression;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.CompiledExpression;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.MVEL;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -237,7 +237,7 @@
new DroolsMVELLocalDeclarationVariable( (Declaration) this.localDeclarations.get( name ),
this ) );
return true;
- } else if ( this.globals.containsKey( name ) ) {
+ } else if ( this.workingMemory.getGlobal( name ) != null ) {
addResolver( name,
new DroolsMVELGlobalVariable( name,
(Class) this.globals.get( name ),
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -4,7 +4,7 @@
import org.drools.WorkingMemory;
import org.drools.spi.Action;
-import org.mvel.CompiledExpression;
+import org.mvel.compiler.CompiledExpression;
import org.mvel.MVEL;
import org.mvel.debug.DebugTools;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
import org.drools.WorkingMemory;
import org.drools.spi.Consequence;
import org.drools.spi.KnowledgeHelper;
-import org.mvel.CompiledExpression;
+import org.mvel.compiler.CompiledExpression;
import org.mvel.MVEL;
import org.mvel.debug.DebugTools;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -4,7 +4,7 @@
import org.drools.WorkingMemory;
import org.drools.spi.ReturnValueEvaluator;
-import org.mvel.CompiledExpression;
+import org.mvel.compiler.CompiledExpression;
import org.mvel.MVEL;
import org.mvel.debug.DebugTools;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -50,11 +50,12 @@
import org.drools.objenesis.ObjenesisStd;
import org.drools.process.core.Process;
import org.drools.rule.CompositePackageClassLoader;
+import org.drools.rule.DialectDatas;
import org.drools.rule.ImportDeclaration;
import org.drools.rule.InvalidPatternException;
import org.drools.rule.MapBackedClassLoader;
import org.drools.rule.Package;
-import org.drools.rule.PackageCompilationData;
+import org.drools.rule.JavaDialectData;
import org.drools.rule.Rule;
import org.drools.spi.ExecutorServiceFactory;
import org.drools.spi.FactHandleFactory;
@@ -91,9 +92,9 @@
protected transient MapBackedClassLoader classLoader;
- private transient Objenesis objenesis;
+ private transient Objenesis objenesis;
- /** The fact handle factory. */
+ /** The fact handle factory. */
protected FactHandleFactory factHandleFactory;
protected Map globals;
@@ -117,8 +118,8 @@
// lock for entire rulebase, used for dynamic updates
protected final ReentrantLock lock = new ReentrantLock();
- private int additionsSinceLock;
- private int removalsSinceLock;
+ private int additionsSinceLock;
+ private int removalsSinceLock;
/**
* Default constructor - for Externalizable. This should never be used by a user, as it
@@ -161,8 +162,8 @@
this.processes = new HashMap();
this.globals = new HashMap();
this.statefulSessions = new ObjectHashSet();
- this.objenesis = createObjenesis();
- }
+ this.objenesis = createObjenesis();
+ }
// ------------------------------------------------------------
// Instance methods
@@ -200,7 +201,7 @@
*
*/
public void doReadExternal(final ObjectInput stream) throws IOException,
- ClassNotFoundException {
+ ClassNotFoundException {
// PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
this.pkgs = (Map) stream.readObject();
@@ -215,10 +216,10 @@
}
this.packageClassLoader.addClassLoader( this.classLoader );
- this.objenesis = createObjenesis();
+ this.objenesis = createObjenesis();
- for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
- this.packageClassLoader.addClassLoader( ((Package) it.next()).getPackageCompilationData().getClassLoader() );
+ for ( final Iterator it = this.pkgs.values().iterator(); it.hasNext(); ) {
+ this.packageClassLoader.addClassLoader( ((Package) it.next()).getDialectDatas().getClassLoader() );
}
// Return the rules stored as a byte[]
@@ -243,15 +244,15 @@
this.statefulSessions = new ObjectHashSet();
}
- /**
- * Creates Objenesis instance for the RuleBase.
- * @return a standart Objenesis instanse with caching turned on.
- */
- protected Objenesis createObjenesis() {
- return new ObjenesisStd(true);
- }
+ /**
+ * Creates Objenesis instance for the RuleBase.
+ * @return a standart Objenesis instanse with caching turned on.
+ */
+ protected Objenesis createObjenesis() {
+ return new ObjenesisStd( true );
+ }
- /**
+ /**
* @return the id
*/
public String getId() {
@@ -272,7 +273,7 @@
public synchronized void disposeStatefulSession(final StatefulSession statefulSession) {
this.statefulSessions.remove( statefulSession );
- for( Iterator it = statefulSession.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
+ for ( Iterator it = statefulSession.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
this.removeEventListener( (RuleBaseEventListener) it.next() );
}
}
@@ -428,7 +429,7 @@
}
}
- this.packageClassLoader.addClassLoader( newPkg.getPackageCompilationData().getClassLoader() );
+ this.packageClassLoader.addClassLoader( newPkg.getDialectDatas().getClassLoader() );
this.eventSupport.fireAfterPackageAdded( newPkg );
@@ -451,29 +452,9 @@
final Map globals = pkg.getGlobals();
final Map<String, ImportDeclaration> imports = pkg.getImports();
- // First update the binary files
- // @todo: this probably has issues if you add classes in the incorrect order - functions, rules, invokers.
- final PackageCompilationData compilationData = pkg.getPackageCompilationData();
- final PackageCompilationData newCompilationData = newPkg.getPackageCompilationData();
- final String[] files = newCompilationData.list();
- for ( int i = 0, length = files.length; i < length; i++ ) {
- compilationData.write( files[i],
- newCompilationData.read( files[i] ) );
- }
-
// Merge imports
imports.putAll( newPkg.getImports() );
- // Add invokers
- compilationData.putAllInvokers( newCompilationData.getInvokers() );
-
- if ( compilationData.isDirty() ) {
- if ( this.reloadPackageCompilationData == null ) {
- this.reloadPackageCompilationData = new ReloadPackageCompilationData();
- }
- this.reloadPackageCompilationData.addPackageCompilationData( compilationData );
- }
-
// Add globals
for ( final Iterator it = newPkg.getGlobals().keySet().iterator(); it.hasNext(); ) {
final String identifier = (String) it.next();
@@ -503,6 +484,13 @@
pkg.addRuleFlow( flow );
}
}
+
+ pkg.getDialectDatas().merge( newPkg.getDialectDatas() );
+
+ if ( this.reloadPackageCompilationData == null ) {
+ this.reloadPackageCompilationData = new ReloadPackageCompilationData();
+ }
+ this.reloadPackageCompilationData.addDialectDatas( pkg.getDialectDatas() );
}
private synchronized void addRule(final Package pkg,
@@ -544,7 +532,7 @@
rules[i] );
}
- this.packageClassLoader.removeClassLoader( pkg.getPackageCompilationData().getClassLoader() );
+ this.packageClassLoader.removeClassLoader( pkg.getDialectDatas().getClassLoader() );
// getting the list of referenced globals
final Set referencedGlobals = new HashSet();
@@ -604,15 +592,13 @@
}
this.removalsSinceLock++;
- PackageCompilationData compilationData = null;
-
removeRule( pkg,
rule );
- compilationData = pkg.removeRule( rule );
+ pkg.removeRule( rule );
if ( this.reloadPackageCompilationData == null ) {
this.reloadPackageCompilationData = new ReloadPackageCompilationData();
}
- this.reloadPackageCompilationData.addPackageCompilationData( compilationData );
+ this.reloadPackageCompilationData.addDialectDatas( pkg.getDialectDatas() );
// only unlock if it had been acquired implicitely
if ( doUnlock ) {
@@ -643,15 +629,16 @@
this.eventSupport.fireBeforeFunctionRemoved( pkg,
functionName );
- final PackageCompilationData compilationData = pkg.removeFunction( functionName );
- if ( compilationData == null ) {
+ if ( !pkg.getFunctions().containsKey( functionName ) ) {
throw new IllegalArgumentException( "function name '" + packageName + "' does not exist in the Package '" + packageName + "'." );
}
+ pkg.removeFunction( functionName );
+
if ( this.reloadPackageCompilationData == null ) {
this.reloadPackageCompilationData = new ReloadPackageCompilationData();
}
- this.reloadPackageCompilationData.addPackageCompilationData( compilationData );
+ this.reloadPackageCompilationData.addDialectDatas( pkg.getDialectDatas() );
this.eventSupport.fireAfterFunctionRemoved( pkg,
functionName );
@@ -680,11 +667,11 @@
return process;
}
- public Objenesis getObjenesis() {
- return objenesis;
- }
+ public Objenesis getObjenesis() {
+ return objenesis;
+ }
- protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
+ protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
this.statefulSessions.add( statefulSession );
}
@@ -726,15 +713,15 @@
synchronized ( this.pkgs ) {
((InternalWorkingMemory) session).setRuleBase( this );
- ((InternalWorkingMemory) session).setId( ( nextWorkingMemoryCounter() ) );
+ ((InternalWorkingMemory) session).setId( (nextWorkingMemoryCounter()) );
- ExecutorService executor = ExecutorServiceFactory.createExecutorService( this.config.getExecutorService() );
+ ExecutorService executor = ExecutorServiceFactory.createExecutorService( this.config.getExecutorService() );
executor.setCommandExecutor( new CommandExecutor( session ) );
if ( keepReference ) {
addStatefulSession( session );
- for( Iterator it = session.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
+ for ( Iterator it = session.getRuleBaseUpdateListeners().iterator(); it.hasNext(); ) {
addEventListener( (RuleBaseEventListener) it.next() );
}
}
@@ -781,10 +768,10 @@
// since the event support is thread-safe, no need for locks... right?
return this.eventSupport.getEventListeners();
}
-
- public boolean isEvent( Class clazz ) {
- for( Package pkg : this.pkgs.values() ) {
- if( pkg.isEvent( clazz ) ) {
+
+ public boolean isEvent(Class clazz) {
+ for ( Package pkg : this.pkgs.values() ) {
+ if ( pkg.isEvent( clazz ) ) {
return true;
}
}
@@ -797,18 +784,18 @@
private static final long serialVersionUID = 1L;
private Set set;
- public void addPackageCompilationData(final PackageCompilationData packageCompilationData) {
+ public void addDialectDatas(final DialectDatas dialectDatas) {
if ( this.set == null ) {
this.set = new HashSet();
}
- this.set.add( packageCompilationData );
+ this.set.add( dialectDatas );
}
public void execute(final InternalRuleBase ruleBase) {
for ( final Iterator it = this.set.iterator(); it.hasNext(); ) {
- final PackageCompilationData packageCompilationData = (PackageCompilationData) it.next();
- packageCompilationData.reload();
+ final DialectDatas dialectDatas = (DialectDatas) it.next();
+ dialectDatas.reloadDirty();
}
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -109,7 +109,6 @@
/** The actual memory for the <code>JoinNode</code>s. */
protected final NodeMemories nodeMemories;
-
protected final ObjectStore objectStore;
protected Map queryResults = Collections.EMPTY_MAP;
@@ -126,10 +125,10 @@
protected AgendaEventSupport agendaEventSupport = new AgendaEventSupport();
- protected RuleFlowEventSupport workflowEventSupport = new RuleFlowEventSupport();
-
- protected List __ruleBaseEventListeners = new LinkedList();
+ protected RuleFlowEventSupport workflowEventSupport = new RuleFlowEventSupport();
+ protected List __ruleBaseEventListeners = new LinkedList();
+
/** The <code>RuleBase</code> with which this memory is associated. */
protected transient InternalRuleBase ruleBase;
@@ -164,7 +163,7 @@
private int processCounter;
private WorkItemManager workItemManager;
-
+
private Map<String, ProcessInstanceFactory> processInstanceFactories = new HashMap();
private TimeMachine timeMachine = new TimeMachine();
@@ -192,7 +191,7 @@
this.globalResolver = new MapGlobalResolver();
this.maintainTms = this.ruleBase.getConfiguration().isMaintainTms();
this.sequential = this.ruleBase.getConfiguration().isSequential();
-
+
this.nodeMemories = new ConcurrentNodeMemories( this.ruleBase );
if ( this.maintainTms ) {
@@ -200,11 +199,12 @@
} else {
this.tms = null;
}
-
+
final RuleBaseConfiguration conf = this.ruleBase.getConfiguration();
-
- this.objectStore = new SingleThreadedObjectStore(conf, this.lock);
+ this.objectStore = new SingleThreadedObjectStore( conf,
+ this.lock );
+
// Only takes effect if are using idententity behaviour for assert
if ( conf.getLogicalOverride() == LogicalOverride.DISCARD ) {
this.discardOnLogicalOverride = true;
@@ -213,8 +213,8 @@
}
this.workItemManager = new WorkItemManager( this );
- this.processInstanceFactories.put(
- RuleFlowProcess.RULEFLOW_TYPE, new RuleFlowProcessInstanceFactory());
+ this.processInstanceFactories.put( RuleFlowProcess.RULEFLOW_TYPE,
+ new RuleFlowProcessInstanceFactory() );
this.typeConfMap = new HashMap<EntryPoint, Map<Object, ObjectTypeConf>>();
}
@@ -519,7 +519,7 @@
public Object getObject(final FactHandle handle) {
return this.objectStore.getObjectForHandle( (InternalFactHandle) handle );
}
-
+
public ObjectStore getObjectStore() {
return this.objectStore;
}
@@ -530,7 +530,7 @@
public FactHandle getFactHandle(final Object object) {
return this.objectStore.getHandleForObject( object );
}
-
+
/**
* @see WorkingMemory
*/
@@ -543,7 +543,7 @@
* iteration may give unexpected results
*/
public Iterator iterateObjects() {
- return this.objectStore.iterateObjects( );
+ return this.objectStore.iterateObjects();
}
/**
@@ -741,7 +741,8 @@
typeConf.isEvent(),
duration,
this );
- this.objectStore.addHandle( handle, object );
+ this.objectStore.addHandle( handle,
+ object );
insert( entryPoint,
handle,
object,
@@ -753,7 +754,7 @@
try {
this.lock.lock();
// check if the object already exists in the WM
- handle = (InternalFactHandle) this.objectStore.getHandleForObject(object);
+ handle = (InternalFactHandle) this.objectStore.getHandleForObject( object );
if ( this.maintainTms ) {
@@ -799,7 +800,8 @@
typeConf.isEvent(),
duration,
this );
- this.objectStore.addHandle( handle, object );
+ this.objectStore.addHandle( handle,
+ object );
key = new EqualityKey( handle );
handle.setEqualityKey( key );
@@ -834,7 +836,8 @@
// before replacing the object
// and then re-add the handle. Otherwise we may
// end up with a leak.
- this.objectStore.updateHandle( handle, object );
+ this.objectStore.updateHandle( handle,
+ object );
} else {
Object oldObject = handle.getObject();
if ( oldObject instanceof ShadowProxy ) {
@@ -854,7 +857,8 @@
this );
handle.setEqualityKey( key );
key.addFactHandle( handle );
- this.objectStore.addHandle( handle, object );
+ this.objectStore.addHandle( handle,
+ object );
}
@@ -863,7 +867,8 @@
typeConf.isEvent(),
duration,
this );
- this.objectStore.addHandle( handle, object );
+ this.objectStore.addHandle( handle,
+ object );
key.addFactHandle( handle );
handle.setEqualityKey( key );
@@ -894,7 +899,8 @@
typeConf.isEvent(),
duration,
this );
- this.objectStore.addHandle( handle, object );
+ this.objectStore.addHandle( handle,
+ object );
}
@@ -1105,23 +1111,23 @@
}
}
-// private void addHandleToMaps(InternalFactHandle handle) {
-// this.assertMap.put( handle,
-// handle,
-// false );
-// if ( this.ruleBase.getConfiguration().getAssertBehaviour() == AssertBehaviour.EQUALITY ) {
-// this.identityMap.put( handle,
-// handle,
-// false );
-// }
-// }
-//
-// private void removeHandleFromMaps(final InternalFactHandle handle) {
-// this.assertMap.remove( handle );
-// if ( this.ruleBase.getConfiguration().getAssertBehaviour() == AssertBehaviour.EQUALITY ) {
-// this.identityMap.remove( handle );
-// }
-// }
+ // private void addHandleToMaps(InternalFactHandle handle) {
+ // this.assertMap.put( handle,
+ // handle,
+ // false );
+ // if ( this.ruleBase.getConfiguration().getAssertBehaviour() == AssertBehaviour.EQUALITY ) {
+ // this.identityMap.put( handle,
+ // handle,
+ // false );
+ // }
+ // }
+ //
+ // private void removeHandleFromMaps(final InternalFactHandle handle) {
+ // this.assertMap.remove( handle );
+ // if ( this.ruleBase.getConfiguration().getAssertBehaviour() == AssertBehaviour.EQUALITY ) {
+ // this.identityMap.remove( handle );
+ // }
+ // }
public void modifyRetract(final FactHandle factHandle) {
modifyRetract( factHandle,
@@ -1349,7 +1355,8 @@
// set anyway, so that it updates the hashCodes
handle.setObject( object );
- this.objectStore.addHandle( handle, object );
+ this.objectStore.addHandle( handle,
+ object );
}
if ( this.maintainTms ) {
@@ -1504,16 +1511,18 @@
}
public ProcessInstance startProcess(final String processId) {
- return startProcess(processId, null);
+ return startProcess( processId,
+ null );
}
-
- public ProcessInstance startProcess(String processId, Map<String, Object> parameters) {
+
+ public ProcessInstance startProcess(String processId,
+ Map<String, Object> parameters) {
final Process process = ((InternalRuleBase) getRuleBase()).getProcess( processId );
if ( process == null ) {
throw new IllegalArgumentException( "Unknown process ID: " + processId );
}
- ProcessInstanceFactory factory = processInstanceFactories.get(process.getType());
- if (factory == null) {
+ ProcessInstanceFactory factory = processInstanceFactories.get( process.getType() );
+ if ( factory == null ) {
throw new IllegalArgumentException( "Could not create process instance for type: " + process.getType() );
}
ProcessInstance processInstance = factory.createProcessInstance();
@@ -1522,9 +1531,10 @@
processInstance.setId( ++processCounter );
processInstances.put( new Long( processInstance.getId() ),
processInstance );
- if (parameters != null) {
- for (Map.Entry<String, Object> entry: parameters.entrySet()) {
- processInstance.setVariable(entry.getKey(), entry.getValue());
+ if ( parameters != null ) {
+ for ( Map.Entry<String, Object> entry : parameters.entrySet() ) {
+ processInstance.setVariable( entry.getKey(),
+ entry.getValue() );
}
}
getRuleFlowEventSupport().fireBeforeRuleFlowProcessStarted( processInstance,
@@ -1547,9 +1557,11 @@
public void removeProcessInstance(ProcessInstance processInstance) {
processInstances.remove( processInstance );
}
-
- public void registerProcessInstanceFactory(String type, ProcessInstanceFactory processInstanceFactory) {
- processInstanceFactories.put(type, processInstanceFactory);
+
+ public void registerProcessInstanceFactory(String type,
+ ProcessInstanceFactory processInstanceFactory) {
+ processInstanceFactories.put( type,
+ processInstanceFactory );
}
public WorkItemManager getWorkItemManager() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -10,6 +10,7 @@
import java.util.HashMap;
import org.drools.base.ClassFieldExtractorCache;
+import org.drools.rule.DialectDatas;
import org.drools.rule.Package;
public class DroolsObjectInputStream extends ObjectInputStream {
@@ -17,6 +18,7 @@
private InternalRuleBase ruleBase;
private InternalWorkingMemory workingMemory;
private Package pkg;
+ private DialectDatas dialectDatas;
private ClassFieldExtractorCache extractorFactory;
/** table mapping primitive type names to corresponding class objects */
@@ -107,8 +109,16 @@
public void setPackage(Package pkg) {
this.pkg = pkg;
+ }
+
+ public DialectDatas getDialectDatas() {
+ return this.dialectDatas;
}
+ public void setDialectDatas(DialectDatas dialectDatas) {
+ this.dialectDatas = dialectDatas;
+ }
+
public ClassFieldExtractorCache getExtractorFactory() {
return extractorFactory;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,10 +1,12 @@
package org.drools.rule;
+import java.io.InputStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-public class CompositePackageClassLoader extends ClassLoader {
+public class CompositePackageClassLoader extends ClassLoader implements DroolsClassLoader {
private final List classLoaders = new ArrayList();
@@ -25,7 +27,7 @@
}
}
- private Class compositeFastFindClass(final String name) {
+ public Class fastFindClass(final String name) {
for ( final Iterator it = this.classLoaders.iterator(); it.hasNext(); ) {
final DroolsClassLoader classLoader = (DroolsClassLoader) it.next();
final Class clazz = classLoader.fastFindClass( name );
@@ -48,7 +50,7 @@
Class clazz = findLoadedClass( name );
if ( clazz == null ) {
- clazz = compositeFastFindClass( name );
+ clazz = fastFindClass( name );
if ( clazz == null ) {
@@ -67,9 +69,22 @@
return clazz;
}
+
+ public InputStream getResourceAsStream(final String name) {
+ InputStream stream = super.getResourceAsStream( name );
+
+ for ( final Iterator it = this.classLoaders.iterator(); it.hasNext(); ) {
+ final DroolsClassLoader classLoader = (DroolsClassLoader) it.next();
+ stream = classLoader.getResourceAsStream( name );
+ if ( stream != null ) {
+ return stream;
+ }
+ }
+ return stream;
+ }
protected Class findClass(final String name) throws ClassNotFoundException {
- final Class clazz = compositeFastFindClass( name );
+ final Class clazz = fastFindClass( name );
if ( clazz == null ) {
throw new ClassNotFoundException( name );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsClassLoader.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DroolsClassLoader.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,5 +1,10 @@
package org.drools.rule;
+import java.io.InputStream;
+
public interface DroolsClassLoader {
+
+ InputStream getResourceAsStream(final String name);
+
public Class fastFindClass(final String name);
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java (from rev 18199, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -0,0 +1,473 @@
+package org.drools.rule;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.ProtectionDomain;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.drools.CheckedDroolsException;
+import org.drools.RuntimeDroolsException;
+import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.spi.Accumulator;
+import org.drools.spi.Consequence;
+import org.drools.spi.EvalExpression;
+import org.drools.spi.PredicateExpression;
+import org.drools.spi.ReturnValueEvaluator;
+import org.drools.spi.ReturnValueExpression;
+import org.drools.util.StringUtils;
+import org.drools.workflow.core.node.ActionNode;
+import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
+
+public class JavaDialectData
+ implements
+ DialectData,
+ Externalizable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+
+ private static final ProtectionDomain PROTECTION_DOMAIN;
+
+ private Map invokerLookups;
+
+ private Object AST;
+
+ private Map store;
+
+ private DialectDatas datas;
+
+ private transient PackageClassLoader classLoader;
+
+ private boolean dirty;
+
+ static {
+ PROTECTION_DOMAIN = (ProtectionDomain) AccessController.doPrivileged( new PrivilegedAction() {
+ public Object run() {
+ return JavaDialectData.class.getProtectionDomain();
+ }
+ } );
+ }
+
+ /**
+ * Default constructor - for Externalizable. This should never be used by a user, as it
+ * will result in an invalid state for the instance.
+ */
+ public JavaDialectData() {
+
+ }
+
+ public JavaDialectData(final DialectDatas datas) {
+ this.datas = datas;
+ this.classLoader = new PackageClassLoader( this.datas.getParentClassLoader() );
+ this.datas.addClassLoader( this.classLoader );
+ this.invokerLookups = new HashMap();
+ this.store = new HashMap();
+ this.dirty = false;
+ }
+
+ public boolean isDirty() {
+ return this.dirty;
+ }
+
+ /**
+ * Handles the write serialization of the PackageCompilationData. Patterns in Rules may reference generated data which cannot be serialized by
+ * default methods. The PackageCompilationData holds a reference to the generated bytecode. The generated bytecode must be restored before any Rules.
+ *
+ */
+ public void writeExternal(final ObjectOutput stream) throws IOException {
+ stream.writeObject( this.store );
+ stream.writeObject( this.AST );
+
+ // Rules must be restored by an ObjectInputStream that can resolve using a given ClassLoader to handle seaprately by storing as
+ // a byte[]
+ final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ final ObjectOutput out = new ObjectOutputStream( bos );
+ out.writeObject( this.invokerLookups );
+ stream.writeObject( bos.toByteArray() );
+ }
+
+ /**
+ * Handles the read serialization of the PackageCompilationData. Patterns in Rules may reference generated data which cannot be serialized by
+ * default methods. The PackageCompilationData holds a reference to the generated bytecode; which must be restored before any Rules.
+ * A custom ObjectInputStream, able to resolve classes against the bytecode, is used to restore the Rules.
+ *
+ */
+ public void readExternal(final ObjectInput stream) throws IOException,
+ ClassNotFoundException {
+ DroolsObjectInputStream droolsStream = (DroolsObjectInputStream) stream;
+ this.datas = droolsStream.getDialectDatas();
+ this.classLoader = new PackageClassLoader( this.datas.getParentClassLoader() );
+ this.datas.addClassLoader( this.classLoader );
+
+ this.store = (Map) stream.readObject();
+ this.AST = stream.readObject();
+
+ // Return the rules stored as a byte[]
+ final byte[] bytes = (byte[]) stream.readObject();
+
+ // Use a custom ObjectInputStream that can resolve against a given classLoader
+ final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
+ this.classLoader );
+ this.invokerLookups = (Map) streamWithLoader.readObject();
+ }
+
+ public ClassLoader getClassLoader() {
+ return this.classLoader;
+ }
+
+ public void removeRule(Package pkg,
+ Rule rule) {
+ final String consequenceName = rule.getConsequence().getClass().getName();
+
+ // check for compiled code and remove if present.
+ if ( remove( consequenceName ) ) {
+ removeClasses( rule.getLhs() );
+
+ // Now remove the rule class - the name is a subset of the consequence name
+ remove( consequenceName.substring( 0,
+ consequenceName.indexOf( "ConsequenceInvoker" ) ) );
+ }
+ }
+
+ public void removeFunction(Package pkg,
+ Function function) {
+ remove( pkg.getName() + "." + StringUtils.ucFirst( function.getName() ) );
+ }
+
+ public void merge(DialectData newData) {
+ JavaDialectData newJavaData = (JavaDialectData) newData;
+
+ // First update the binary files
+ // @todo: this probably has issues if you add classes in the incorrect order - functions, rules, invokers.
+ final String[] files = newJavaData.list();
+ for ( int i = 0, length = files.length; i < length; i++ ) {
+ write( files[i],
+ newJavaData.read( files[i] ) );
+ }
+
+ // Add invokers
+ putAllInvokers( newJavaData.getInvokers() );
+ }
+
+ private void removeClasses(final ConditionalElement ce) {
+ if ( ce instanceof GroupElement ) {
+ final GroupElement group = (GroupElement) ce;
+ for ( final Iterator it = group.getChildren().iterator(); it.hasNext(); ) {
+ final Object object = it.next();
+ if ( object instanceof ConditionalElement ) {
+ removeClasses( (ConditionalElement) object );
+ } else if ( object instanceof Pattern ) {
+ removeClasses( (Pattern) object );
+ }
+ }
+ } else if ( ce instanceof EvalCondition ) {
+ remove( ((EvalCondition) ce).getEvalExpression().getClass().getName() );
+ }
+ }
+
+ private void removeClasses(final Pattern pattern) {
+ for ( final Iterator it = pattern.getConstraints().iterator(); it.hasNext(); ) {
+ final Object object = it.next();
+ if ( object instanceof PredicateConstraint ) {
+ remove( ((PredicateConstraint) object).getPredicateExpression().getClass().getName() );
+ } else if ( object instanceof ReturnValueConstraint ) {
+ remove( ((ReturnValueConstraint) object).getExpression().getClass().getName() );
+ }
+ }
+ }
+
+ public byte[] read(final String resourceName) {
+ byte[] bytes = null;
+
+ if ( this.store != null ) {
+ bytes = (byte[]) this.store.get( resourceName );
+ }
+ return bytes;
+ }
+
+ public void write(final String resourceName,
+ final byte[] clazzData) throws RuntimeDroolsException {
+ if ( this.store.put( resourceName,
+ clazzData ) != null ) {
+ // we are updating an existing class so reload();
+ //reload();
+ this.dirty = true;
+ } else {
+ try {
+ wire( convertResourceToClassName( resourceName ) );
+ } catch ( final Exception e ) {
+ e.printStackTrace();
+ throw new RuntimeDroolsException( e );
+ }
+ }
+
+ }
+
+ public boolean remove(final String resourceName) throws RuntimeDroolsException {
+ this.invokerLookups.remove( resourceName );
+ if ( this.store.remove( convertClassToResourcePath( resourceName ) ) != null ) {
+ // we need to make sure the class is removed from the classLoader
+ // reload();
+ this.dirty = true;
+ return true;
+ }
+ return false;
+ }
+
+ public String[] list() {
+ if ( this.store == null ) {
+ return new String[0];
+ }
+ final List names = new ArrayList();
+
+ for ( final Iterator it = this.store.keySet().iterator(); it.hasNext(); ) {
+ final String name = (String) it.next();
+ names.add( name );
+ }
+
+ return (String[]) names.toArray( new String[this.store.size()] );
+ }
+
+ /**
+ * This class drops the classLoader and reloads it. During this process it must re-wire all the invokeables.
+ * @throws CheckedDroolsException
+ */
+ public void reload() throws RuntimeDroolsException {
+ // drops the classLoader and adds a new one
+ this.classLoader = new PackageClassLoader( this.datas.getParentClassLoader() );
+ this.datas.addClassLoader( this.classLoader );
+
+ // Wire up invokers
+ try {
+ for ( final Iterator it = this.invokerLookups.entrySet().iterator(); it.hasNext(); ) {
+ Entry entry = (Entry) it.next();
+ wire( (String) entry.getKey(),
+ entry.getValue() );
+ }
+ } catch ( final ClassNotFoundException e ) {
+ throw new RuntimeDroolsException( e );
+ } catch ( final InstantiationError e ) {
+ throw new RuntimeDroolsException( e );
+ } catch ( final IllegalAccessException e ) {
+ throw new RuntimeDroolsException( e );
+ } catch ( final InstantiationException e ) {
+ throw new RuntimeDroolsException( e );
+ } finally {
+ this.dirty = false;
+ }
+ }
+
+ public void clear() {
+ this.store.clear();
+ this.invokerLookups.clear();
+ this.AST = null;
+ reload();
+ }
+
+ public void wire(final String className) throws ClassNotFoundException,
+ InstantiationException,
+ IllegalAccessException {
+ final Object invoker = this.invokerLookups.get( className );
+ wire( className,
+ invoker );
+ }
+
+ public void wire(final String className,
+ final Object invoker) throws ClassNotFoundException,
+ InstantiationException,
+ IllegalAccessException {
+ final Class clazz = this.classLoader.findClass( className );
+ if ( invoker instanceof ReturnValueRestriction ) {
+ ((ReturnValueRestriction) invoker).setReturnValueExpression( (ReturnValueExpression) clazz.newInstance() );
+ } else if ( invoker instanceof PredicateConstraint ) {
+ ((PredicateConstraint) invoker).setPredicateExpression( (PredicateExpression) clazz.newInstance() );
+ } else if ( invoker instanceof EvalCondition ) {
+ ((EvalCondition) invoker).setEvalExpression( (EvalExpression) clazz.newInstance() );
+ } else if ( invoker instanceof Accumulate ) {
+ ((Accumulate) invoker).setAccumulator( (Accumulator) clazz.newInstance() );
+ } else if ( invoker instanceof Rule ) {
+ ((Rule) invoker).setConsequence( (Consequence) clazz.newInstance() );
+ } else if ( invoker instanceof JavaAccumulatorFunctionExecutor ) {
+ ((JavaAccumulatorFunctionExecutor) invoker).setExpression( (ReturnValueExpression) clazz.newInstance() );
+ } else if ( invoker instanceof ActionNode ) {
+ ((ActionNode) invoker).setAction( clazz.newInstance() );
+ } else if ( invoker instanceof ReturnValueConstraintEvaluator ) {
+ ((ReturnValueConstraintEvaluator) invoker).setEvaluator( (ReturnValueEvaluator) clazz.newInstance() );
+ }
+ }
+
+ public String toString() {
+ return this.getClass().getName() + this.store.toString();
+ }
+
+ public void putInvoker(final String className,
+ final Object invoker) {
+ this.invokerLookups.put( className,
+ invoker );
+ }
+
+ public void putAllInvokers(final Map invokers) {
+ this.invokerLookups.putAll( invokers );
+
+ }
+
+ public Map getInvokers() {
+ return this.invokerLookups;
+ }
+
+ public void removeInvoker(final String className) {
+ this.invokerLookups.remove( className );
+ }
+
+ public Object getAST() {
+ return this.AST;
+ }
+
+ public void setAST(final Object ast) {
+ this.AST = ast;
+ }
+
+ /**
+ * Lifted and adapted from Jakarta commons-jci
+ *
+ * @author mproctor
+ *
+ */
+ public class PackageClassLoader extends ClassLoader
+ implements
+ DroolsClassLoader {
+
+ public PackageClassLoader(final ClassLoader parentClassLoader) {
+ super( parentClassLoader );
+ }
+
+ public Class fastFindClass(final String name) {
+ final Class clazz = findLoadedClass( name );
+
+ if ( clazz == null ) {
+ final byte[] clazzBytes = read( convertClassToResourcePath( name ) );
+ if ( clazzBytes != null ) {
+ return defineClass( name,
+ clazzBytes,
+ 0,
+ clazzBytes.length,
+ PROTECTION_DOMAIN );
+ }
+ }
+
+ return clazz;
+ }
+
+ /**
+ * Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass
+ * over method calls to parent.loadClass(name, false); and c = findBootstrapClass0(name); which the default implementation
+ * would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a
+ * higher priority than normal.
+ *
+ */
+ protected synchronized Class loadClass(final String name,
+ final boolean resolve) throws ClassNotFoundException {
+ Class clazz = fastFindClass( name );
+
+ if ( clazz == null ) {
+ final ClassLoader parent = getParent();
+ if ( parent != null ) {
+ clazz = parent.loadClass( name );
+ } else {
+ throw new ClassNotFoundException( name );
+ }
+ }
+
+ if ( resolve ) {
+ resolveClass( clazz );
+ }
+
+ return clazz;
+ }
+
+ protected Class findClass(final String name) throws ClassNotFoundException {
+ final Class clazz = fastFindClass( name );
+ if ( clazz == null ) {
+ throw new ClassNotFoundException( name );
+ }
+ return clazz;
+ }
+
+
+ public InputStream getResourceAsStream(final String name) {
+ final byte[] bytes = (byte[]) JavaDialectData.this.store.get( name );
+ if ( bytes != null ) {
+ return new ByteArrayInputStream( bytes );
+ } else {
+ InputStream input = this.getParent().getResourceAsStream( name );
+ if ( input == null ) {
+ input = super.getResourceAsStream( name );
+ }
+ return input;
+ }
+ }
+ }
+
+ /**
+ * Please do not use - internal
+ * org/my/Class.xxx -> org.my.Class
+ */
+ public static String convertResourceToClassName(final String pResourceName) {
+ return stripExtension( pResourceName ).replace( '/',
+ '.' );
+ }
+
+ /**
+ * Please do not use - internal
+ * org.my.Class -> org/my/Class.class
+ */
+ public static String convertClassToResourcePath(final String pName) {
+ return pName.replace( '.',
+ '/' ) + ".class";
+ }
+
+ /**
+ * Please do not use - internal
+ * org/my/Class.xxx -> org/my/Class
+ */
+ public static String stripExtension(final String pResourceName) {
+ final int i = pResourceName.lastIndexOf( '.' );
+ final String withoutExtension = pResourceName.substring( 0,
+ i );
+ return withoutExtension;
+ }
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LineMappings.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LineMappings.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LineMappings.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,6 +1,8 @@
package org.drools.rule;
-public class LineMappings {
+import java.io.Serializable;
+
+public class LineMappings implements Serializable {
private String className;
private int startLine;
private int offset;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -71,7 +71,7 @@
private Map<String, ImportDeclaration> imports;
- private List functions;
+ private Map<String, Function> functions;
private Set staticImports;
@@ -81,7 +81,8 @@
private Map ruleFlows;
- private PackageCompilationData packageCompilationData;
+ // private JavaDialectData packageCompilationData;
+ private DialectDatas dialectDatas;
/** This is to indicate the the package has no errors during the compilation/building phase */
private boolean valid = true;
@@ -127,7 +128,7 @@
this.ruleFlows = Collections.EMPTY_MAP;
this.globals = Collections.EMPTY_MAP;
this.factTemplates = Collections.EMPTY_MAP;
- this.functions = Collections.EMPTY_LIST;
+ this.functions = Collections.EMPTY_MAP;
// This classloader test should only be here for unit testing, too much legacy api to want to change by hand at the moment
if ( parentClassLoader == null ) {
@@ -136,7 +137,8 @@
parentClassLoader = getClass().getClassLoader();
}
}
- this.packageCompilationData = new PackageCompilationData( parentClassLoader );
+ //this.packageCompilationData = new JavaDialectData( parentClassLoader );
+ this.dialectDatas = new DialectDatas( parentClassLoader );
}
/**
@@ -145,7 +147,7 @@
*
*/
public void writeExternal(final ObjectOutput stream) throws IOException {
- stream.writeObject( this.packageCompilationData );
+ stream.writeObject( this.dialectDatas );
stream.writeObject( this.name );
stream.writeObject( this.imports );
stream.writeObject( this.staticImports );
@@ -172,11 +174,11 @@
public void readExternal(final ObjectInput stream) throws IOException,
ClassNotFoundException {
// PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
- this.packageCompilationData = (PackageCompilationData) stream.readObject();
+ this.dialectDatas = (DialectDatas) stream.readObject();
this.name = (String) stream.readObject();
this.imports = (Map<String, ImportDeclaration>) stream.readObject();
this.staticImports = (Set) stream.readObject();
- this.functions = (List) stream.readObject();
+ this.functions = (Map) stream.readObject();
this.factTemplates = (Map) stream.readObject();
this.ruleFlows = (Map) stream.readObject();
this.globals = (Map) stream.readObject();
@@ -187,7 +189,7 @@
// Use a custom ObjectInputStream that can resolve against a given classLoader
final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
- this.packageCompilationData.getClassLoader() );
+ this.dialectDatas.getClassLoader() );
this.rules = (Map) streamWithLoader.readObject();
}
@@ -205,8 +207,13 @@
return this.name;
}
+ public DialectDatas getDialectDatas() {
+ return this.dialectDatas;
+ }
+
public void addImport(final ImportDeclaration importDecl) {
- this.imports.put( importDecl.getTarget(), importDecl );
+ this.imports.put( importDecl.getTarget(),
+ importDecl );
}
public void removeImport(final String importEntry) {
@@ -224,15 +231,16 @@
this.staticImports.add( functionImport );
}
- public void addFunction(final String functionName) {
- if ( this.functions == Collections.EMPTY_LIST ) {
- this.functions = new ArrayList( 1 );
+ public void addFunction(final Function function) {
+ if ( this.functions == Collections.EMPTY_MAP ) {
+ this.functions = new HashMap<String, Function>( 1 );
}
- this.functions.add( functionName );
+ this.functions.put( function.getName(),
+ function );
}
- public List getFunctions() {
+ public Map<String, Function> getFunctions() {
return this.functions;
}
@@ -261,12 +269,12 @@
return this.globals;
}
- public PackageCompilationData removeFunction(final String functionName) {
- if ( !this.functions.remove( functionName ) ) {
- return null;
+ public void removeFunction(final String functionName) {
+ Function function = this.functions.remove( functionName );
+ if ( function != null ) {
+ this.dialectDatas.removeFunction( this,
+ function );
}
- this.packageCompilationData.remove( this.name + "." + StringUtils.ucFirst( functionName ) );
- return this.packageCompilationData;
}
public FactTemplate getFactTemplate(final String name) {
@@ -330,48 +338,52 @@
this.ruleFlows.remove( id );
}
- public PackageCompilationData removeRule(final Rule rule) {
+ public void removeRule(final Rule rule) {
this.rules.remove( rule.getName() );
- final String consequenceName = rule.getConsequence().getClass().getName();
-
- // check for compiled code and remove if present.
- if ( this.packageCompilationData.remove( consequenceName ) ) {
- removeClasses( rule.getLhs() );
-
- // Now remove the rule class - the name is a subset of the consequence name
- this.packageCompilationData.remove( consequenceName.substring( 0,
- consequenceName.indexOf( "ConsequenceInvoker" ) ) );
- }
- return this.packageCompilationData;
+ this.dialectDatas.removeRule( this,
+ rule );
+ // final String consequenceName = rule.getConsequence().getClass().getName();
+ //
+ // Object object = this.dialectData.getDialectData( rule.getDialect() );
+ //
+ // // check for compiled code and remove if present.
+ // if ( this.packageCompilationData.remove( consequenceName ) ) {
+ // removeClasses( rule.getLhs() );
+ //
+ // // Now remove the rule class - the name is a subset of the consequence name
+ // this.packageCompilationData.remove( consequenceName.substring( 0,
+ // consequenceName.indexOf( "ConsequenceInvoker" ) ) );
+ // }
+ // return this.packageCompilationData;
}
- private void removeClasses(final ConditionalElement ce) {
- if ( ce instanceof GroupElement ) {
- final GroupElement group = (GroupElement) ce;
- for ( final Iterator it = group.getChildren().iterator(); it.hasNext(); ) {
- final Object object = it.next();
- if ( object instanceof ConditionalElement ) {
- removeClasses( (ConditionalElement) object );
- } else if ( object instanceof Pattern ) {
- removeClasses( (Pattern) object );
- }
- }
- } else if ( ce instanceof EvalCondition ) {
- this.packageCompilationData.remove( ((EvalCondition) ce).getEvalExpression().getClass().getName() );
- }
- }
+ // private void removeClasses(final ConditionalElement ce) {
+ // if ( ce instanceof GroupElement ) {
+ // final GroupElement group = (GroupElement) ce;
+ // for ( final Iterator it = group.getChildren().iterator(); it.hasNext(); ) {
+ // final Object object = it.next();
+ // if ( object instanceof ConditionalElement ) {
+ // removeClasses( (ConditionalElement) object );
+ // } else if ( object instanceof Pattern ) {
+ // removeClasses( (Pattern) object );
+ // }
+ // }
+ // } else if ( ce instanceof EvalCondition ) {
+ // this.packageCompilationData.remove( ((EvalCondition) ce).getEvalExpression().getClass().getName() );
+ // }
+ // }
+ //
+ // private void removeClasses(final Pattern pattern) {
+ // for ( final Iterator it = pattern.getConstraints().iterator(); it.hasNext(); ) {
+ // final Object object = it.next();
+ // if ( object instanceof PredicateConstraint ) {
+ // this.packageCompilationData.remove( ((PredicateConstraint) object).getPredicateExpression().getClass().getName() );
+ // } else if ( object instanceof ReturnValueConstraint ) {
+ // this.packageCompilationData.remove( ((ReturnValueConstraint) object).getExpression().getClass().getName() );
+ // }
+ // }
+ // }
- private void removeClasses(final Pattern pattern) {
- for ( final Iterator it = pattern.getConstraints().iterator(); it.hasNext(); ) {
- final Object object = it.next();
- if ( object instanceof PredicateConstraint ) {
- this.packageCompilationData.remove( ((PredicateConstraint) object).getPredicateExpression().getClass().getName() );
- } else if ( object instanceof ReturnValueConstraint ) {
- this.packageCompilationData.remove( ((ReturnValueConstraint) object).getExpression().getClass().getName() );
- }
- }
- }
-
/**
* Retrieve a <code>Rule</code> by name.
*
@@ -395,9 +407,9 @@
return (Rule[]) this.rules.values().toArray( new Rule[this.rules.size()] );
}
- public PackageCompilationData getPackageCompilationData() {
- return this.packageCompilationData;
- }
+ // public JavaDialectData getPackageCompilationData() {
+ // return this.packageCompilationData;
+ // }
public String toString() {
return "[Package name=" + this.name + "]";
@@ -447,30 +459,30 @@
public int hashCode() {
return this.name.hashCode();
}
-
+
/**
* Returns true if clazz is imported as an Event class in this package
* @param clazz
* @return
*/
- public boolean isEvent( Class clazz ) {
- if( clazz == null ) {
+ public boolean isEvent(Class clazz) {
+ if ( clazz == null ) {
return false;
}
// check if clazz is resolved by any of the import declarations
- for( ImportDeclaration imp : this.imports.values() ) {
- if( imp.isEvent() && imp.matches( clazz ) ) {
+ for ( ImportDeclaration imp : this.imports.values() ) {
+ if ( imp.isEvent() && imp.matches( clazz ) ) {
return true;
}
}
// if it is not resolved, try superclass
- if( this.isEvent( clazz.getSuperclass() ) ) {
+ if ( this.isEvent( clazz.getSuperclass() ) ) {
return true;
}
-
+
// if it is no resolved, try interfaces
- for( Class interf : clazz.getInterfaces() ) {
- if( this.isEvent( interf ) ) {
+ for ( Class interf : clazz.getInterfaces() ) {
+ if ( this.isEvent( interf ) ) {
return true;
}
}
@@ -479,7 +491,7 @@
public void clear() {
this.rules.clear();
- this.packageCompilationData.clear();
+ this.dialectDatas.clear();
this.ruleFlows.clear();
this.imports.clear();
this.functions.clear();
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,429 +0,0 @@
-package org.drools.rule;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.ObjectOutputStream;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.security.ProtectionDomain;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.drools.CheckedDroolsException;
-import org.drools.RuntimeDroolsException;
-import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
-import org.drools.common.DroolsObjectInputStream;
-import org.drools.spi.Accumulator;
-import org.drools.spi.Consequence;
-import org.drools.spi.EvalExpression;
-import org.drools.spi.PredicateExpression;
-import org.drools.spi.ReturnValueEvaluator;
-import org.drools.spi.ReturnValueExpression;
-import org.drools.workflow.core.node.ActionNode;
-import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
-
-public class PackageCompilationData
- implements
- Externalizable {
-
- /**
- *
- */
- private static final long serialVersionUID = 400L;
-
- private static final ProtectionDomain PROTECTION_DOMAIN;
-
- private Map invokerLookups;
-
- private Object AST;
-
- private Map store;
-
- private Map lineMappings;
-
- private transient PackageClassLoader classLoader;
-
- private transient ClassLoader parentClassLoader;
-
- private boolean dirty;
-
- static {
- PROTECTION_DOMAIN = (ProtectionDomain) AccessController.doPrivileged( new PrivilegedAction() {
- public Object run() {
- return PackageCompilationData.class.getProtectionDomain();
- }
- } );
- }
-
- /**
- * Default constructor - for Externalizable. This should never be used by a user, as it
- * will result in an invalid state for the instance.
- */
- public PackageCompilationData() {
-
- }
-
- public PackageCompilationData(final ClassLoader parentClassLoader) {
- initClassLoader( parentClassLoader );
- this.invokerLookups = new HashMap();
- this.store = new HashMap();
- this.lineMappings = new HashMap();
- this.dirty = false;
- }
-
- public boolean isDirty() {
- return this.dirty;
- }
-
- private void initClassLoader(ClassLoader parentClassLoader) {
- if ( parentClassLoader == null ) {
- throw new RuntimeDroolsException( "PackageCompilationData cannot have a null parentClassLoader" );
- }
- this.parentClassLoader = parentClassLoader;
- this.classLoader = new PackageClassLoader( this.parentClassLoader );
- }
-
- /**
- * Handles the write serialization of the PackageCompilationData. Patterns in Rules may reference generated data which cannot be serialized by
- * default methods. The PackageCompilationData holds a reference to the generated bytecode. The generated bytecode must be restored before any Rules.
- *
- */
- public void writeExternal(final ObjectOutput stream) throws IOException {
- stream.writeObject( this.store );
- stream.writeObject( this.AST );
-
- // Rules must be restored by an ObjectInputStream that can resolve using a given ClassLoader to handle seaprately by storing as
- // a byte[]
- final ByteArrayOutputStream bos = new ByteArrayOutputStream();
- final ObjectOutput out = new ObjectOutputStream( bos );
- out.writeObject( this.invokerLookups );
- stream.writeObject( bos.toByteArray() );
- }
-
- /**
- * Handles the read serialization of the PackageCompilationData. Patterns in Rules may reference generated data which cannot be serialized by
- * default methods. The PackageCompilationData holds a reference to the generated bytecode; which must be restored before any Rules.
- * A custom ObjectInputStream, able to resolve classes against the bytecode, is used to restore the Rules.
- *
- */
- public void readExternal(final ObjectInput stream) throws IOException,
- ClassNotFoundException {
- if ( stream instanceof DroolsObjectInputStream ) {
- DroolsObjectInputStream droolsStream = (DroolsObjectInputStream) stream;
- initClassLoader( droolsStream.getClassLoader() );
- } else {
- initClassLoader( Thread.currentThread().getContextClassLoader() );
- }
-
- this.store = (Map) stream.readObject();
- this.AST = stream.readObject();
-
- // Return the rules stored as a byte[]
- final byte[] bytes = (byte[]) stream.readObject();
-
- // Use a custom ObjectInputStream that can resolve against a given classLoader
- final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
- this.classLoader );
- this.invokerLookups = (Map) streamWithLoader.readObject();
- }
-
- public ClassLoader getClassLoader() {
- return this.classLoader;
- }
-
- public byte[] read(final String resourceName) {
- byte[] bytes = null;
-
- if ( this.store != null ) {
- bytes = ( byte[] ) this.store.get( resourceName );
- }
- return bytes;
- }
-
- public void write(final String resourceName,
- final byte[] clazzData) throws RuntimeDroolsException {
- if ( this.store.put( resourceName,
- clazzData ) != null ) {
- // we are updating an existing class so reload();
- //reload();
- this.dirty = true;
- } else {
- try {
- wire( convertResourceToClassName( resourceName ) );
- } catch ( final Exception e ) {
- e.printStackTrace();
- throw new RuntimeDroolsException( e );
- }
- }
-
- }
-
- public boolean remove(final String resourceName) throws RuntimeDroolsException {
- this.invokerLookups.remove( resourceName );
- if ( this.store.remove( convertClassToResourcePath( resourceName ) ) != null ) {
- // we need to make sure the class is removed from the classLoader
- // reload();
- this.dirty = true;
- return true;
- }
- return false;
- }
-
- public String[] list() {
- if ( this.store == null ) {
- return new String[0];
- }
- final List names = new ArrayList();
-
- for ( final Iterator it = this.store.keySet().iterator(); it.hasNext(); ) {
- final String name = (String) it.next();
- names.add( name );
- }
-
- return (String[]) names.toArray( new String[this.store.size()] );
- }
-
- /**
- * This class drops the classLoader and reloads it. During this process it must re-wire all the invokeables.
- * @throws CheckedDroolsException
- */
- public void reload() throws RuntimeDroolsException {
- // drops the classLoader and adds a new one
- this.classLoader = new PackageClassLoader( this.parentClassLoader );
-
- // Wire up invokers
- try {
- for ( final Iterator it = this.invokerLookups.entrySet().iterator(); it.hasNext(); ) {
- Entry entry = (Entry) it.next();
- wire( (String) entry.getKey(),
- entry.getValue() );
- }
- } catch ( final ClassNotFoundException e ) {
- throw new RuntimeDroolsException( e );
- } catch ( final InstantiationError e ) {
- throw new RuntimeDroolsException( e );
- } catch ( final IllegalAccessException e ) {
- throw new RuntimeDroolsException( e );
- } catch ( final InstantiationException e ) {
- throw new RuntimeDroolsException( e );
- } finally {
- this.dirty = false;
- }
- }
-
- public void clear() {
- this.store.clear();
- this.invokerLookups.clear();
- this.AST = null;
- reload();
- }
-
- public void wire(final String className) throws ClassNotFoundException,
- InstantiationException,
- IllegalAccessException {
- final Object invoker = this.invokerLookups.get( className );
- wire( className,
- invoker );
- }
-
- public void wire(final String className,
- final Object invoker) throws ClassNotFoundException,
- InstantiationException,
- IllegalAccessException {
- final Class clazz = this.classLoader.findClass( className );
- if ( invoker instanceof ReturnValueRestriction ) {
- ((ReturnValueRestriction) invoker).setReturnValueExpression( (ReturnValueExpression) clazz.newInstance() );
- } else if ( invoker instanceof PredicateConstraint ) {
- ((PredicateConstraint) invoker).setPredicateExpression( (PredicateExpression) clazz.newInstance() );
- } else if ( invoker instanceof EvalCondition ) {
- ((EvalCondition) invoker).setEvalExpression( (EvalExpression) clazz.newInstance() );
- } else if ( invoker instanceof Accumulate ) {
- ((Accumulate) invoker).setAccumulator( (Accumulator) clazz.newInstance() );
- } else if ( invoker instanceof Rule ) {
- ((Rule) invoker).setConsequence( (Consequence) clazz.newInstance() );
- } else if ( invoker instanceof JavaAccumulatorFunctionExecutor ) {
- ((JavaAccumulatorFunctionExecutor) invoker).setExpression( (ReturnValueExpression) clazz.newInstance() );
- } else if ( invoker instanceof ActionNode ) {
- ((ActionNode) invoker).setAction( clazz.newInstance() );
- } else if ( invoker instanceof ReturnValueConstraintEvaluator ) {
- ((ReturnValueConstraintEvaluator) invoker).setEvaluator( (ReturnValueEvaluator) clazz.newInstance() );
- }
- }
-
- public String toString() {
- return this.getClass().getName() + this.store.toString();
- }
-
- public void putInvoker(final String className,
- final Object invoker) {
- this.invokerLookups.put( className,
- invoker );
- }
-
- public void putAllInvokers(final Map invokers) {
- this.invokerLookups.putAll( invokers );
-
- }
-
- public Map getInvokers() {
- return this.invokerLookups;
- }
-
- public void removeInvoker(final String className) {
- this.invokerLookups.remove( className );
- }
-
- public Map getLineMappings() {
- if ( this.lineMappings == null ) {
- this.lineMappings = new HashMap();
- }
- return this.lineMappings;
- }
-
- public LineMappings getLineMappings(final String className) {
- return (LineMappings) getLineMappings().get( className );
- }
-
- public Object getAST() {
- return this.AST;
- }
-
- public void setAST(final Object ast) {
- this.AST = ast;
- }
-
- /**
- * Lifted and adapted from Jakarta commons-jci
- *
- * @author mproctor
- *
- */
- public class PackageClassLoader extends ClassLoader
- implements
- DroolsClassLoader {
-
- public PackageClassLoader(final ClassLoader parentClassLoader) {
- super( parentClassLoader );
- }
-
- public Class fastFindClass(final String name) {
- final Class clazz = findLoadedClass( name );
-
- if ( clazz == null ) {
- final byte[] clazzBytes = read( convertClassToResourcePath( name ) );
- if ( clazzBytes != null ) {
- return defineClass( name,
- clazzBytes,
- 0,
- clazzBytes.length,
- PROTECTION_DOMAIN );
- }
- }
-
- return clazz;
- }
-
- /**
- * Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass
- * over method calls to parent.loadClass(name, false); and c = findBootstrapClass0(name); which the default implementation
- * would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a
- * higher priority than normal.
- *
- */
- protected synchronized Class loadClass(final String name,
- final boolean resolve) throws ClassNotFoundException {
- Class clazz = fastFindClass( name );
-
- if ( clazz == null ) {
- final ClassLoader parent = getParent();
- if ( parent != null ) {
- clazz = parent.loadClass( name );
- } else {
- throw new ClassNotFoundException( name );
- }
- }
-
- if ( resolve ) {
- resolveClass( clazz );
- }
-
- return clazz;
- }
-
- protected Class findClass(final String name) throws ClassNotFoundException {
- final Class clazz = fastFindClass( name );
- if ( clazz == null ) {
- throw new ClassNotFoundException( name );
- }
- return clazz;
- }
-
- public InputStream getResourceAsStream(final String name) {
- final byte[] bytes = (byte[]) PackageCompilationData.this.store.get( name );
- if ( bytes != null ) {
- return new ByteArrayInputStream( bytes );
- } else {
- InputStream input = this.getParent().getResourceAsStream( name );
- if ( input == null ) {
- input = super.getResourceAsStream( name );
- }
- return input;
- }
- }
- }
-
- /**
- * Please do not use - internal
- * org/my/Class.xxx -> org.my.Class
- */
- public static String convertResourceToClassName(final String pResourceName) {
- return stripExtension( pResourceName ).replace( '/',
- '.' );
- }
-
- /**
- * Please do not use - internal
- * org.my.Class -> org/my/Class.class
- */
- public static String convertClassToResourcePath(final String pName) {
- return pName.replace( '.',
- '/' ) + ".class";
- }
-
- /**
- * Please do not use - internal
- * org/my/Class.xxx -> org/my/Class
- */
- public static String stripExtension(final String pResourceName) {
- final int i = pResourceName.lastIndexOf( '.' );
- final String withoutExtension = pResourceName.substring( 0,
- i );
- return withoutExtension;
- }
-
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/validation/RuleFlowProcessValidator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/validation/RuleFlowProcessValidator.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/validation/RuleFlowProcessValidator.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -42,7 +42,7 @@
import org.drools.workflow.core.node.SubProcessNode;
import org.drools.workflow.core.node.WorkItemNode;
import org.mvel.ErrorDetail;
-import org.mvel.ExpressionCompiler;
+import org.mvel.compiler.ExpressionCompiler;
import org.mvel.ParserContext;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -242,30 +242,73 @@
public HashTableIterator(final AbstractHashTable hashTable) {
this.hashTable = hashTable;
}
-
+
/* (non-Javadoc)
* @see org.drools.util.Iterator#next()
*/
- public Object next() {
- if ( this.entry == null ) {
- // keep skipping rows until we come to the end, or find one that is populated
- while ( this.entry == null ) {
- this.row++;
- if ( this.row == this.length ) {
- return null;
- }
- this.entry = this.table[this.row];
- }
- } else {
+ public Object next() {
+ if ( this.entry != null ) {
this.entry = this.entry.getNext();
- if ( this.entry == null ) {
- this.entry = (Entry) next();
+ }
+
+ // if no entry keep skipping rows until we come to the end, or find one that is populated
+ while ( this.entry == null ) {
+ this.row++;
+ if ( this.row == this.length ) {
+ return null;
}
- }
-
+ this.entry = this.table[this.row];
+ }
+
return this.entry;
- }
+ }
+
+// /* (non-Javadoc)
+// * @see org.drools.util.Iterator#next()
+// */
+// public Object next() {
+// if ( this.entry == null ) {
+// // keep skipping rows until we come to the end, or find one that is populated
+// while ( this.entry == null ) {
+// this.row++;
+// if ( this.row == this.length ) {
+// return null;
+// }
+// this.entry = this.table[this.row];
+// }
+// } else {
+// this.entry = this.entry.getNext();
+// if ( this.entry == null ) {
+// this.entry = (Entry) next();
+// }
+// }
+//
+// return this.entry;
+// }
+// /* (non-Javadoc)
+// * @see org.drools.util.Iterator#next()
+// */
+// public Object next() {
+// if ( this.entry == null ) {
+// // keep skipping rows until we come to the end, or find one that is populated
+// while ( this.entry == null ) {
+// this.row++;
+// if ( this.row == this.length ) {
+// return null;
+// }
+// this.entry = this.table[this.row];
+// }
+// } else {
+// this.entry = this.entry.getNext();
+// if ( this.entry == null ) {
+// this.entry = (Entry) next();
+// }
+// }
+//
+// return this.entry;
+// }
+
/* (non-Javadoc)
* @see org.drools.util.Iterator#reset()
*/
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/PackageCompilationDataTest.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -21,7 +21,8 @@
public void testCodeSourceUrl() throws IOException {
final String className = TestEvalExpression.class.getName();
- final PackageCompilationData pcData = new PackageCompilationData(getClass().getClassLoader());
+
+ final JavaDialectData pcData = new JavaDialectData( new DialectDatas(getClass().getClassLoader()) );
final EvalCondition invoker = new EvalCondition(null);
pcData.putInvoker(className, invoker);
final InputStream is = getClass().getClassLoader().getResourceAsStream(className.replace('.', '/') + ".class");
Modified: labs/jbossrules/trunk/drools-decisiontables/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-decisiontables/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,12 +5,12 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="src" path="/drools-core"/>
<classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="src" path="/drools-compiler"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
+ <classpathentry kind="src" path="/drools-core"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-decisiontables/.project
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/.project 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-decisiontables/.project 2008-02-05 18:38:51 UTC (rev 18319)
@@ -2,8 +2,8 @@
<name>drools-decisiontables</name>
<comment>A rule production system</comment>
<projects>
+ <project>drools-compiler</project>
<project>drools-core</project>
- <project>drools-compiler</project>
</projects>
<buildSpec>
<buildCommand>
Modified: labs/jbossrules/trunk/drools-decisiontables/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-decisiontables/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-decisiontables</artifactId>
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-feature/feature.xml
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-feature/feature.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-feature/feature.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -2,7 +2,7 @@
<feature
id="org.drools.eclipse.feature"
label="JBossRules Feature"
- version="4.1.0.SNAPSHOT"
+ version="5.0.0.SNAPSHOT"
provider-name="JBoss, Inc.">
<description url="http://www.example.com/description">
@@ -43,7 +43,7 @@
id="org.drools.eclipse"
download-size="0"
install-size="0"
- version="4.1.0.SNAPSHOT"
+ version="5.0.0.SNAPSHOT"
unpack="false"/>
</feature>
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-test-feature/feature.xml
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-test-feature/feature.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-test-feature/feature.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -2,7 +2,7 @@
<feature
id="org.drools.eclipse.test-feature"
label="JBossRules Feature"
- version="4.1.0.SNAPSHOT"
+ version="5.0.0.SNAPSHOT"
provider-name="JBoss, Inc.">
<description url="http://www.example.com/description">
@@ -21,6 +21,6 @@
id="org.drools.eclipse.test"
download-size="0"
install-size="0"
- version="4.1.0.SNAPSHOT"/>
+ version="5.0.0.SNAPSHOT"/>
</feature>
Modified: labs/jbossrules/trunk/drools-eclipse/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-eclipse/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -4,7 +4,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,15 +1,14 @@
-<?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/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 combineaccessrules="false" kind="src" path="/drools-compiler"/>
- <classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?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/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 combineaccessrules="false" kind="src" path="/drools-compiler"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<!--
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -48,7 +48,7 @@
String arg = args[0];
filename = arg;
} else {
- filename = "manners64.dat";
+ filename = "manners128.dat";
}
InputStream is = MannersBenchmark.class.getResourceAsStream(filename);
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -24,6 +24,7 @@
import java.util.regex.Pattern;
import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
import org.drools.WorkingMemory;
@@ -41,7 +42,9 @@
Package pkg = builder.getPackage();
//add the package to a rulebase
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ //conf.setAlphaMemory( true );
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
ruleBase.addPackage( pkg );
StatefulSession session = ruleBase.newStatefulSession();
@@ -58,8 +61,9 @@
Stage stage = new Stage(Stage.DUPLICATE);
session.insert( stage );
-
+
long start = System.currentTimeMillis();
+ session.setGlobal( "time", start );
session.fireAllRules();
System.out.println( (System.currentTimeMillis() - start) / 1000 );
session.dispose();
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java 2008-02-05 18:38:51 UTC (rev 18319)
@@ -2,6 +2,8 @@
import java.io.InputStreamReader;
import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
@@ -43,6 +45,7 @@
ruleBase.addPackage( pkg );
final StatefulSession session = ruleBase.newStatefulSession();
+ session.setGlobal( "list", new ArrayList() );
session.addEventListener( new DebugAgendaEventListener() );
session.addEventListener( new DebugWorkingMemoryEventListener() );
@@ -89,6 +92,15 @@
public void setStatus(final int status) {
this.status = status;
}
+
+ public static Message doSomething(Message message) {
+ return message;
+ }
+
+ public boolean isSomething(String msg, List list) {
+ list.add( this );
+ return this.message.equals( msg );
+ }
}
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltz/waltz.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltz/waltz.drl 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltz/waltz.drl 2008-02-05 18:38:51 UTC (rev 18319)
@@ -7,6 +7,8 @@
import org.drools.benchmark.waltz.Junction
import org.drools.benchmark.waltz.WaltzUtil
+global Long time
+
#If the duplicate flag is set, and there is still a line in WM, delete the line
#and add two edges. One edge runs from p1 to p2 and the other runs from p2 to
#p1. We then plot the edge.
@@ -30,7 +32,9 @@
then
$stage.setValue ( Stage.DETECT_JUNCTIONS );
update($stage);
- System.out.println("reversing done");
+ long current = System.currentTimeMillis();
+ System.out.println("reversing done : " + ( current - time ) );
+ drools.getWorkingMemory().setGlobal( "time", current);
end
#If three edges meet at a point and none of them have already been joined in
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HelloWorld.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HelloWorld.drl 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HelloWorld.drl 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,7 +1,9 @@
package org.drools.examples
import org.drools.examples.HelloWorldExample.Message;
-
+
+global java.util.List list
+ /*
rule "Hello World"
dialect "mvel"
when
@@ -21,4 +23,14 @@
System.out.println( message );
System.out.println( message );
System.out.println( message );
+end
+*/
+
+rule "new rule"
+ dialect "mvel"
+ when
+ m : Message( status == Message.HELLO, message : message )
+ eval( null )
+ then
+ System.out.println( list );
end
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-examples/drools-insurance/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-insurance/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-examples/drools-insurance/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -8,7 +8,7 @@
<artifactId>insurance</artifactId>
<packaging>war</packaging>
<name>DroolsInsurance</name>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
<description>
</description>
@@ -263,7 +263,7 @@
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</dependency>
</dependencies>
Modified: labs/jbossrules/trunk/drools-jbrms/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-jbrms/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,63 +1,62 @@
-<?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 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="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6/dom4j-1.6.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/emma/emma/2.0.5312/emma-2.0.5312.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.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/asm/asm/1.5.3/asm-1.5.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.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/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.3.0/slf4j-api-1.3.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/mvel/mvel/1.2.17/mvel-1.2.17.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/org/hibernate/hibernate-annotations/3.3.0.ga/hibernate-annotations-3.3.0.ga.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.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/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
- <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
- <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.3.0/slf4j-log4j12-1.3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtext/gwtext/0.9.3/gwtext-0.9.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-servlet/1.4.60/gwt-servlet-1.4.60.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.3/jackrabbit-jcr-commons-1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.3/jackrabbit-core-1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/javassist/3.3.ga/javassist-3.3.ga.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.3/jackrabbit-text-extractors-1.3.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/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam/2.0.0.CR2/jboss-seam-2.0.0.CR2.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/el/el-ri/1.2/el-ri-1.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
- <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.3/jackrabbit-api-1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.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/hibernate/hibernate/3.2.4.sp1/hibernate-3.2.4.sp1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-el/2.0.0.CR1/jboss-el-2.0.0.CR1.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/drools-analytics"/>
- <classpathentry combineaccessrules="false" kind="src" path="/drools-compiler"/>
- <classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
- <classpathentry combineaccessrules="false" kind="src" path="/drools-decisiontables"/>
- <classpathentry combineaccessrules="false" kind="src" path="/drools-repository"/>
- <classpathentry kind="output" path="target/classes"/>
-</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" excluding="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/emma/emma/2.0.5312/emma-2.0.5312.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.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/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.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/jackrabbit/jackrabbit-api/1.3/jackrabbit-api-1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
+ <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
+ <classpathentry kind="src" path="/drools-repository"/>
+ <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/javassist/3.3.ga/javassist-3.3.ga.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/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/el/el-ri/1.2/el-ri-1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-el/2.0.0.CR1/jboss-el-2.0.0.CR1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
+ <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.3.0/slf4j-api-1.3.0.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/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.3.0/slf4j-log4j12-1.3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtext/gwtext/0.9.3/gwtext-0.9.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
+ <classpathentry kind="src" path="/drools-decisiontables"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-servlet/1.4.60/gwt-servlet-1.4.60.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.2/el-api-1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam/2.0.0.CR2/jboss-seam-2.0.0.CR2.jar"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.4.GA/jboss-common-core-2.0.4.GA.jar"/>
+ <classpathentry kind="src" path="/drools-analytics"/>
+ <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.3.1.ga/hibernate-entitymanager-3.3.1.ga.jar"/>
+ <classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6/dom4j-1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.3/jackrabbit-jcr-commons-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/janino/janino/2.5.10/janino-2.5.10.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.3/jackrabbit-core-1.3.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/apache/jackrabbit/jackrabbit-text-extractors/1.3/jackrabbit-text-extractors-1.3.jar"/>
+</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/.project
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/.project 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-jbrms/.project 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,7 +1,13 @@
<projectDescription>
<name>drools-jbrms</name>
<comment>A rule production system</comment>
- <projects/>
+ <projects>
+ <project>drools-repository</project>
+ <project>drools-decisiontables</project>
+ <project>drools-compiler</project>
+ <project>drools-analytics</project>
+ <project>drools-core</project>
+ </projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
Modified: labs/jbossrules/trunk/drools-jbrms/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-jbrms/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -17,7 +17,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-jbrms</artifactId>
Modified: labs/jbossrules/trunk/drools-jsr94/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-jsr94/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,16 +5,16 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/jsr94/jsr94/1.1/jsr94-1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.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/1.1/jsr94-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-alpha2-dp2-java1.5/mvel-2.0-alpha2-dp2-java1.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-tck/1.0.3/jsr94-tck-1.0.3.jar"/>
+ <classpathentry kind="src" path="/drools-decisiontables"/>
<classpathentry kind="src" path="/drools-core"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-sigtest/1.1/jsr94-sigtest-1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
<classpathentry kind="src" path="/drools-compiler"/>
- <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.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/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
- <classpathentry kind="src" path="/drools-decisiontables"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jsr94/.project
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/.project 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-jsr94/.project 2008-02-05 18:38:51 UTC (rev 18319)
@@ -1,7 +1,11 @@
<projectDescription>
<name>drools-jsr94</name>
<comment>A rule production system</comment>
- <projects/>
+ <projects>
+ <project>drools-decisiontables</project>
+ <project>drools-core</project>
+ <project>drools-compiler</project>
+ </projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
Modified: labs/jbossrules/trunk/drools-jsr94/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-jsr94/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-jsr94</artifactId>
Modified: labs/jbossrules/trunk/drools-repository/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-repository/.classpath 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-repository/.classpath 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,20 +5,20 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.3/jackrabbit-jcr-commons-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/javax/jcr/jcr/1.0/jcr-1.0.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/org/slf4j/slf4j-log4j12/1.3.0/slf4j-log4j12-1.3.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.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/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.3/jackrabbit-text-extractors-1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.3/jackrabbit-core-1.3.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.3/jackrabbit-api-1.3.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.3.0/slf4j-api-1.3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.3.0/slf4j-log4j12-1.3.0.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/jackrabbit/jackrabbit-jcr-commons/1.3/jackrabbit-jcr-commons-1.3.jar"/>
<classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.3/jackrabbit-text-extractors-1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.3/jackrabbit-core-1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-repository/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-repository/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-repository/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-repository</artifactId>
Modified: labs/jbossrules/trunk/drools-server/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-server/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-server/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -5,7 +5,7 @@
<parent>
<artifactId>drools</artifactId>
<groupId>org.drools</groupId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-server</artifactId>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.drools.solver</groupId>
<artifactId>drools-solver</artifactId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-solver-core</artifactId>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.drools.solver</groupId>
<artifactId>drools-solver</artifactId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<artifactId>drools-solver-examples</artifactId>
Modified: labs/jbossrules/trunk/drools-solver/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/drools-solver/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.drools</groupId>
<artifactId>drools</artifactId>
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
</parent>
<groupId>org.drools.solver</groupId>
Modified: labs/jbossrules/trunk/pom.xml
===================================================================
--- labs/jbossrules/trunk/pom.xml 2008-02-05 17:56:14 UTC (rev 18318)
+++ labs/jbossrules/trunk/pom.xml 2008-02-05 18:38:51 UTC (rev 18319)
@@ -8,7 +8,7 @@
<packaging>pom</packaging>
<name>Drools</name>
<!-- TODO Use -SNAPSHOT instead of .SNAPSHOT (gives problems with building the drools eclipse plugin) -->
- <version>4.1.0.SNAPSHOT</version>
+ <version>5.0.0.SNAPSHOT</version>
<description>A rule production system</description>
<url>http://www.jboss.com/products/rules</url>
@@ -186,7 +186,7 @@
<id>basedir</id>
<url>file://${basedir}/m2_repo</url>
</repository>
-
+
<repository>
<id>Maven Snapshots</id>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
@@ -210,6 +210,7 @@
<enabled>false</enabled>
</releases>
</repository>
+
</repositories>
<pluginRepositories>
@@ -618,6 +619,7 @@
<module>drools-ant</module>
<module>drools-repository</module>
<module>drools-jbrms</module>
+ <module>drools-clips</module>
<!--module>drools-examples</module-->
<!--module>drools-solver</module--><!-- Use the profile solver to add it -->
</modules>
@@ -782,7 +784,7 @@
<dependency><!-- TODO deploy mvel to the jboss repo or snapshot repo, instead of the dir m2_repo hack -->
<groupId>org.mvel</groupId>
<artifactId>mvel</artifactId>
- <version>1.2.21</version>
+ <version>2.0-alpha2-dp2-java1.5</version>
</dependency>
<!-- drools-compiler -->
More information about the jboss-svn-commits
mailing list