Bug 309217 - Rhino debugger implementation is in an API package
-also adding Debug support to JUnit support in e4
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF
index 17524aa..5d92770 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF
@@ -5,5 +5,6 @@
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: junit.framework,
+ org.eclipse.wst.jsdt.debug.rhino.debugger;resolution:=optional,
org.mozilla.javascript
Export-Package: org.eclipse.e4.languages.javascript.junit
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/internal/languages/javascript/junit/DebugUtil.java b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/internal/languages/javascript/junit/DebugUtil.java
new file mode 100644
index 0000000..5eb7257
--- /dev/null
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/internal/languages/javascript/junit/DebugUtil.java
@@ -0,0 +1,18 @@
+package org.eclipse.e4.internal.languages.javascript.junit;
+
+import org.eclipse.wst.jsdt.debug.rhino.debugger.RhinoDebugger;
+import org.mozilla.javascript.ContextFactory;
+
+public class DebugUtil {
+
+ public static void debug(String rhinoDebug) {
+ RhinoDebugger debugger = new RhinoDebugger(rhinoDebug);
+ try {
+ debugger.start();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ ContextFactory.getGlobal().addListener(debugger);
+ }
+
+}
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
index b2d6e62..fe8cb00 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
@@ -25,6 +25,7 @@
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
+import org.eclipse.e4.internal.languages.javascript.junit.DebugUtil;
import org.mozilla.javascript.BaseFunction;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
@@ -41,6 +42,19 @@
private ClassLoader originalApplicationClassLoader;
private boolean superRunTest = false;
private static URL ASSERT_SCRIPT = JavaScriptTestCase.class.getResource("assert.js");
+
+ static {
+ String rhinoDebug = System.getProperty("rhino.debug");
+ if ( rhinoDebug != null) {
+ Class<?> c = null;
+ try {
+ Class.forName("org.eclipse.wst.jsdt.debug.rhino.debugger.RhinoDebugger"); //$NON-NLS-1$
+ DebugUtil.debug(rhinoDebug);
+ } catch (ClassNotFoundException e) {
+ }
+ }
+ }
+
public JavaScriptTestCase() {
this(null, null, null, null);