I have created a plugin to contain the core Drools jars and
dependencies, and this plugin is then used by my RCP. This works, a
couple rules fire correctly, etc. Now I want to set up a testing
framework (JUnit4) and have the following code, which causes an
Invalid signature file error. My core plugin was created in Eclipse
simply by wrapping the Drools jars and dependencies, and as I said,
the RCP itself works. Any assistance is greatly appreciated.
- Mike
@BeforeClass
public static void setUp() throws Exception {
Reader source;
final PackageBuilder builder = new PackageBuilder();
boolean exists = (new File("rules/GlucoseDroolRules00.drl")).exists();
if (exists) {
builder.addPackageFromDrl(new FileReader(
"rules/GlucoseDroolRules00.drl"));
} else {
System.out.println("Cannot locate the file - will try as resource");
source = new InputStreamReader(AllDroolsRulesTests.class
.getResourceAsStream("rules/GlucoseDroolRules00.drl"));
builder.addPackageFromDrl(source);
}
if (builder.hasErrors()) {
System.out.println(builder.getErrors().toString());
}
Package pkg = builder.getPackage();
ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
}
The code dies in the line instantiating the PackageBuilder builder:
java.lang.SecurityException: Invalid signature file digest for
Manifest main attributes
at
sun
.security
.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:221)
at
sun
.security
.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:233)
at java.util.jar.JarVerifier.update(JarVerifier.java:188)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:325)
at java.util.jar.JarFile.getInputStream(JarFile.java:390)
at
sun
.net
.www
.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:136)
at java.net.URL.openStream(URL.java:1007)
at
org
.drools.util.ChainedProperties.loadProperties(ChainedProperties.java:
245)
at
org
.drools.util.ChainedProperties.loadProperties(ChainedProperties.java:
216)
at org.drools.util.ChainedProperties.<init>(ChainedProperties.java:123)
at org.drools.util.ChainedProperties.<init>(ChainedProperties.java:31)
at
org
.drools
.compiler
.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:108)
at
org
.drools
.compiler
.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:94)
at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:124)
at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:86)
at
droolsRules.tests.AllDroolsRulesTests.setUp(AllDroolsRulesTests.java:37)
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)