[jboss-svn-commits] JBL Code SVN: r16866 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/compiler and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Nov 27 15:22:20 EST 2007
Author: mark.proctor at jboss.com
Date: 2007-11-27 15:22:20 -0500 (Tue, 27 Nov 2007)
New Revision: 16866
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/ProcessBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ActionDialects.rf
Log:
JBRULES-1197 Extends actions support to include other dialects and callback
-general clean ups to make tests pass
-possible double dialect initialisation removed
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 2007-11-27 19:36:07 UTC (rev 16865)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-11-27 20:22:20 UTC (rev 16866)
@@ -154,9 +154,9 @@
this.dialect = this.dialectRegistry.getDialect( this.configuration.getDefaultDialect() );
- this.dialectRegistry.initAll( this );
+
if ( this.pkg != null ) {
- initDialectPackage( pkg );
+ this.dialectRegistry.initAll( this );
}
}
@@ -222,6 +222,7 @@
*/
public void addRuleFlow(Reader processSource) {
ProcessBuilder processBuilder = new ProcessBuilder( this );
+
try {
processBuilder.addProcessFromFile( processSource );
Process[] processes = processBuilder.getProcesses();
@@ -238,12 +239,17 @@
e ) );
}
- this.dialectRegistry.compileAll();
-
- // some of the rules and functions may have been redefined
- if ( this.pkg.getPackageCompilationData().isDirty() ) {
- this.pkg.getPackageCompilationData().reload();
+ if ( this.pkg != null ) {
+ // 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.dialectRegistry.compileAll();
+
+ // some of the rules and functions may have been redefined
+ if ( this.pkg.getPackageCompilationData().isDirty() ) {
+ this.pkg.getPackageCompilationData().reload();
+ }
}
+
this.results = this.dialectRegistry.addResults( this.results );
}
@@ -309,11 +315,9 @@
}
if ( this.pkg != null ) {
- // mergePackage( packageDescr ) ;
- mergePackage( this.pkg,
- packageDescr );
+ mergePackage( packageDescr );
} else {
- this.pkg = newPackage( packageDescr );
+ newPackage( packageDescr );
}
this.ruleBuilder = new RuleBuilder();
@@ -387,38 +391,22 @@
}
}
- private Package newPackage(final PackageDescr packageDescr) {
- final Package pkg = new Package( packageDescr.getName(),
- this.configuration.getClassLoader() );
+ private void newPackage(final PackageDescr packageDescr) {
+ this.pkg = new Package( packageDescr.getName(),
+ this.configuration.getClassLoader() );
+
+ this.typeResolver.addImport( this.pkg.getName() + ".*" );
- initDialectPackage( pkg );
+ this.dialectRegistry.initAll( this );
- mergePackage( pkg,
- packageDescr );
-
- return pkg;
+ mergePackage( packageDescr );
}
- private void initDialectPackage(Package pkg) {
- for ( Iterator it = this.dialectRegistry.iterator(); it.hasNext(); ) {
- Dialect dialect = (Dialect) it.next();
- dialect.init( pkg );
- }
-
- }
-
- private void mergePackage(final Package pkg,
- final PackageDescr packageDescr) {
-
- // make sure we have initialised this typeResolver with "default" imports
- if ( this.typeResolver.getImports().isEmpty() ) {
- this.typeResolver.addImport( pkg.getName() + ".*" );
- }
-
+ private void mergePackage(final PackageDescr packageDescr) {
final List imports = packageDescr.getImports();
for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
String importEntry = ((ImportDescr) it.next()).getTarget();
- pkg.addImport( importEntry );
+ this.pkg.addImport( importEntry );
this.typeResolver.addImport( importEntry );
this.dialectRegistry.addImport( importEntry );
}
@@ -426,11 +414,9 @@
for ( final Iterator it = packageDescr.getFunctionImports().iterator(); it.hasNext(); ) {
String importEntry = ((FunctionImportDescr) it.next()).getTarget();
this.dialectRegistry.addStaticImport( importEntry );
- pkg.addStaticImport( importEntry );
+ this.pkg.addStaticImport( importEntry );
}
- ((ClassTypeResolver) this.typeResolver).setClassLoader( pkg.getPackageCompilationData().getClassLoader() );
-
final List globals = packageDescr.getGlobals();
for ( final Iterator it = globals.iterator(); it.hasNext(); ) {
final GlobalDescr global = (GlobalDescr) it.next();
@@ -440,7 +426,7 @@
Class clazz;
try {
clazz = typeResolver.resolveType( className );
- pkg.addGlobal( identifier,
+ this.pkg.addGlobal( identifier,
clazz );
} catch ( final ClassNotFoundException e ) {
this.results.add( new GlobalError( identifier,
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 2007-11-27 19:36:07 UTC (rev 16865)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-11-27 20:22:20 UTC (rev 16866)
@@ -24,6 +24,7 @@
import java.util.List;
import java.util.Map;
+import org.drools.lang.descr.PackageDescr;
import org.drools.ruleflow.common.core.Process;
import org.drools.ruleflow.core.Connection;
import org.drools.ruleflow.core.MilestoneNode;
@@ -93,7 +94,8 @@
final ClassLoader newLoader = this.getClass().getClassLoader();
try {
Thread.currentThread().setContextClassLoader( newLoader );
- final RuleFlowProcess process = (RuleFlowProcess) stream.fromXML( reader );
+ final RuleFlowProcess process = (RuleFlowProcess) stream.fromXML( reader );
+
addProcess( process );
} finally {
Thread.currentThread().setContextClassLoader( oldLoader );
@@ -102,21 +104,22 @@
}
private String generateRules(final Process process) {
- String result = "";
+ StringBuilder builder = new StringBuilder();
+
if (process instanceof RuleFlowProcessImpl) {
RuleFlowProcessImpl ruleFlow = (RuleFlowProcessImpl) process;
- result = "package " + ruleFlow.getPackageName() + "\n" + result;
+ builder.append( "package " + ruleFlow.getPackageName() + "\n" );
List imports = ruleFlow.getImports();
if (imports != null) {
for (Iterator iterator = imports.iterator(); iterator.hasNext(); ) {
- result += "import " + iterator.next() + ";\n";
+ builder.append( "import " + iterator.next() + ";\n" );
}
}
Map globals = ruleFlow.getGlobals();
if (globals != null) {
for (Iterator iterator = globals.entrySet().iterator(); iterator.hasNext(); ) {
Map.Entry entry = (Map.Entry) iterator.next();
- result += "global " + entry.getValue() + " " + entry.getKey() + ";\n";
+ builder.append( "global " + entry.getValue() + " " + entry.getKey() + ";\n" );
}
}
@@ -127,16 +130,16 @@
if (split.getType() == Split.TYPE_XOR || split.getType() == Split.TYPE_OR) {
for (Iterator iterator = split.getOutgoingConnections().iterator(); iterator.hasNext(); ) {
Connection connection = (Connection) iterator.next();
- result += createSplitRule(process, connection, split.getConstraint(connection).getConstraint());
+ builder.append( createSplitRule(process, connection, split.getConstraint(connection).getConstraint()) );
}
}
} else if (nodes[i] instanceof MilestoneNode) {
MilestoneNode milestone = (MilestoneNode) nodes[i];
- result += createMilestoneRule(process, milestone);
+ builder.append( createMilestoneRule(process, milestone) );
}
}
}
- return result;
+ return builder.toString();
}
private String createSplitRule(Process process, Connection connection, String constraint) {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java 2007-11-27 19:36:07 UTC (rev 16865)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java 2007-11-27 20:22:20 UTC (rev 16866)
@@ -253,6 +253,7 @@
public void init(PackageBuilder builder) {
this.builder = builder;
+ this.pkg = builder.getPackage();
}
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 2007-11-27 19:36:07 UTC (rev 16865)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java 2007-11-27 20:22:20 UTC (rev 16866)
@@ -1001,6 +1001,9 @@
public void testCompilerConfiguration() throws Exception {
// test default is eclipse jdt core
PackageBuilder builder = new PackageBuilder();
+ PackageDescr pkgDescr = new PackageDescr( "org.test" );
+ builder.addPackage( pkgDescr );
+
final Field dialectField = builder.getClass().getDeclaredField( "dialect" );
dialectField.setAccessible( true );
JavaDialect dialect = (JavaDialect) dialectField.get( builder );
@@ -1016,6 +1019,8 @@
JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) conf.getDialectConfiguration( "java" );
javaConf.setCompiler( JavaDialectConfiguration.JANINO );
builder = new PackageBuilder( conf );
+ builder.addPackage( pkgDescr );
+
dialect = (JavaDialect) dialectField.get( builder );
compiler = (JavaCompiler) compilerField.get( dialect );
assertSame( JaninoJavaCompiler.class,
@@ -1026,6 +1031,8 @@
javaConf = ( JavaDialectConfiguration ) conf.getDialectConfiguration( "java" );
javaConf.setCompiler( JavaDialectConfiguration.ECLIPSE );
builder = new PackageBuilder( conf );
+ builder.addPackage( pkgDescr );
+
dialect = (JavaDialect) dialectField.get( builder );
compiler = (JavaCompiler) compilerField.get( dialect );
assertSame( EclipseJavaCompiler.class,
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java 2007-11-27 19:36:07 UTC (rev 16865)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java 2007-11-27 20:22:20 UTC (rev 16866)
@@ -735,7 +735,7 @@
public void testActionDialects() throws Exception {
final PackageBuilder builder = new PackageBuilder();
- builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ActionDialects.rfm" ) ) );
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ActionDialects.rfm" ) ) );
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( builder.getPackage() );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ActionDialects.rf
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ActionDialects.rf 2007-11-27 19:36:07 UTC (rev 16865)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ActionDialects.rf 2007-11-27 20:22:20 UTC (rev 16866)
@@ -8,8 +8,8 @@
<org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
<default>
<constraint id="4">
- <x>67</x>
- <y>82</y>
+ <x>105</x>
+ <y>78</y>
<width>80</width>
<height>40</height>
</constraint>
@@ -76,8 +76,8 @@
<org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
<default>
<constraint id="26">
- <x>67</x>
- <y>21</y>
+ <x>105</x>
+ <y>17</y>
<width>80</width>
<height>40</height>
</constraint>
@@ -110,8 +110,8 @@
<org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
<default>
<constraint id="33">
- <x>67</x>
- <y>153</y>
+ <x>105</x>
+ <y>149</y>
<width>80</width>
<height>40</height>
</constraint>
@@ -130,8 +130,8 @@
<org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
<default>
<constraint id="39">
- <x>67</x>
- <y>213</y>
+ <x>104</x>
+ <y>217</y>
<width>80</width>
<height>40</height>
</constraint>
More information about the jboss-svn-commits
mailing list