Guys,
has anybody had any issues trying to run their drools unit tests from
eclipse with drools 2.5 beta 2. Everything seems to work well with 2.1 but I
get the following with 2.5 beta 2:
java.lang.NoClassDefFoundError:
org/eclipse/jdt/internal/compiler/env/INameEnvironment
at org.apache.commons.jci.compilers.JavaCompilerFactory.createCompiler(
JavaCompilerFactory.java:82)
at org.drools.semantics.java.JavaSemanticFunctionsCompiler.getInstance(
JavaSemanticFunctionsCompiler.java:27)
at org.drools.semantics.java.JavaFunctions.getSemanticFunctionsCompiler(
JavaFunctions.java:101)
at org.drools.smf.RuleSetCompiler.compile(RuleSetCompiler.java:166)
at org.drools.smf.RuleSetCompiler.<init>(RuleSetCompiler.java:67)
at org.drools.io.RuleSetLoader.addFromInputSource(RuleSetLoader.java:169)
at org.drools.io.RuleSetLoader.addFromUrl(RuleSetLoader.java:68)
at org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:529)
at org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:494)
at org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:479)
This seems to be because it's trying to pick up the Eclipse compiler instead
of the janino one which is on the classpath because of the following:
public class JavaSemanticFunctionsCompiler extends AbstractSemanticCompiler
implements
SemanticFunctionsCompiler
{
private static SemanticFunctionsCompiler INSTANCE;
private final String semanticType;
public static SemanticFunctionsCompiler getInstance()
{
if ( JavaSemanticFunctionsCompiler.INSTANCE == null )
{
JavaSemanticFunctionsCompiler.INSTANCE = new
JavaSemanticFunctionsCompiler( "java",
JavaCompilerFactory.getInstance().createCompiler(
JavaCompilerFactory.ECLIPSE ) );
}
return JavaSemanticFunctionsCompiler.INSTANCE;
}
INSTANCE seems to be always null when running from JUnit. Everything works
ok when I run the cactus tests against the deployed app running under JBoss
4.0.4
Do I have to configure something else when running straight JUnit tests?