[jboss-svn-commits] JBL Code SVN: r17654 - in labs/jbossrules/branches/4.0.x: drools-compiler/src/main/java/org/drools/rule/builder/dialect/java and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 9 12:06:54 EST 2008
Author: tirelli
Date: 2008-01-09 12:06:54 -0500 (Wed, 09 Jan 2008)
New Revision: 17654
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELAccumulateBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java
labs/jbossrules/branches/4.0.x/pom.xml
Log:
JBRULES-1397: updating to latest MVEL jar to fix the problem. Fixing mvel usage in drools.
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -164,6 +164,7 @@
mvelAnalysis,
mvel.getInterceptors(),
null,
+ null,
context );
Class ret = expr.getKnownEgressType();
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELAccumulateBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELAccumulateBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELAccumulateBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -99,6 +99,7 @@
analysis,
null,
source.getOuterDeclarations(),
+ null,
context );
AccumulateFunction function = context.getConfiguration().getAccumulateFunction( accumDescr.getFunctionIdentifier() );
@@ -117,12 +118,12 @@
null,
accumDescr.getActionCode(),
initCodeAnalysis.getMvelVariables() );
- actionCodeAnalysis.setMvelVariables( initCodeAnalysis.getMvelVariables() );
+ //actionCodeAnalysis.setMvelVariables( initCodeAnalysis.getMvelVariables() );
final MVELAnalysisResult resultCodeAnalysis = (MVELAnalysisResult) dialect.analyzeExpression( context,
accumDescr,
accumDescr.getResultCode(),
initCodeAnalysis.getMvelVariables() );
- resultCodeAnalysis.setMvelVariables( initCodeAnalysis.getMvelVariables() );
+ //resultCodeAnalysis.setMvelVariables( initCodeAnalysis.getMvelVariables() );
final List requiredDeclarations = new ArrayList( initCodeAnalysis.getBoundIdentifiers()[0] );
requiredDeclarations.addAll( actionCodeAnalysis.getBoundIdentifiers()[0] );
@@ -144,11 +145,13 @@
initCodeAnalysis,
null,
source.getOuterDeclarations(),
+ null,
context );
final Serializable action = dialect.compile( (String) accumDescr.getActionCode(),
actionCodeAnalysis,
null,
source.getOuterDeclarations(),
+ initCodeAnalysis.getMvelVariables(),
context );
Serializable reverse = null;
@@ -157,6 +160,7 @@
resultCodeAnalysis,
null,
source.getOuterDeclarations(),
+ initCodeAnalysis.getMvelVariables(),
context );
}
@@ -164,6 +168,7 @@
resultCodeAnalysis,
null,
source.getOuterDeclarations(),
+ initCodeAnalysis.getMvelVariables(),
context );
accumulator = new MVELAccumulator( factory,
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -81,6 +81,7 @@
analysis,
dialect.getInterceptors(),
null,
+ null,
context );
final DroolsMVELFactory factory = new DroolsMVELFactory( context.getDeclarationResolver().getDeclarations(),
@@ -94,7 +95,7 @@
context.getErrors().add( new RuleError( context.getRule(),
context.getRuleDescr(),
null,
- "Unable to build expression for 'consequence' '" + context.getRuleDescr().getConsequence() + "'" ) );
+ "Unable to build expression for 'consequence': "+e.getMessage()+" '" + context.getRuleDescr().getConsequence() + "'" ) );
}
}
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -66,46 +66,46 @@
implements
Dialect {
- public final static String ID = "mvel";
+ public final static String ID = "mvel";
- private final static String EXPRESSION_DIALECT_NAME = "MVEL";
+ private final static String EXPRESSION_DIALECT_NAME = "MVEL";
- private final MVELRuleClassBuilder rule = new MVELRuleClassBuilder();
+ private final MVELRuleClassBuilder rule = new MVELRuleClassBuilder();
- 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 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 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 MVELFromBuilder from = new MVELFromBuilder();
+ private final JavaFunctionBuilder function = new JavaFunctionBuilder();
+ private final CollectBuilder collect = new CollectBuilder();
+ private final ForallBuilder forall = new ForallBuilder();
- 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;
- private TypeResolver typeResolver;
- private ClassFieldExtractorCache classFieldExtractorCache;
- private MVELExprAnalyzer analyzer;
+ private Package pkg;
+ private MVELDialectConfiguration configuration;
+ private TypeResolver typeResolver;
+ private ClassFieldExtractorCache classFieldExtractorCache;
+ private MVELExprAnalyzer analyzer;
- private Map imports;
- private Map packageImports;
+ private Map imports;
+ private Map packageImports;
- private boolean strictMode;
-
- private static Boolean languageSet = new Boolean( false );
+ private boolean strictMode;
+ private static Boolean languageSet = new Boolean( false );
+
public void addFunction(FunctionDescr functionDescr,
TypeResolver typeResolver) {
throw new UnsupportedOperationException( "MVEL does not support functions" );
@@ -117,7 +117,7 @@
public MVELDialect() {
}
-
+
public static void setLanguageLevel(int level) {
synchronized ( languageSet ) {
// this synchronisation is needed as setLanguageLevel is now thread safe
@@ -139,8 +139,8 @@
this.strictMode = this.configuration.isStrict();
// we currently default to reflective optimisation
- OptimizerFactory.setDefaultOptimizer("reflective");
-
+ OptimizerFactory.setDefaultOptimizer( "reflective" );
+
MVEL.setThreadSafe( true );
this.analyzer = new MVELExprAnalyzer();
@@ -203,14 +203,14 @@
this.builders.put( FunctionDescr.class,
this.function );
- }
+ }
public void init(Package pkg) {
this.pkg = pkg;
this.results = new ArrayList();
this.src = new MemoryResourceReader();
- if( this.pkg != null ) {
- this.addImport( this.pkg.getName()+".*" );
+ if ( this.pkg != null ) {
+ this.addImport( this.pkg.getName() + ".*" );
}
}
@@ -218,11 +218,11 @@
//MVEL:test null to Fix failing test on org.drools.rule.builder.dialect.mvel.MVELConsequenceBuilderTest.testImperativeCodeError()
// @todo: why is this here, MVEL doesn't compile anything? mdp
- String pkgName = this.pkg == null? "": this.pkg.getName();
+ String pkgName = this.pkg == null ? "" : this.pkg.getName();
final String ruleClassName = JavaDialect.getUniqueLegalName( pkgName,
- ruleDescr.getName(),
- "mvel",
- this.src );
+ ruleDescr.getName(),
+ "mvel",
+ this.src );
ruleDescr.setClassName( StringUtils.ucFirst( ruleClassName ) );
ruleDescr.setDialect( this );
}
@@ -232,7 +232,7 @@
}
public void addRule(RuleBuildContext context) {
- //MVEL: Compiler change
+ //MVEL: Compiler change
final RuleDescr ruleDescr = context.getRuleDescr();
// setup the line mappins for this rule
@@ -241,20 +241,25 @@
mapping.setStartLine( ruleDescr.getConsequenceLine() );
mapping.setOffset( ruleDescr.getConsequenceOffset() );
- context.getPkg().getPackageCompilationData().getLineMappings().put( name, mapping );
+ context.getPkg().getPackageCompilationData().getLineMappings().put( name,
+ mapping );
}
public void addImport(String importEntry) {
if ( importEntry.endsWith( ".*" ) ) {
- importEntry = importEntry.substring( 0, importEntry.length()-2 );
- this.packageImports.put( importEntry, importEntry );
+ importEntry = importEntry.substring( 0,
+ importEntry.length() - 2 );
+ this.packageImports.put( importEntry,
+ importEntry );
} else {
try {
Class cls = this.typeResolver.resolveType( importEntry );
- this.imports.put( ParseTools.getSimpleClassName( cls ), cls );
+ this.imports.put( ParseTools.getSimpleClassName( cls ),
+ cls );
} catch ( ClassNotFoundException e ) {
- this.results.add( new ImportError( importEntry, 1 ) );
+ this.results.add( new ImportError( importEntry,
+ 1 ) );
}
}
}
@@ -282,12 +287,14 @@
Method[] methods = cls.getDeclaredMethods();
for ( int i = 0; i < methods.length; i++ ) {
if ( methods[i].getName().equals( methodName ) ) {
- this.imports.put( methodName, methods[i] );
+ this.imports.put( methodName,
+ methods[i] );
break;
}
}
} catch ( ClassNotFoundException e ) {
- this.results.add( new ImportError( staticImportEntry, -1 ) );
+ this.results.add( new ImportError( staticImportEntry,
+ -1 ) );
}
}
@@ -325,7 +332,7 @@
context.getErrors().add( new RuleError( context.getRule(),
descr,
null,
- "Unable to determine the used declarations.\n" + e.getMessage()) );
+ "Unable to determine the used declarations.\n" + e.getMessage() ) );
}
return result;
}
@@ -355,7 +362,7 @@
context.getErrors().add( new RuleError( context.getRule(),
descr,
e,
- "Unable to determine the used declarations.\n" + e.getMessage()) );
+ "Unable to determine the used declarations.\n" + e.getMessage() ) );
}
return result;
}
@@ -364,13 +371,17 @@
final Dialect.AnalysisResult analysis,
final Map interceptors,
final Map outerDeclarations,
+ final Map otherInputVariables,
final RuleBuildContext context) {
- final ParserContext parserContext = getParserContext(analysis, outerDeclarations, context );
+ final ParserContext parserContext = getParserContext( analysis,
+ outerDeclarations,
+ otherInputVariables,
+ context );
ExpressionCompiler compiler = new ExpressionCompiler( text.trim() );
- if (MVELDebugHandler.isDebugMode()) {
- System.out.println("Source before MVEL Compilation:\n"+text.trim());
+ if ( MVELDebugHandler.isDebugMode() ) {
+ System.out.println( "Source before MVEL Compilation:\n" + text.trim() );
compiler.setDebugSymbols( true );
}
@@ -378,13 +389,16 @@
return expr;
}
- public ParserContext getParserContext(final Dialect.AnalysisResult analysis, final Map outerDeclarations, final RuleBuildContext context) {
+ public ParserContext getParserContext(final Dialect.AnalysisResult analysis,
+ final Map outerDeclarations,
+ final Map otherInputDeclarations,
+ final RuleBuildContext context) {
final ParserContext parserContext = new ParserContext( this.imports,
null,
- context.getPkg().getName()+"."+context.getRuleDescr().getClassName() );
+ context.getPkg().getName() + "." + context.getRuleDescr().getClassName() );
for ( Iterator it = this.packageImports.values().iterator(); it.hasNext(); ) {
- String packageImport = ( String ) it.next();
+ String packageImport = (String) it.next();
parserContext.addPackageImport( packageImport );
}
@@ -410,15 +424,14 @@
(Class) globalTypes.get( identifier ) );
}
- Map mvelVars = ((MVELAnalysisResult) analysis).getMvelVariables();
- if ( mvelVars != null ) {
- for ( Iterator it = mvelVars.entrySet().iterator(); it.hasNext(); ) {
+ if ( otherInputDeclarations != null ) {
+ for ( Iterator it = otherInputDeclarations.entrySet().iterator(); it.hasNext(); ) {
Entry entry = (Entry) it.next();
parserContext.addInput( (String) entry.getKey(),
(Class) entry.getValue() );
}
}
-
+
if ( outerDeclarations != null ) {
for ( Iterator it = outerDeclarations.entrySet().iterator(); it.hasNext(); ) {
Entry entry = (Entry) it.next();
@@ -505,6 +518,4 @@
return ID;
}
-
-
}
\ No newline at end of file
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -91,6 +91,7 @@
analysis,
null,
null,
+ null,
context );
eval.setEvalExpression( new MVELEvalExpression( expr,
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELFromBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -76,6 +76,7 @@
analysis,
null,
null,
+ null,
context );
dataProvider = new MVELDataProvider( expr,
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -59,18 +59,23 @@
localMap.put( localDeclarations[i].getIdentifier(),
localDeclarations[i] );
}
-
+
try {
final DroolsMVELFactory factory = new DroolsMVELFactory( previousMap,
localMap,
- context.getPkg().getGlobals() );
-
+ context.getPkg().getGlobals() );
+
Dialect.AnalysisResult analysis = context.getDialect().analyzeExpression( context,
predicateDescr,
predicateDescr.getContent() );
-
- final Serializable expr = ((MVELDialect) context.getDialect()).compile( (String) predicateDescr.getContent(), analysis, null, null, context );
-
+
+ final Serializable expr = ((MVELDialect) context.getDialect()).compile( (String) predicateDescr.getContent(),
+ analysis,
+ null,
+ null,
+ null,
+ context );
+
predicate.setPredicateExpression( new MVELPredicateExpression( expr,
factory ) );
} catch ( final Exception e ) {
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -51,23 +51,30 @@
Map previousMap = new HashMap();
for ( int i = 0, length = previousDeclarations.length; i < length; i++ ) {
previousMap.put( previousDeclarations[i].getIdentifier(),
- previousDeclarations[i] );
+ previousDeclarations[i] );
}
Map localMap = new HashMap();
for ( int i = 0, length = localDeclarations.length; i < length; i++ ) {
localMap.put( localDeclarations[i].getIdentifier(),
- localDeclarations[i] );
- }
-
- final DroolsMVELFactory factory = new DroolsMVELFactory(previousMap, localMap, context.getPkg().getGlobals() );
-
+ localDeclarations[i] );
+ }
+
+ final DroolsMVELFactory factory = new DroolsMVELFactory( previousMap,
+ localMap,
+ context.getPkg().getGlobals() );
+
Dialect.AnalysisResult analysis = context.getDialect().analyzeExpression( context,
returnValueRestrictionDescr,
returnValueRestrictionDescr.getContent() );
-
- final Serializable expr = ((MVELDialect) context.getDialect()).compile( (String) returnValueRestrictionDescr.getContent(), analysis, null, null, context );
-
+
+ final Serializable expr = ((MVELDialect) context.getDialect()).compile( (String) returnValueRestrictionDescr.getContent(),
+ analysis,
+ null,
+ null,
+ null,
+ context );
+
returnValueRestriction.setReturnValueExpression( new MVELReturnValueExpression( expr,
factory ) );
}
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilder.java 2008-01-09 17:06:54 UTC (rev 17654)
@@ -38,6 +38,7 @@
analysis,
null,
null,
+ null,
context );
MVELSalienceExpression salience = new MVELSalienceExpression( expr,
Modified: labs/jbossrules/branches/4.0.x/pom.xml
===================================================================
--- labs/jbossrules/branches/4.0.x/pom.xml 2008-01-09 14:55:40 UTC (rev 17653)
+++ labs/jbossrules/branches/4.0.x/pom.xml 2008-01-09 17:06:54 UTC (rev 17654)
@@ -734,7 +734,7 @@
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel14</artifactId>
- <version>1.2.10</version>
+ <version>1.2.20</version>
</dependency>
<!-- drools-compiler -->
More information about the jboss-svn-commits
mailing list