[jboss-svn-commits] JBL Code SVN: r27136 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/integrationtests and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jun 25 15:32:06 EDT 2009
Author: tirelli
Date: 2009-06-25 15:32:06 -0400 (Thu, 25 Jun 2009)
New Revision: 27136
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JBRules2140.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java
Log:
JBRULES-2140: Fixing dialect runtime data rewiring
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 2009-06-25 17:19:13 UTC (rev 27135)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2009-06-25 19:32:06 UTC (rev 27136)
@@ -335,7 +335,7 @@
public void addFunction(FunctionDescr functionDescr,
TypeResolver typeResolver,
Resource resource) {
- Serializable s1 = compile( (String) functionDescr.getContent(),
+ Serializable s1 = compile( (String) functionDescr.getText(),
null,
null,
null,
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-06-25 17:19:13 UTC (rev 27135)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-06-25 19:32:06 UTC (rev 27136)
@@ -6806,4 +6806,30 @@
}
}
+ public void testJBRules2140() {
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newClassPathResource( "test_JBRules2140.drl",
+ getClass() ),
+ ResourceType.DRL );
+ KnowledgeBuilderErrors errors = kbuilder.getErrors();
+ if ( errors.size() > 0 ) {
+ for ( KnowledgeBuilderError error : errors ) {
+ System.err.println( error );
+ }
+ throw new IllegalArgumentException( "Could not parse knowledge." );
+ }
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ List<String> results = new ArrayList<String>();
+ ksession.setGlobal( "results",
+ results );
+ ksession.fireAllRules();
+ assertEquals( 2,
+ results.size() );
+ assertTrue( results.contains( "java" ) );
+ assertTrue( results.contains( "mvel" ) );
+
+ }
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JBRules2140.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JBRules2140.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JBRules2140.drl 2009-06-25 19:32:06 UTC (rev 27136)
@@ -0,0 +1,39 @@
+package org.drools
+
+global java.util.List results;
+
+function void aaa() {
+ // just a dummy function to force java dialect recompilation
+}
+
+declare SomeBean
+ prop : String
+end
+
+rule "setup 1"
+ dialect "mvel"
+when
+ eval(true)
+then
+ SomeBean someBean = new SomeBean();
+ someBean.setProp("mvel");
+ insert(someBean);
+end
+
+rule "setup 2"
+ dialect "java"
+when
+ eval(true)
+then
+ SomeBean someBean = new SomeBean();
+ someBean.setProp("java");
+ insert(someBean);
+end
+
+rule "match"
+ salience -20
+when
+ $bean : SomeBean()
+then
+ results.add( $bean.getProp() );
+end
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java 2009-06-25 17:19:13 UTC (rev 27135)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java 2009-06-25 19:32:06 UTC (rev 27136)
@@ -108,27 +108,18 @@
}
public void onBeforeExecute() {
- for ( Iterator it = this.dialects.values().iterator(); it.hasNext(); ) {
- DialectRuntimeData data = (DialectRuntimeData) it.next();
+ // Java dialect MUST be the first to be processed.
+ DialectRuntimeData data = this.dialects.get( "java" );
+ if( data != null ) {
data.onBeforeExecute();
}
- // // detect if any dialect is dirty, if so reload() them all
- // boolean isDirty = false;
- // for ( Iterator it = this.dialects.values().iterator(); it.hasNext(); ) {
- // DialectRuntimeData data = (DialectRuntimeData) it.next();
- // if ( data.isDirty() ) {
- // isDirty = true;
- // break;
- // }
- // }
- //
- // //if ( isDirty ) {
- // this.classLoader = new CompositeClassLoader();
- // for ( Iterator it = this.dialects.values().iterator(); it.hasNext(); ) {
- // DialectRuntimeData data = (DialectRuntimeData) it.next();
- // data.reload();
- // }
- // //}
+
+ // then, all others
+ for ( Map.Entry<String, DialectRuntimeData> entry : this.dialects.entrySet() ) {
+ if( ! "java".equals( entry.getKey() ) ) {
+ entry.getValue().onBeforeExecute();
+ }
+ }
}
public void clear() {
More information about the jboss-svn-commits
mailing list