Janno has no configurations as such, so it should work. If it doesn't
work I'm guessing it's a bug with Janino. You could probably recreate
the issue outside of Drools and submit a bug to the Janino author.
Mark
Joe White wrote:
According to the Janino Jira in
http://jira.codehaus.org/browse/JANINO-72 autoboxing was supported in
version 2.5.6. It looks like drools 4.0.4 uses Janino 2.5.10. The test
below uses a DRL file that would require autoboxing and it produces a
runtime exception from Janino. Does anybody know of a way to make a
Janino/Drools Autoboxing combination work? I have to use autoboxing
and I would very much prefer to use Janino over MVEL for drl compilation.
Thanks for your help,
Joe
The information below includes the stack trace, the Input java file,
the DRL, and a snippet for the drools setup and execution. The
exception is easy to produce and the info below should be enough to
reproduce it.
/********************INPUT JAVA OBJECT *******************************/
*package* com.sample;
*public* *class* Input {
*public* Double valOne;
*public* Double valTwo;
*public* Double getValOne() {
*return* valOne;
}
*public* *void* setValOne(Double valOne) {
*this*.valOne = valOne;
}
*public* Double getValTwo() {
*return* valTwo;
}
*public* *void* setValTwo(Double valTwo) {
*this*.valTwo = valTwo;
}
}
/********************END *******************************/
/********************DRL *******************************/
*package* test;
*import* com.sample.Input
*dialect* "java"
*rule* "test 293"
*when*
inputVal : Input()
*then*
//double valOne = 0;
*double* deductibleapplied =inputVal.valOne*inputVal.valTwo;
*end*
/********************END *******************************/
/********************DROOLS SETUP *******************************/
...
PackageBuilderConfiguration pkgBuilderCfg = *new*
PackageBuilderConfiguration();
JavaDialectConfiguration javaConf = (JavaDialectConfiguration)
pkgBuilderCfg.getDialectConfiguration( "java" );
javaConf.setCompiler( JavaDialectConfiguration./JANINO/ );
PackageBuilder builder = *new* PackageBuilder(pkgBuilderCfg);
...
Input input = *new* Input();
input.setValOne(10.0);
input.setValTwo(1000.0);
workingMemory.insert( input );
workingMemory.fireAllRules();
/********************END *******************************/
/******************** STACK TRACE *******************************/
_java.lang.RuntimeException_: SNO: Conversion failed
at
org.codehaus.janino.UnitCompiler.binaryNumericPromotion(UnitCompiler.java)
at
org.codehaus.janino.UnitCompiler.compileArithmeticOperation(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.access$39(UnitCompiler.java)
at
org.codehaus.janino.UnitCompiler$7.visitBinaryOperation(UnitCompiler.java)
at org.codehaus.janino.Java$BinaryOperation.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java)
at
org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.access$12(UnitCompiler.java)
at
org.codehaus.janino.UnitCompiler$2.visitLocalVariableDeclarationStatement(UnitCompiler.java)
at
org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.access$3(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler$2.visitBlock(UnitCompiler.java)
at org.codehaus.janino.Java$Block.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at
org.codehaus.janino.UnitCompiler$1.visitPackageMemberClassDeclaration(UnitCompiler.java)
at
org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java)
at org.codehaus.janino.Compiler.compile(Compiler.java)
at
org.drools.commons.jci.compilers.JaninoJavaCompiler.compile(_JaninoJavaCompiler.java:174_)
at
org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(_AbstractJavaCompiler.java:51_)
at
org.drools.rule.builder.dialect.java.JavaDialect.compileAll(_JavaDialect.java:332_)
at
org.drools.compiler.DialectRegistry.compileAll(_DialectRegistry.java:60_)
at
org.drools.compiler.PackageBuilder.addPackage(_PackageBuilder.java:308_)
at
org.drools.compiler.PackageBuilder.addPackageFromDrl(_PackageBuilder.java:167_)
at com.sample.SimpleTester.readRule(_SimpleTester.java:62_)
at com.sample.SimpleTester.main(_SimpleTester.java:23_)
------------------------------------------------------------------------
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users