You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-dev@jakarta.apache.org by jr...@apache.org on 2003/01/02 16:38:48 UTC
cvs commit: jakarta-cactus/Eclipse-Plugin JUnit2.1.0Patch.txt
jruaux 2003/01/02 07:38:48
Added: Eclipse-Plugin JUnit2.1.0Patch.txt
Log:
Patch for the JUnit plugin with extension points.
Revision Changes Path
1.1 jakarta-cactus/Eclipse-Plugin/JUnit2.1.0Patch.txt
Index: JUnit2.1.0Patch.txt
===================================================================
Index: plugin.properties
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.junit/plugin.properties,v
retrieving revision 1.11
diff -u -r1.11 plugin.properties
--- plugin.properties 28 May 2002 08:36:22 -0000 1.11
+++ plugin.properties 2 Jan 2003 15:12:05 -0000
@@ -15,3 +15,4 @@
TestSuiteWizard.name= TestSuite
JUnitShortcut.label=JUnit Test
+TestRunListener.name= TestRun Listeners
\ No newline at end of file
Index: plugin.xml
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.junit/plugin.xml,v
retrieving revision 1.35
diff -u -r1.35 plugin.xml
--- plugin.xml 12 Dec 2002 11:46:25 -0000 1.35
+++ plugin.xml 2 Jan 2003 15:12:05 -0000
@@ -1,185 +1,210 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<plugin
- id="org.eclipse.jdt.junit"
- name="%pluginName"
- version="2.1.0"
- class="org.eclipse.jdt.internal.junit.ui.JUnitPlugin"
- provider-name="%providerName">
-
- <requires>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.core.boot"/>
- <import plugin="org.eclipse.debug.core"/>
- <import plugin="org.eclipse.debug.ui"/>
- <import plugin="org.eclipse.jdt.core"/>
- <import plugin="org.eclipse.jdt.ui"/>
- <import plugin="org.eclipse.jdt.debug"/>
- <import plugin="org.eclipse.swt"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.jdt.launching"/>
- <import plugin="org.eclipse.jdt.debug.ui"/>
- <import plugin="org.junit"/>
- </requires>
-
- <runtime>
- <library name="junitsupport.jar">
- <export name="*"/>
- <packages prefixes="org.eclipse.jdt.internal.junit"/>
- </library>
- </runtime>
-
- <extension
- point="org.eclipse.ui.views">
- <view
- name="%View.label"
- icon="icons/full/cview16/junit.gif"
- category="org.eclipse.jdt.ui.java"
- class="org.eclipse.jdt.internal.junit.ui.TestRunnerViewPart"
- id="org.eclipse.jdt.junit.ResultView"
- fastViewWidthRatio="0.40">
- </view>
- </extension>
-
- <extension
- point="org.eclipse.ui.perspectiveExtensions">
- <perspectiveExtension
- targetID="org.eclipse.jdt.ui.JavaPerspective">
- <view id="org.eclipse.jdt.junit.ResultView"
- relative="org.eclipse.jdt.ui.PackageExplorer"
- visible="false"
- relationship="stack"/>
- </perspectiveExtension>
- <perspectiveExtension
- targetID="org.eclipse.jdt.ui.JavaPerspective">
- <actionSet id="org.eclipse.jdt.junit.JUnitActionSet"/>
- </perspectiveExtension>
- <perspectiveExtension
- targetID="org.eclipse.jdt.ui.JavaBrowsingPerspective">
- <actionSet id="org.eclipse.jdt.junit.JUnitActionSet"/>
- </perspectiveExtension>
- </extension>
-
- <extension
- point="org.eclipse.ui.preferencePages">
- <page name="%PreferencePage.label"
- id="org.eclipse.jdt.junit.preferences"
- class="org.eclipse.jdt.internal.junit.ui.JUnitPreferencePage"
- category= "org.eclipse.jdt.ui.preferences.JavaBasePreferencePage">
- </page>
- </extension>
-
- <extension point = "org.eclipse.debug.core.launchConfigurationTypes">
- <launchConfigurationType
- id="org.eclipse.jdt.junit.launchconfig"
- name="%Launch.label"
- delegate="org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfiguration"
- modes= "run, debug">
- <fileExtension
- extension="java"
- default="false"/>
- <fileExtension
- extension="class"
- default="false"/>
- </launchConfigurationType>
- </extension>
-
- <extension point = "org.eclipse.debug.core.launchConfigurationComparators">
- <launchConfigurationComparator
- id = "org.eclipse.jdt.junit.containerComparator"
- class = "org.eclipse.jdt.internal.junit.launcher.ContainerComparator"
- attribute = "org.eclipse.jdt.junit.CONTAINER"/>
- </extension>
-
- <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
- <launchConfigurationTypeImage
- id="org.eclipse.jdt.junit.launchimage"
- configTypeID="org.eclipse.jdt.junit.launchconfig"
- icon="icons/full/obj16/julaunch.gif">
- </launchConfigurationTypeImage>
- </extension>
-
- <extension point = "org.eclipse.debug.ui.launchConfigurationTabGroups">
- <launchConfigurationTabGroup
- id="org.eclipse.jdt.junit.launchConfigurationTabGroup.junit"
- type ="org.eclipse.jdt.junit.launchconfig"
- class="org.eclipse.jdt.internal.junit.launcher.JUnitTabGroup">
- </launchConfigurationTabGroup>
- </extension>
-
- <extension point="org.eclipse.ui.newWizards">
- <category
- id = "org.eclipse.jdt.junit"
- parentCategory="org.eclipse.jdt.ui.java"
- name="%WizardCategory.name">
- </category>
- <wizard
- id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard"
- name="%TestCaseWizard.name"
- class="org.eclipse.jdt.internal.junit.wizards.NewTestCaseCreationWizard"
- category="org.eclipse.jdt.ui.java/org.eclipse.jdt.junit"
- icon="icons/full/ctool16/new_testcase.gif">
- <description>%TestWizard.description</description>
- </wizard>
- <wizard
- id="org.eclipse.jdt.junit.wizards.NewTestSuiteCreationWizard"
- name="%TestSuiteWizard.name"
- class="org.eclipse.jdt.internal.junit.wizards.NewTestSuiteCreationWizard"
- category="org.eclipse.jdt.ui.java/org.eclipse.jdt.junit"
- icon="icons/full/ctool16/new_testsuite.gif">
- <description>%SuiteWizard.description</description>
- </wizard>
- </extension>
-
- <extension point="org.eclipse.ui.popupMenus">
- <objectContribution
- id="org.eclipse.jdt.junit.wizards.UpdateTestSuite"
- objectClass="org.eclipse.jdt.core.ICompilationUnit"
- nameFilter="AllTests.java">
- <action
- id="updateTestSuite"
- label="%UpdateSuiteAction.label"
- tooltip="%UpdateSuiteAction.tooltip"
- enablesFor="1"
- class="org.eclipse.jdt.internal.junit.wizards.UpdateTestSuite">
- </action>
- </objectContribution>
- </extension>
-
- <extension point="org.eclipse.ui.actionSets">
- <actionSet
+ id="org.eclipse.jdt.junit"
+ name="%pluginName"
+ version="2.1.0.1"
+ provider-name="%providerName"
+ class="org.eclipse.jdt.internal.junit.ui.JUnitPlugin">
+
+ <runtime>
+ <library name="junitsupport.jar">
+ <export name="*"/>
+ </library>
+ </runtime>
+ <requires>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.core.boot"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jdt.ui"/>
+ <import plugin="org.eclipse.jdt.debug"/>
+ <import plugin="org.eclipse.swt"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.jdt.debug.ui"/>
+ <import plugin="org.junit"/>
+ </requires>
+
+
+ <extension-point id="testRunListeners" name="%TestRunListener.name" schema="schema/org.eclipse.jdt.junit.testRunListeners.exsd"/>
+
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ name="%View.label"
+ icon="icons/full/cview16/junit.gif"
+ fastViewWidthRatio="0.40"
+ category="org.eclipse.jdt.ui.java"
+ class="org.eclipse.jdt.internal.junit.ui.TestRunnerViewPart"
+ id="org.eclipse.jdt.junit.ResultView">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID="org.eclipse.jdt.ui.JavaPerspective">
+ <view
+ relative="org.eclipse.jdt.ui.PackageExplorer"
+ visible="false"
+ relationship="stack"
+ id="org.eclipse.jdt.junit.ResultView">
+ </view>
+ </perspectiveExtension>
+ <perspectiveExtension
+ targetID="org.eclipse.jdt.ui.JavaPerspective">
+ <actionSet
+ id="org.eclipse.jdt.junit.JUnitActionSet">
+ </actionSet>
+ </perspectiveExtension>
+ <perspectiveExtension
+ targetID="org.eclipse.jdt.ui.JavaBrowsingPerspective">
+ <actionSet
+ id="org.eclipse.jdt.junit.JUnitActionSet">
+ </actionSet>
+ </perspectiveExtension>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ name="%PreferencePage.label"
+ category="org.eclipse.jdt.ui.preferences.JavaBasePreferencePage"
+ class="org.eclipse.jdt.internal.junit.ui.JUnitPreferencePage"
+ id="org.eclipse.jdt.junit.preferences">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.debug.core.launchConfigurationTypes">
+ <launchConfigurationType
+ name="%Launch.label"
+ delegate="org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfiguration"
+ modes="run, debug"
+ id="org.eclipse.jdt.junit.launchconfig">
+ <fileExtension
+ default="false"
+ extension="java">
+ </fileExtension>
+ <fileExtension
+ default="false"
+ extension="class">
+ </fileExtension>
+ </launchConfigurationType>
+ </extension>
+ <extension
+ point="org.eclipse.debug.core.launchConfigurationComparators">
+ <launchConfigurationComparator
+ attribute="org.eclipse.jdt.junit.CONTAINER"
+ class="org.eclipse.jdt.internal.junit.launcher.ContainerComparator"
+ id="org.eclipse.jdt.junit.containerComparator">
+ </launchConfigurationComparator>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchConfigurationTypeImages">
+ <launchConfigurationTypeImage
+ icon="icons/full/obj16/julaunch.gif"
+ configTypeID="org.eclipse.jdt.junit.launchconfig"
+ id="org.eclipse.jdt.junit.launchimage">
+ </launchConfigurationTypeImage>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchConfigurationTabGroups">
+ <launchConfigurationTabGroup
+ type="org.eclipse.jdt.junit.launchconfig"
+ class="org.eclipse.jdt.internal.junit.launcher.JUnitTabGroup"
+ id="org.eclipse.jdt.junit.launchConfigurationTabGroup.junit">
+ </launchConfigurationTabGroup>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ name="%WizardCategory.name"
+ parentCategory="org.eclipse.jdt.ui.java"
+ id="org.eclipse.jdt.junit">
+ </category>
+ <wizard
+ name="%TestCaseWizard.name"
+ icon="icons/full/ctool16/new_testcase.gif"
+ category="org.eclipse.jdt.ui.java/org.eclipse.jdt.junit"
+ class="org.eclipse.jdt.internal.junit.wizards.NewTestCaseCreationWizard"
+ id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard">
+ <description>
+ %TestWizard.description
+ </description>
+ </wizard>
+ <wizard
+ name="%TestSuiteWizard.name"
+ icon="icons/full/ctool16/new_testsuite.gif"
+ category="org.eclipse.jdt.ui.java/org.eclipse.jdt.junit"
+ class="org.eclipse.jdt.internal.junit.wizards.NewTestSuiteCreationWizard"
+ id="org.eclipse.jdt.junit.wizards.NewTestSuiteCreationWizard">
+ <description>
+ %SuiteWizard.description
+ </description>
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ objectClass="org.eclipse.jdt.core.ICompilationUnit"
+ nameFilter="AllTests.java"
+ id="org.eclipse.jdt.junit.wizards.UpdateTestSuite">
+ <action
+ label="%UpdateSuiteAction.label"
+ tooltip="%UpdateSuiteAction.tooltip"
+ class="org.eclipse.jdt.internal.junit.wizards.UpdateTestSuite"
+ enablesFor="1"
+ id="updateTestSuite">
+ </action>
+ </objectContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.actionSets">
+ <actionSet
label="JUnit"
visible="false"
id="org.eclipse.jdt.junit.JUnitActionSet">
- <action
- label="Referring Tests..."
- tooltip="Go to Test Referring to Selection"
- class="org.eclipse.jdt.internal.junit.ui.GotoReferencedTestAction"
- menubarPath="navigate/goTo/"
- id="junit.actions.GotoTestAction">
- </action>
- </actionSet>
- </extension>
-
-
- <extension id="junit_task" point="org.eclipse.core.resources.markers" name="%Task.name">
- <super type="org.eclipse.core.resources.taskmarker"/>
- <persistent value="true"/>
- </extension>
-
- <extension point = "org.eclipse.debug.ui.launchShortcuts">
- <shortcut
- id="org.eclipse.jdt.junit.junitShortcut"
- class="org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut"
- label="%JUnitShortcut.label"
- icon="icons/full/obj16/julaunch.gif"
- modes="run, debug">
- <perspective id="org.eclipse.jdt.ui.JavaPerspective"/>
- <perspective id="org.eclipse.jdt.ui.JavaHierarchyPerspective"/>
- <perspective id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
- <perspective id="org.eclipse.debug.ui.DebugPerspective"/>
- </shortcut>
- </extension>
+ <action
+ label="Referring Tests..."
+ tooltip="Go to Test Referring to Selection"
+ class="org.eclipse.jdt.internal.junit.ui.GotoReferencedTestAction"
+ menubarPath="navigate/goTo/"
+ id="junit.actions.GotoTestAction">
+ </action>
+ </actionSet>
+ </extension>
+ <extension
+ id="junit_task"
+ name="%Task.name"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.core.resources.taskmarker">
+ </super>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchShortcuts">
+ <shortcut
+ label="%JUnitShortcut.label"
+ icon="icons/full/obj16/julaunch.gif"
+ modes="run, debug"
+ class="org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut"
+ id="org.eclipse.jdt.junit.junitShortcut">
+ <perspective
+ id="org.eclipse.jdt.ui.JavaPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.jdt.ui.JavaHierarchyPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.jdt.ui.JavaBrowsingPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.debug.ui.DebugPerspective">
+ </perspective>
+ </shortcut>
+ </extension>
-</plugin>
\ No newline at end of file
+</plugin>
Index: doc/org.eclipse.jdt.junit.testRunListeners.html
===================================================================
RCS file: doc/org.eclipse.jdt.junit.testRunListeners.html
diff -N doc/org.eclipse.jdt.junit.testRunListeners.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ doc/org.eclipse.jdt.junit.testRunListeners.html 2 Jan 2003 15:12:06 -0000
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
+<HTML>
+<BODY>
+<H1><CENTER>TestRun Listeners</CENTER></H1>
+<H2>Identifier</H2>
+org.eclipse.jdt.junit.org.eclipse.jdt.junit.testRunListeners<H2>Description</H2>
+This extension point is used to plug in TestRun listeners.<H2>Markup</H2>
+<p><samp> <!ELEMENT extension (testRunListener*)></samp>
+<br><samp> <!ATTLIST extension</samp>
+<br><samp> point CDATA #REQUIRED</samp>
+<br><samp> id CDATA #IMPLIED</samp>
+<br><samp> name CDATA #IMPLIED</samp>
+<br><samp> ></samp>
+<ul>
+<li><b>point</b> - </li><li><b>id</b> - </li><li><b>name</b> - </li></ul>
+<p><samp> <!ELEMENT testRunListener EMPTY></samp>
+<br><samp> <!ATTLIST testRunListener</samp>
+<br><samp> class CDATA #REQUIRED</samp>
+<br><samp> ></samp>
+<ul>
+<li><b>class</b> - a fully qualified name of the Java class that implements <samp>org.eclipse.jdt.internal.junit.runner.ITestRunListener</samp> interface</li></ul>
+<H2>Example</H2>
+The following is an example of the extension point usage:
+
+<p>
+<pre>
+ <extension point="org.eclipse.jdt.junit.testRunListeners">
+ <testRunListener class="com.example.SampleTestRunListener"/>
+ </extension>
+ </pre>
+</p><H2>API Information</H2>
+Plug-ins that want to extend this extension point must implement <samp>org.eclipse.jdt.internal.junit.runner.ITestRunListener</samp> interface<H2>Supplied Implementation</H2>
+[Enter information about supplied implementation of this extension point.]</BODY>
+</HTML>
Index: src/org/eclipse/jdt/internal/junit/ui/JUnitPlugin.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/JUnitPlugin.java,v
retrieving revision 1.15
diff -u -r1.15 JUnitPlugin.java
--- src/org/eclipse/jdt/internal/junit/ui/JUnitPlugin.java 15 Dec 2002 19:57:32 -0000 1.15
+++ src/org/eclipse/jdt/internal/junit/ui/JUnitPlugin.java 2 Jan 2003 15:12:06 -0000
@@ -12,13 +12,18 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.Vector;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IPluginDescriptor;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
@@ -33,6 +38,7 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.internal.junit.launcher.JUnitBaseLaunchConfiguration;
+import org.eclipse.jdt.internal.junit.runner.ITestRunListener;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -70,7 +76,19 @@
* Once a test runner is connected it is removed from the set.
*/
private AbstractSet fTrackedLaunches= new HashSet(20);
-
+
+
+ /**
+ * Identifier for 'testRunListeners' extension point
+ */
+ public static final String ID_EXTENSION_POINT_TESTRUN_LISTENERS =
+ PLUGIN_ID + "." + "testRunListeners";
+
+ /**
+ * Vector containing the TestRun listeners
+ */
+ private Vector testRunListeners = null;
+
public JUnitPlugin(IPluginDescriptor desc) {
super(desc);
fgPlugin= this;
@@ -308,5 +326,61 @@
dialog.setIgnoreCase(false);
dialog.setElements(packageList.toArray()); // XXX inefficient
return dialog;
+ }
+
+ /**
+ * Initializes TestRun Listener extensions
+ */
+ private void loadTestRunListeners() {
+ testRunListeners = new Vector();
+ IExtensionPoint extensionPoint =
+ Platform.getPluginRegistry().getExtensionPoint(
+ ID_EXTENSION_POINT_TESTRUN_LISTENERS);
+ if (extensionPoint == null) {
+ return;
+ }
+ IConfigurationElement[] configs =
+ extensionPoint.getConfigurationElements();
+ MultiStatus status =
+ new MultiStatus(
+ PLUGIN_ID,
+ IStatus.OK,
+ JUnitMessages.getString(
+ "JUnitPlugin.Exception_occurred_reading_testRunListener_extensions"),
+ null);
+ for (int i = 0; i < configs.length; i++) {
+ try {
+ ITestRunListener testRunListener =
+ (ITestRunListener) configs[i].createExecutableExtension(
+ "class");
+ testRunListeners.add(testRunListener);
+ } catch (CoreException e) {
+ status.add(e.getStatus());
+ }
+ }
+ if (!status.isOK()) {
+ JUnitPlugin.log(status);
+ }
+ }
+
+ /**
+ * Returns an array of all TestRun listeners
+ */
+ public Vector getTestRunListeners() {
+ if (testRunListeners == null) {
+ loadTestRunListeners();
+ }
+ return testRunListeners;
+ }
+
+ /**
+ * Adds a TestRun listener to the collection of listeners
+ */
+ public void addTestRunListener(ITestRunListener newListener) {
+ // load TestRun listeners from the extension point registry
+ if (testRunListeners == null) {
+ loadTestRunListeners();
+ }
+ testRunListeners.add(newListener);
}
}
Index: src/org/eclipse/jdt/internal/junit/ui/RemoteTestRunnerClient.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/RemoteTestRunnerClient.java,v
retrieving revision 1.3
diff -u -r1.3 RemoteTestRunnerClient.java
--- src/org/eclipse/jdt/internal/junit/ui/RemoteTestRunnerClient.java 13 Apr 2002 23:43:08 -0000 1.3
+++ src/org/eclipse/jdt/internal/junit/ui/RemoteTestRunnerClient.java 2 Jan 2003 15:12:06 -0000
@@ -21,9 +21,10 @@
*/
public class RemoteTestRunnerClient {
/**
- * A listener that is informed about test events.
+ * An array of listeners that are informed about test events.
*/
- private ITestRunListener fListener;
+ private ITestRunListener[] fListeners;
+
/**
* The server socket
*/
@@ -91,7 +92,9 @@
while(fBufferedReader != null && (message= readMessage(fBufferedReader)) != null)
receiveMessage(message);
} catch (SocketException e) {
- fListener.testRunTerminated();
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testRunTerminated();
+ }
} catch (IOException e) {
System.out.println(e);
// fall through
@@ -104,11 +107,13 @@
* Start listening to a test run. Start a server connection that
* the RemoteTestRunner can connect to.
*/
- public synchronized void startListening(ITestRunListener listener, int port) {
- fListener= listener;
- fPort= port;
- ServerConnection connection= new ServerConnection(port);
- connection.start();
+ public synchronized void startListening(
+ ITestRunListener[] listeners,
+ int port) {
+ fListeners = listeners;
+ fPort = port;
+ ServerConnection connection = new ServerConnection(port);
+ connection.start();
}
/**
@@ -177,9 +182,16 @@
return;
}
if (message.startsWith(MessageIds.TRACE_END)) {
- fInReadTrace= false;
- fListener.testFailed(fFailureKind, fFailedTest, fFailedTrace);
- fFailedTrace= ""; //$NON-NLS-1$
+ fInReadTrace = false;
+
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testFailed(
+ fFailureKind,
+ fFailedTest,
+ fFailedTrace);
+ }
+
+ fFailedTrace = ""; //$NON-NLS-1$
return;
}
if (fInReadTrace) {
@@ -203,16 +215,22 @@
String arg= message.substring(MessageIds.MSG_HEADER_LENGTH);
if (message.startsWith(MessageIds.TEST_RUN_START)) {
- int count= Integer.parseInt(arg);
- fListener.testRunStarted(count);
+ int count = Integer.parseInt(arg);
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testRunStarted(count);
+ }
return;
}
if (message.startsWith(MessageIds.TEST_START)) {
- fListener.testStarted(arg);
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testStarted(arg);
+ }
return;
}
if (message.startsWith(MessageIds.TEST_END)) {
- fListener.testEnded(arg);
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testEnded(arg);
+ }
return;
}
if (message.startsWith(MessageIds.TEST_ERROR)) {
@@ -226,18 +244,25 @@
return;
}
if (message.startsWith(MessageIds.TEST_RUN_END)) {
- long elapsedTime= Long.parseLong(arg);
- fListener.testRunEnded(elapsedTime);
+ long elapsedTime = Long.parseLong(arg);
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testRunEnded(elapsedTime);
+ }
return;
}
if (message.startsWith(MessageIds.TEST_STOPPED)) {
- long elapsedTime= Long.parseLong(arg);
- fListener.testRunStopped(elapsedTime);
+ long elapsedTime = Long.parseLong(arg);
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testRunStopped(elapsedTime);
+ }
+
shutDown();
return;
}
if (message.startsWith(MessageIds.TEST_TREE)) {
- fListener.testTreeEntry(arg);
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testTreeEntry(arg);
+ }
return;
}
if (message.startsWith(MessageIds.TEST_RERAN)) {
@@ -256,8 +281,11 @@
String trace= ""; //$NON-NLS-1$
if (statusCode != ITestRunListener.STATUS_OK)
- trace= fFailedRerunTrace; // assumption a rerun trace was sent before
- fListener.testReran(className, testName, statusCode, trace);
+ trace = fFailedRerunTrace;
+ // assumption a rerun trace was sent before
+ for (int i = 0; i < fListeners.length; i++) {
+ fListeners[i].testReran(className, testName, statusCode, trace);
+ }
}
}
}
Index: src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java,v
retrieving revision 1.23
diff -u -r1.23 TestRunnerViewPart.java
--- src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java 17 Dec 2002 20:48:21 -0000 1.23
+++ src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java 2 Jan 2003 15:12:06 -0000
@@ -459,7 +459,13 @@
stopTest();
}
fTestRunnerClient= new RemoteTestRunnerClient();
- fTestRunnerClient.startListening(this, port);
+ Vector listeners = JUnitPlugin.getDefault().getTestRunListeners();
+ // Construct an array containing the listeners, plus TestRunnerViewPart (this)
+ ITestRunListener[] listenerArray = new ITestRunListener[listeners.size()+1];
+ listeners.copyInto(listenerArray);
+ int lastElementIndex = listenerArray.length-1;
+ listenerArray[lastElementIndex] = this;
+ fTestRunnerClient.startListening(listenerArray, port);
fLastLaunch= launch;
String title= JUnitMessages.getFormattedString("TestRunnerViewPart.title", type.getElementName()); //$NON-NLS-1$
setTitle(title);
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>