[jboss-svn-commits] JBL Code SVN: r12843 - in labs/jbossrules/trunk/drools-compiler: src/main/java/org/drools/rule/builder/dialect/mvel and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 25 20:38:17 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-06-25 20:38:17 -0400 (Mon, 25 Jun 2007)
New Revision: 12843
Modified:
labs/jbossrules/trunk/drools-compiler/.classpath
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/brms/server/rules/SuggestionCompletionLoaderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
Log:
-updated to MVEL beta27, which adds language levels.
Modified: labs/jbossrules/trunk/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-compiler/.classpath 2007-06-26 00:36:25 UTC (rev 12842)
+++ labs/jbossrules/trunk/drools-compiler/.classpath 2007-06-26 00:38:17 UTC (rev 12843)
@@ -1,19 +1,18 @@
-<?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/antlr/antlr-runtime/3.0/antlr-runtime-3.0.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/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2beta26/mvel14-1.2beta26.jar"/>
- <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.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/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.7/janino-2.5.7.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<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/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.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/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2beta27/mvel14-1.2beta27.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.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/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.7/janino-2.5.7.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
+ <classpathentry kind="src" path="/drools-core"/>
+</classpath>
\ No newline at end of file
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 2007-06-26 00:36:25 UTC (rev 12842)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-06-26 00:38:17 UTC (rev 12843)
@@ -39,6 +39,7 @@
import org.drools.rule.builder.RuleBuildContext;
import org.drools.rule.builder.RuleClassBuilder;
import org.drools.rule.builder.SalienceBuilder;
+import org.mvel.AbstractParser;
import org.mvel.integration.impl.ClassImportResolverFactory;
import org.mvel.integration.impl.StaticMethodImportResolverFactory;
@@ -81,6 +82,8 @@
private Map builders;
public MVELDialect(final PackageBuilder builder) {
+ AbstractParser.setLanguageLevel(4);
+
this.pkg = builder.getPackage();
this.configuration = builder.getPackageBuilderConfiguration();
this.typeResolver = builder.getTypeResolver();
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java 2007-06-26 00:36:25 UTC (rev 12842)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java 2007-06-26 00:38:17 UTC (rev 12843)
@@ -8,7 +8,7 @@
import junit.framework.TestCase;
-public class SuggestionCompletionLoaderTest extends TestCase {
+public class SuggestionCompletionLoaderTest extends TestCase {
public void testSuggestionCompLoader() throws Exception {
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
@@ -35,6 +35,6 @@
return Object.class;
}
- }
+ }
}
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 2007-06-26 00:36:25 UTC (rev 12842)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2007-06-26 00:38:17 UTC (rev 12843)
@@ -98,7 +98,73 @@
public void testKnowledgeHelper() {
}
+
+ public void testImperativeCodeError() throws Exception {
+ final Package pkg = new Package( "pkg1" );
+ final RuleDescr ruleDescr = new RuleDescr( "rule 1" );
+ ruleDescr.setConsequence( "if (cheese.price == 10) { cheese.price = 5; }" );
+ MVELDialect mvelDialect = new MVELDialect( new PackageBuilder( pkg ) );
+ DialectRegistry registry = new DialectRegistry();
+ registry.addDialect( "default",
+ mvelDialect );
+ final PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
+
+ final InstrumentedBuildContent context = new InstrumentedBuildContent( conf,
+ pkg,
+ ruleDescr,
+ registry,
+ mvelDialect );
+
+ final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
+
+ final ObjectType cheeseObjeectType = new ClassObjectType( Cheese.class );
+
+ final Pattern pattern = new Pattern( 0,
+ cheeseObjeectType );
+
+ final PatternExtractor extractor = new PatternExtractor( cheeseObjeectType );
+
+ final Declaration declaration = new Declaration( "cheese",
+ extractor,
+ pattern );
+ final Map map = new HashMap();
+ map.put( "cheese",
+ declaration );
+ declarationResolver.setDeclarations( map );
+ context.setDeclarationResolver( declarationResolver );
+
+ final MVELConsequenceBuilder builder = new MVELConsequenceBuilder();
+ builder.build( context );
+
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+
+ final Cheese cheddar = new Cheese( "cheddar",
+ 10 );
+ final InternalFactHandle f0 = (InternalFactHandle) wm.insert( cheddar );
+ final ReteTuple tuple = new ReteTuple( f0 );
+
+ final AgendaItem item = new AgendaItem( 0,
+ tuple,
+ 10,
+ null,
+ context.getRule(),
+ null );
+ final DefaultKnowledgeHelper kbHelper = new DefaultKnowledgeHelper( wm );
+ kbHelper.setActivation( item );
+ try {
+ context.getRule().getConsequence().evaluate( kbHelper,
+ wm );
+ fail( "should throw an exception, as 'if' is not allowed" );
+ } catch ( Exception e) {
+
+ }
+
+ assertEquals( 10,
+ cheddar.getPrice() );
+ }
+
/**
* Just like MVEL command line, we can allow expressions to span lines, with optional ";"
* seperating expressions. If its needed a ";" can be thrown in, but if not, a new line is fine.
More information about the jboss-svn-commits
mailing list