Here is the trace when I add nothing special to the JUnit classpath, showing that the configuration was instantiated in lines 38 - 40, but the crash occurs when instantiating the package builder in line 47. This crash occurs before any effort is made to load a DRL, etc. I get the same identical trace if I add org.drools.eclipse_4.0.3.jar to the classpath, which makes sense to me because this jar is in my IDE environment and should be visible to JUnit. Package configuration is not null java.lang.NullPointerException at org.mvel.optimizers.OptimizerFactory.(OptimizerFactory.java:43) at org.drools.rule.builder.dialect.mvel.MVELDialect.init(MVELDialect.java:142) at org.drools.compiler.DialectRegistry.initAll(DialectRegistry.java:49) at org.drools.compiler.PackageBuilder.(PackageBuilder.java:146) at org.drools.compiler.PackageBuilder.(PackageBuilder.java:108) at droolsRules.tests.AllDroolsRulesTests.setUp(AllDroolsRulesTests.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74) at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) [MVEL] Notice: Possible incorrect version of ASM present (3.0 required). Disabling JIT compiler. Reflective Optimizer will be used. If, on the other hand, I add the plugin that I use in my RCP, "minimal Drools", I get a different trace. My plugin includes * drools-core - the rule engine itself. MVEL included just in case (because of the error I was misinterpreting) * optional packages: o xpp3-1.1.3.4.O, xstream-1.2.2 - for audit feature * drools-compiler - the rule compiler itself. * antlr3-runtime-3.0 * eclipse-jdt-core-3.2.3.v_686_R32x - to compile with eclipse Now the trace shows that the configuration file is not instantiated: org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java' at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:152) at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:140) at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:117) at org.drools.compiler.PackageBuilderConfiguration.(PackageBuilderConfiguration.java:94) at droolsRules.tests.AllDroolsRulesTests.setUp(AllDroolsRulesTests.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74) at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.lang.NullPointerException at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:146) ... 18 more