<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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.<div><br class="webkit-block-placeholder"></div><div>- Mike<br><div><br class="webkit-block-placeholder"></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(100, 100, 100); "><font class="Apple-style-span" color="#000000"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(100, 100, 100); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>@BeforeClass</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #7f0055">public</span> <span style="color: #7f0055">static</span> <span style="color: #7f0055">void</span> setUp() <span style="color: #7f0055">throws</span> Exception {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>Reader source;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7f0055">final</span> PackageBuilder builder = <span style="color: #7f0055">new</span> PackageBuilder();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7f0055">boolean</span> exists = (<span style="color: #7f0055">new</span> File(<span style="color: #2a00ff">"rules/GlucoseDroolRules00.drl"</span>)).exists();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7f0055">if</span> (exists) {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span>builder.addPackageFromDrl(<span style="color: #7f0055">new</span> FileReader(</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(42, 0, 255); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                                        </span></span>"rules/GlucoseDroolRules00.drl"<span style="color: #000000">));</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>} <span style="color: #7f0055">else</span> {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(42, 0, 255); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                        </span>System.</span><span style="color: #0000c0">out</span><span style="color: #000000">.println(</span>"Cannot locate the file - will try as resource"<span style="color: #000000">);</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span>source = <span style="color: #7f0055">new</span> InputStreamReader(AllDroolsRulesTests.<span style="color: #7f0055">class</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(42, 0, 255); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                                        </span>.getResourceAsStream(</span>"rules/GlucoseDroolRules00.drl"<span style="color: #000000">));</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span>builder.addPackageFromDrl(source);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7f0055">if</span> (builder.hasErrors()) {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span>System.<span style="color: #0000c0">out</span>.println(builder.getErrors().toString());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>Package pkg = builder.getPackage();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #0000c0">ruleBase</span> = RuleBaseFactory.newRuleBase();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #0000c0">ruleBase</span>.addPackage(pkg);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span>}</div></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br class="webkit-block-placeholder"></span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;">The code dies in the line instantiating the PackageBuilder builder:</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br class="webkit-block-placeholder"></span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;"><div>java.lang.SecurityException: Invalid signature file digest for Manifest main attributes</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:221)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.util.jar.JarVerifier.processEntry(JarVerifier.java:233)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.util.jar.JarVerifier.update(JarVerifier.java:188)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.util.jar.JarFile.initializeVerifier(JarFile.java:325)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.util.jar.JarFile.getInputStream(JarFile.java:390)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.net.<a href="http://www.protocol.jar.JarURLConnection.getInputStream">www.protocol.jar.JarURLConnection.getInputStream</a>(JarURLConnection.java:136)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.net.URL.openStream(URL.java:1007)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.util.ChainedProperties.loadProperties(ChainedProperties.java:245)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.util.ChainedProperties.loadProperties(ChainedProperties.java:216)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.util.ChainedProperties.<init>(ChainedProperties.java:123)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.util.ChainedProperties.<init>(ChainedProperties.java:31)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:108)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:94)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:124)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:86)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at droolsRules.tests.AllDroolsRulesTests.setUp(AllDroolsRulesTests.java:37)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.lang.reflect.Method.invoke(Method.java:585)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)</div><div><br class="webkit-block-placeholder"></div></span></font></div>
</div></div></body></html>