<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. &nbsp;This works, a couple rules fire correctly, etc. &nbsp;Now I want to set up a testing framework (JUnit4) and have the following code, which causes an Invalid signature file error. &nbsp;My core plugin was created in Eclipse simply by wrapping the Drools jars and dependencies, and as I said, the RCP itself works. &nbsp;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.&lt;init&gt;(ChainedProperties.java:123)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.util.ChainedProperties.&lt;init&gt;(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.&lt;init&gt;(PackageBuilderConfiguration.java:94)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.compiler.PackageBuilder.&lt;init&gt;(PackageBuilder.java:124)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at org.drools.compiler.PackageBuilder.&lt;init&gt;(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>