This commit was manufactured by cvs2svn to create branch 'Debug-M5'.

Sprout from master 2002-04-11 15:05:07 UTC Darin Swanson <darins> 'Bug 13345 - exception in log - after opening/closing projects'
Delete:
    org.eclipse.debug.core/.classpath
    org.eclipse.debug.core/.cvsignore
    org.eclipse.debug.core/.options
    org.eclipse.debug.core/.project
    org.eclipse.debug.core/about.html
    org.eclipse.debug.core/build.properties
    org.eclipse.debug.core/buildnotes_platform-debug.html
    org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/ILauncher.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILauncherDelegate.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
    org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
    org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/Launcher.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ProcessMonitor.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/RuntimeProcess.java
    org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java
    org.eclipse.debug.core/doc/hglegal.htm
    org.eclipse.debug.core/doc/ngibmcpy.gif
    org.eclipse.debug.core/doc/org_eclipse_debug_core.html
    org.eclipse.debug.core/doc/org_eclipse_debug_core_breakpoints.html
    org.eclipse.debug.core/doc/org_eclipse_debug_core_launch_configuration_types.html
    org.eclipse.debug.core/doc/org_eclipse_debug_core_source_locators.html
    org.eclipse.debug.core/doc/org_eclipse_debug_core_status_handlers.html
    org.eclipse.debug.core/plugin.properties
    org.eclipse.debug.core/plugin.xml
    org.eclipse.debug.core/scripts/exportplugin.xml
diff --git a/org.eclipse.debug.core/.classpath b/org.eclipse.debug.core/.classpath
deleted file mode 100644
index 3366e37..0000000
--- a/org.eclipse.debug.core/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="core"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.apache.xerces"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.debug.core/.cvsignore b/org.eclipse.debug.core/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/org.eclipse.debug.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/org.eclipse.debug.core/.options b/org.eclipse.debug.core/.options
deleted file mode 100644
index a3e35f6..0000000
--- a/org.eclipse.debug.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.debug.core/debug=true
\ No newline at end of file
diff --git a/org.eclipse.debug.core/.project b/org.eclipse.debug.core/.project
deleted file mode 100644
index aaf63fd..0000000
--- a/org.eclipse.debug.core/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.debug.core</name>

-	<comment></comment>

-	<projects>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.apache.xerces</project>

-		<project>org.eclipse.core.resources</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.team.cvs.core.cvsnature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.debug.core/about.html b/org.eclipse.debug.core/about.html
deleted file mode 100644
index 768324e..0000000
--- a/org.eclipse.debug.core/about.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>

-<head>

-<title>About</title>

-<style type="text/css">

-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}

-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}

-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}

-code { font-family: "Courier New", Courier, mono; font-size: 10pt}

-sup { font-family: arial,helvetica,geneva; font-size: 10px}

-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}

-li { font-family: arial, helvetica, geneva; font-size: 10pt}

-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}

-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect(   ); margin-top: 5mm; margin-left: 3mm}

-</style>

-</head>

-<body lang="EN-US" link="blue" vlink="purple">

-<table border="0" cellspacing="5" cellpadding="2" width="100%" >

-  <tr> 

-    <td align="LEFT" valign="TOP" colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF">About This Content</font></b></td>

-  </tr>

-  <tr> 

-    <td> 

-<p>11th December, 2001</p>	

-<h3>License</h3>

-<p>Eclipse.org makes available all content in this plug-in &quot;Content&quot;.  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the

-<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a> &quot;CPL&quot;.  For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>

-

-<h3>Contributions</h3>

-

-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise

-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such

-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>

-

-<p>If this Content is licensed to you under license terms and conditions other than the CPL &quot;Other License&quot;, any modifications, enhancements and/or

-other code and/or documentation &quot;Modifications&quot; uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the

-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available

-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also

-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of

-the CPL.</p>

-</td></tr></table>

-</body>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.debug.core/build.properties b/org.eclipse.debug.core/build.properties
deleted file mode 100644
index 2aa514b..0000000
--- a/org.eclipse.debug.core/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = .options,\

-               plugin.xml,\

-               plugin.properties,\

-               *.jar,\

-               about.html

-source.dtcore.jar = core/

diff --git a/org.eclipse.debug.core/buildnotes_platform-debug.html b/org.eclipse.debug.core/buildnotes_platform-debug.html
deleted file mode 100644
index b6f98b2..0000000
--- a/org.eclipse.debug.core/buildnotes_platform-debug.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="Author" content="IBM">

-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">

-   <title>Platform Debug Release Notes</title>

-</head>

-<body>

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-April ??, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12677">12677</a>: Single click launching and F11, Ctrl-F11<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13214">13214</a>: ArrayOutOfBoundException in launch history pref page<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-April 09, 2002

-<h3>

-What's new in this drop</h3>

-<li>A new extension point exists in the debug ui to control the types of launch configurations that can

- be created from the cascading "New run/debug configuration" menu (off the run/debug dropdown menus).

- A type of configuration can be contributed to mulitple perspectives.</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1696">1696</a>: DCR: Perspective specific launcher filtering (1GIYJXH)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11733">11733</a>: duplicate shared config after close & restart<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11899">11899</a>: Launch config name collission<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12658">12658</a>: Single click launching doesn't work if the active editor isn't selected<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12488">12488</a>: Launch config dialog should allow double-click on config type<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11710">11710</a>: Deleting a launch configuration leaves no selection<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12598">12598</a>: Launch config - tab group API inconvenience<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11190">11190</a>: cannot set working directory if it includes a japanese character<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12160">12160</a>: Launch creation/lifecycle<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8772">8772</a>: Infinitely looping stack trace in target pgm locks UI<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12619">12619</a>: Exception during startup.<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10282">10282</a>: Rendering of changed variables<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12310">12310</a>: Need ability to determine if a breakpoint applies to a target<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12981">12981</a>: Launcher - listed name does not match given name<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9825">9825</a>: Action icon inconsistencies<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12891">12891</a>: Several IOExceptions from .log in StreamsProxy.write(StreamsProxy.java:92)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11906">11906</a>: Useless single click launch for classes with no main<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12276">12276</a>: Index out of bounds exception from launch configuration dialog<br>

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-April 2, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12289">12289</a>: Breakpoint should extend platform object<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12548">12548</a>: Debug event filters should use event sets<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12613">12613</a>: Exception when on target workspace when starting eclipse<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-March 28, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11756">11756</a>: Launch config dialog: button sizes<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11923">11923</a>: Console preference page needs reworking<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11880">11880</a>: Launch ConfigurationType property page missing accelerator<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11925">11925</a>: Up/down buttons for launch history restricted to single select<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11457">11457</a>: Launch Configuration Dialog issues<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11702">11702</a>: Launch configuration defaults are set after widgets are initialized<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11330">11330</a>: JavaEnvironmentTab depends on JavaMainTab<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11053">11053</a>: Launch view too optimistic on source lookup<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11982">11982</a>: Logging exceptions<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12339">12339</a>: NPE when i switch to debug perspective<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7609">7609</a>: Attempting to go to a marker that no longer exists<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11326">11326</a>: Restore instead of rebuild launch config index<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11720">11720</a>: Need replacement for #hasChildren<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-March 26, 2002

-<h3>

-What's new in this drop</h3>

-<li>Breaking API change: IDebugViewAdapter had been renamed to IDebugView</li>

-<li>Launch configurations are the default launch mechanism.</li>

-<li>Debug events are reported in sets. @see IDebugEventSetListener and IDebugEventListener</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11610">11610</a>: Doc: identifier for launch extension points are incorrect<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11401">11401</a>: API on ILaunch.getDebugTarget() <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11303">11303</a>: Deadlock on startup processing breakpoints<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11919">11919</a>: 2 NPEs using Preferences->Debug->Launch Configuration Types<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6212">6212</a>: Debug view toolbar/menu pollution<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11849">11849</a>: Duplicate history items showing up<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10448">10448</a>: IExpressionManager#hasExpression, IBreakpointManager#hasBreakpoints,etc.<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10817">10817</a>: configs in java packages get copied to output folder<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11207">11207</a>: IDebugViewAdapter should be named IDebugView<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11612">11612</a>: Agressive clearing of instruction pointer<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12025">12025</a>: Invalid thread access out of Launch configurations<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12229">12229</a>: Set default launching style to configuration based<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9650">9650</a>: Variable change notification bug<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12157">12157</a>: Debug event sets<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-March 18, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11197">11197</a>: Feature request: Delete in breakpoints view<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11212">11212</a>: Debug UI plugin.xml references jdt<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11308">11308</a>: Launch configurations make workspace non-transportable<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11346">11346</a>: Registering a launch multiple times is not handled well<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10586">10586</a>: Use new workbench selection service<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11425">11425</a>: ILaunchConfiguration JavaDoc is incorrect<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11189">11189</a>: Flicker in the Launch Configurations dialog<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11253">11253</a>: Launch config tab flicker<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11370">11370</a>: Launch view update bug<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11462">11462</a>: Launch config metadata change generates parse exception<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10637">10637</a>: "currently active project" should be the "current working directory"<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10162">10162</a>: Console View to front on error output only<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8937">8937</a>: Feature Request: Select all in the breakpoints view<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-March 12, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10775">10775</a>: New, delete copy of Launch configurations remain disabled<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10780">10780</a>: Delete and Copy enabled for Launch configuration type<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10778">10778</a>: Launch configuration names should be trimmed<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6376">6376</a>: Should be possible to remove entries from the "Run list"<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10855">10855</a>: Use new workbench API for show perspective<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10610">10610</a>: Null exception when lauchviewer processing events on remove tree items<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8420">8420</a>: Cannot edit ExpressionView detail area until after inspect.<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11076">11076</a>: Delete configs reamin in favorite list<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9922">9922</a>: Null pointer in launch configuration type property page<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7605">7605</a>: Feature: Doubleclicking in launch config dialog<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11072">11072</a>: History menu update<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8294">8294</a>: "Debug History" and "Run History" have empty submenus<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11133">11133</a>: NPE in LaunchView.initializeSelection()<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11110">11110</a>: NPE in AbstractListenerActionDelegate.pageActivated<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10847">10847</a>: API - AbstractLaunchConfiguration tab<br>

-<h3>

-

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-March 05, 2002

-<h3>

-What's new in this drop</h3>

-<li>Launch Configuration API has changed. The launch configuration tab lifecycle is now similar

- to that of preference and wizard pages.</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9680">9680</a>: Launch config: pressing save returns to first tab<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9660">9660</a>: Launch Config Flicker<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10524">10524</a>: Provide default label provider API<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10506">10506</a>: NPE in launch view<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10582">10582</a>: SWT Exception closing a Debug Perspective in JUnit test<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7207">7207</a>: Launch configuration bugs<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7430">7430</a>: Debug perspective not reused<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10652">10652</a>: Remove action enabled when nothing to be removed<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7430">7430</a>: Debug perspective not reused<br>

-<h3>

-Problem Reports Closed</h3>

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-February 28, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10243">10243</a>: ClassCastException when removing a breakpoint<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-February 26, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7767">7767</a>: Changing from "Debug View"<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-February 14, 2002

-<h3>

-What's new in this drop</h3>

-<li>As part of the transition to configuration-based launching, early adopters may

-continue to access the launch configuration dialog by Shift-clicking the run and debug

-buttons, but configuration-based launches will NOT appear in the history, and

-CANNOT be relaunched.</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9166">9166</a>: NPE in preference page<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9167">9167</a>: LaunchConfigurationLabelDecorator should not be on by default<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9483">9483</a>: NPE in LaunchConfigurationTypePropertyPage<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9652">9652</a>: IllegalArgumentException out of Console<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9704">9704</a>: NPE on shutdown in BreakpointsView<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9167">9167</a>: LaunchConfigurationLabelDecorator should not be on by default<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-February 12, 2002

-<h3>

-What's new in this drop</h3>

-<li>Removed deprecated constant IDebugUIConstants.ID_PROCESS_VIEW</li>

-<li>Basic icons and their support has been removed</li>

-<li>Breakpoint property sheet has been replaced with breakpoint properties dialog.

- Choose "Properties..." from the pop-up menu in the breakpoints view.</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8230">8230</a>: Console does not show process as <terminated>; better tracking of changes<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9194">9194</a>: Attempting to modify locked resource tree in BreakpointManager<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9200">9200</a>: Editor not opening for suspended stack frame with modified prefs<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9218">9218</a>: NPE in LaunchConfigurationLabelDecorator.isLaunchConfigFile<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9280">9280</a>: Debug event handlers performing runnables after dispose<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9057">9057</a>: API - CHANGE event should be better specified<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9111">9111</a>: Invalid thread access running test suite<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6370">6370</a>: Breakpoint Properties Dialog<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9327">9327</a>: JavaDebugOptionsManager startup loading breakpoints during resource changed<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9200">9200</a>: Editor not opening for suspended stack frame with modified prefs<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9178">9178</a>: Remove All Terminated always disabled?<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9065">9065</a>: WID opening editor for breakpoint<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8296">8296</a>: Debug With menu items have interesting numbering<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9421">9421</a>: NPE out of the LaunchView on shutdown with running target<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7301">7301</a>: no way to switch to custom debug perspective on debug<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5311">5311</a>: Missing debug information should be conveyed<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1683">1683</a>: Extra Action delegates (1GIGUK0)<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9299">9299</a>: NPE in LaunchView.showMarkerForCurrentSelection<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-February 05, 2002

-<h3>

-What's new in this drop</h3>

-<li>Launch configuration infrastructure and UI is available for early adopters.

-Developers that have contributed launchers should migrate to launch configurations. To

-access launch configurations from the workbench, press the run/debug buttons while holding

-the SHIFT key down.</li>

-<li>The debugger indicates variables that have changed since the last suspend. See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1533">1533</a>.</i>

-<li>The debug action set has been renamed from Debug/Run to Debug. See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8729">8729</a>.</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8729">8729</a>: Rename Debug action set from "Debug/Run" to "Debug"<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8945">8945</a>: Non-Persisted breakpoint can be incorrectly deleted at startup<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7965">7965</a>: Debug view refresh flicker<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1533">1533</a>: Feature: notification of changing variables (1G5NRPC)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1721">1721</a>: Small Feature: separate disable/enable breakpoints (1GKKEI5)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8245">8245</a>: Launch preferences page problems<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1621">1621</a>: Debugger doesn't come to front when breakpoint is hit (1GEUZEX)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9102">9102</a>: Remove & Terminate walkback<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6807">6807</a>: launch configurations not crash proof<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-January 29, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7837">7837</a>: Launch configuration page verifier error<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8235">8235</a>: Ctrl-space does not work for code assist in details pane<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7763">7763</a>: (usability) selecting in variables view with details pane causes un-maximize<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7814">7814</a>: API for char range within a line<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8501">8501</a>: "Disable all" breakpoints action<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7864">7864</a>: Need API for selection changes in debug view<br>

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-January 24, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8059">8059</a>: NPE out of ControlActionDelegate<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8005">8005</a>: Terminate & Remove disabled<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8063">8063</a>: NPE in BreakpointsView when closing workbench<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8318">8318</a>: internal error occured, if open the menu "Debug -> Debug History"<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-January 22, 2002

-<h3>

-What's new in this drop</h3>

-<li>Breakpoint API has been updated to allow selective persistence of breakpoint

-of the same type</li>

-<li>Breakpoint API now allows for "hidden" breakpoints. @see IBreakpoint.isRegistered()</li>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7578">7578</a>: .metadata launch files not in correct location<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7626">7626</a>: Widget is disposed error relaunching<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1710">1710</a>: DCR - Launcher should have control over perspective switching (1GJUT9J)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6480">6480</a>: Launch configurations - store with workspace<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7961">7961</a>: updating source twice per suspend event<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7507">7507</a>: debugger keyboard shortcuts do not work in 20020109<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=2990">2990</a>: Internal errors when fast clicking in debug stack (1GLDZVH)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7974">7974</a>: Stack overflow pression "remove all" from Expression View<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1563">1563</a>: Fully qualified rendering of launch element name (1GD7U0Z)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7418">7418</a>: Need the Process view back<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7627">7627</a>: Tooltips not working in debug views<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7755">7755</a>: The Breakpoints pane should highlight the breakpoint where the debugger stops<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5141">5141</a>: Breakpoint manager can use new marker API<br>

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-January 15, 2002

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6088">6088</a>: Move "qualified name" rendering to java debug<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7420">7420</a>: "Debug UI.xml" references JDT<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7580">7580</a>: NPE out of AbstractDebugEventHandler on shutdown<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7513">7513</a>: Terminate and remove fails to remove when timeouts occur<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7316">7316</a>: Inconsistent casing for Show detail pane<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7370">7370</a>: TimeoutException occurs during stepping<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1714">1714</a>: Confusion of launches from different projects in history (1GJYNLK)<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-January 9, 2002

-<h3>

-What's new in this drop</h3>

-<li>The debugger now uses the workbench editor re-use policy.</li>

-<li>There is no longer a Process view. The Debug view shows all debug

-sessions and processes launched. When a workspace is re-started that

-had a Process view open, an error message will appear explaining that

-the Process view could not be created.</li>

-<li>The debug action set has been split into two groups - debug and launch.

-Existing debug and Java perspectives need to be closed and re-opened to obtain

-run and debug buttons in the toolbar. @see bug 1724.</li>

-<li>There is no longer an Inspector view - it has been replaced with an

-Expressions view. When a workspace is re-started that had an Inspector

-view open, an error message will appear explaining the Inspector view

-could not be created.</li>

-<li>A launch can be annotated with client specific data. @see bug 6481.</li>

-<li>A launch can now contain more than one debug target. API has changed

- in ILaunch, ILaunchListener, and ILaunchManager to suppport this.</li>

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7120">7120</a>: NPE during shutdown of DebugUIPlugin<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6954">6954</a>: Use new workbench API for openning perspective<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6206">6206</a>: Make AbstractDebugView API<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7151">7151</a>: Toggling ShowDetailPaneAction sets focus to the launch view<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7164">7164</a>: NPE during shutdown to do with DebugSelectionManager<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1724">1724</a>: Feature: split debug action set in to debug & launch (1GKCQVZ)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7167">7167</a>: NPE shutting down in abstract debug view 'save state'<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6771">6771</a>: DebugEvent constructors changed to take IDebugElement<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1574">1574</a>: Settings in debug views not persisted (1GDTUNW)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6105">6105</a>: Step accelerators should not take focus from editor<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1671">1671</a>: Option to autoclear terminated processes (1GHSO3L)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6357">6357</a>: Combine Process/Debug Views<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6200">6200</a>: Extensible set of debug elements<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7204">7204</a>: Copy variables action needs icon<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7031">7031</a>: Inspector is missing a toString area<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6213">6213</a>: Breakpoints view improvements<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6213">6481</a>: Feature: Annotate launch with transaction id<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1617">1617</a>: type names not always shown in inspector (1GEULC4)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6484">6484</a>: Ability for "super adaptor"<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6783">6783</a>: Console should not steal focus while writing output<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7277">7277</a>: Step detail events for into/over/return<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6214">6214</a>: More that one debug target per lanuch<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6482">6482</a>: Ability to group debug targets in one launch<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6215">6215</a>: Exception handling in variables view<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1688">1688</a>: Object display options (1GIKMIG)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1606">1606</a>: Feature: Source Lookup (1GEPJEN)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1553">1553</a>: Handling of no source is confusing (1GC2TVU)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7166">7166</a>: Remove terminated launches preference does not applied correctly<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7169">7169</a>: Debug "F" keys not enabled properly on new editor<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-December 18, 2001

-<h3>

-What's new in this drop</h3>

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5260">5260</a>: TVT: Properties view for debug process is missing substitution variable<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6321">6321</a>: Console IOException<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7003">7003</a>: Debug With menu launches incorrect program (not finding selection)<br>

-

-<h3>

-Problem Reports Closed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1548">1548</a>: Extensible launch modes (1GBEQYO)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1592">1592</a>: DebugPlugin must allow for null elements in updateHistory() (1GEI3C1)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6886">6886</a>: Request: Keep perspective when running application<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1627">1627</a>: Previous editor's unsaved contents are still visible (1GEX5LS)<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-December 11, 2001

-<h3>

-What's new in this drop</h3>

-	<ul>

-	<li>The "relaunch last" action has been remapped to use F9 instead of F10.

-	Please see "<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6387">6387</a>: Can't use F10" for details.

-	</li></ul>

-<h3>

-Problem Reports Fixed</h3>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6387">6387</a>: Can't use F10 <br>

-<h3>

-Problem Reports Closed</h3>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-December 6, 2001

-<h3>

-What's new in this drop</h3>

-<ul>

-</ul>

-

-<h3>

-Problem Reports Fixed</h3>

-

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6521">6521</a>: Variables view stays empty with stack frame selected (1GLE8PW) <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6577">6577</a>: NPE in DebugContentProvider<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6598">6598</a>: Problem using old workspace with new build <br>

-<h3>

-Problem Reports Closed</h3>

-

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-December 4, 2001

-<h3>

-What's new in this drop</h3>

-<ul>

-</ul>

-

-<h3>

-Problem Reports Fixed</h3>

-

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6321">6321</a>: Console IOException <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6216">6216</a>: Help for debug views in 1.0 <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6521">6521</a>: Newly added resources cannot be checked out <br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1715">1715</a>: Consider removing state change actions from BreakpointsView (1GKKT90)<br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1559">1559</a>: Debugger doesn't pop to front when breakpoint hit (1GD7P7D) <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1564">1564</a>: README: printf's in native code only show up in console at the end of execution (1GD80QZ) <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1588">1588</a>: README: System.exit(0) from Scrapbook (1GE8JU3) <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5485">5485</a>: NPE if missing launcher when using launch history <br>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1770">1770</a>: Last launch not updated upon deletion (1GLEANH) <br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-November 27, 2001

-<h3>

-What's new in this drop</h3>

-<ul>

-<li>Procedural Debug API - new debug element interfaces have been defined to support the notion of registers,

-register groups, memory blocks, and memory block retrieval:

-	<ul>

-	<li>IRegister - a register in a register group</li>

-	<li>IRegisterGroup - register groups are available from each stack frame (that supports registers)</li>

-	<li>IMemoryBlock - a contiguos block of bytes from memory allocated by a running program</li>

-	<li>IMemoryBlockRetrieval - support to retrieve arbitrary blocks of memory from a running program</li>

-	</ul>

-</li>

-</ul>

-

-<h3>

-Problem Reports Fixed</h3>

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1720">1720</A>: Issue: breakpoint manager breaks lazy plug-in load rule (1GK<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6097">6097</A>: The inspector is not refresh<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-November 20, 2001

-<h3>

-What's new in this drop</h3>

-<ul>

-<li>API Change - method addition - @see ILaunch.getLaunchConfiguration(). This does

-not break any clients, as the only implementation of ILaunch is org.eclipse.debug.core.Launch,

-which has been updated.</li>

-<li>API Change - method return value - @see ILaunch.getLauncher(). A launch

-is now allowed to return null for #getLauncher() when it was created by a launch

-configuration rather than a launcher. This does not break any clients, as launch configurations

-are not in use yet. The main client that will have to be updated is the Debug UI.</li>

-<li>New debug preference - "Build (if required) before launch"</li>

-</ul>

-

-<h3>

-Problem Reports Fixed</h3>

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=4023">4023</A>: Prompt user for save and build before run  (1GGCBO0)<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5818">5818</A>: Debugger Source Lookup page claims project is closed<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5895">5895</A>: NPE out of the Console view on shutdown<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5896">5896</A>: NPE out of LaunchManagerVisitor on shutdown<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1623">1623</A>: StackFrame selected but toolbar actions disable (1GEV0L7)<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5681">5681</A>: Show debug perspective doesn't reuse my perspective<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5909">5909</A>: Should have terminate on Debug menu<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5582">5582</A>: Keyboard shortcut for run/debug<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5789">5789</A>: Console Empty on Hello World Examples<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5951">5951</A>: Console buffer not flushed?<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5946">5946</A>: NPE  in LaunchManagerVisitor<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5808">5808</A>: Console output being lost<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5925">5925</A>: DebugView does not survive platform crash<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-November 13, 2001

-<h3>

-What's new in this drop</h3>

-

-<h3>

-Problem Reports Fixed</h3>

-

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5360">5360</A>: ListenerList#removeAll<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5613">5613</A>: Debugger hangs when it hits breakpoints during self hosting<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=4269">4269</A>: Simplifying debugger perspective (1GKRAWI)<br>

-

-

-<h3>

-Problem Reports Closed</h3>

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5588">5588</A>: General Protection Fault double clicking on breakpoint in th<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5795">5795</A>: Reached Breakpoint, but no stacktrace<br>

-

-<h1>

-Eclipse Platform Build Notes&nbsp;<br>

-Platform Debug</h1>

-November 12, 2001

-<h3>

-What's new in this drop</h3>

-<ul>

-<li>Draft definition and infrastructure for launch configurations.</li>

-<li>API Change: Presentation of variable value details allows for long running

-computation. @see IDebugModelPresentation.computeDetail(IValue, IValueDetailListener). @see IValueDetailListener.

-</ul>

-

-<h3>

-Problem Reports Fixed</h3>

-

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5686">5686</A>: Launch/Run actions should be available on menubar<br>

-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5579">5579</A>: Would like option to switch to Debug perspective on breakpoi<br>

-

-<h3>

-Problem Reports Closed</h3>

-

-

-</body>

-</html>

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
deleted file mode 100644
index f490f20..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
+++ /dev/null
@@ -1,397 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.EventObject;

-

-import org.eclipse.debug.internal.core.DebugCoreMessages;

-

-/**

- * A debug event describes an event in a program being debugged or

- * in a running process. Debug models and process implementations

- * are required to generate debug events as specified by this class.

- * <p>

- * The following list defines the events generated for each debug

- * model element.

- * The <code>getSource()</code> method of a debug event

- * returns the element associated with the event.

- * Creation events are guaranteed to occur in a top

- * down order - that is, parents are created before children.

- * Termination events are guaranteed to occur in a bottom up order -

- * that is, children before parents. However, termination events are not guaranteed

- * for all  elements that are created. That is, terminate events can be coalesced - a 

- * terminate event for a parent signals that all children have been terminated.

- * </p>

- * <p>

- * The generic <code>CHANGE</code> event can be fired at any time by any element.

- * Generally, a client of a debug model, such as as a UI, can get sufficient

- * information to update by listening/responding to the other event kinds. However,

- * if a debug model needs to inform clients of a change that is not specified

- * by create/terminate/suspend/resume, the <code>CHANGE</code> event may be used.

- * For example, generally, the only way a thread or any of its children can change

- * state between a suspend and resume operation, is if the thread or owning debug

- * target is termianted. However, if a debug model supports some other operation

- * that would allow a debug element to change state while suspended, the debug model

- * would fire a change event for that element. The valid detail codes for a

- * change event are:<ul>

- * <li><code>STATE</code> - indicates the state of an element has changed, but its

- *  children are not effected. A client would use a state change event to update

- *  a label of the effected element, but would not update any children.</li>

- * <li><code>CONTENT</code> - indicates that a debug element's value or contents have

- *  changed in some way. For example, when the value of a variable is changed

- *  explicitly, the variable should fire a content change event.</li>

- * </ul>

- * </p>

- * <ul>

- * <li><code>IProcess</code>

- *	<ul>

- *	<li><code>CREATE</code> - a process has been created and is executing.</li>

- *	<li><code>TERMINATE</code> - a process has terminated.</li>

- *  </ul>

- * <li><code>IDebugTarget</code>

- *	<ul>

- *	<li><code>CREATE</code> - a debug target has been created and is ready

- *		to begin a debug session.</li>

- *	<li><code>TERMINATE</code> - a debug target has terminated and the debug

- *		session has ended.</li>

- *  <li><code>SUSPEND</code> - a debug target has suspended. Event detail provides

- *		the reason for the suspension:<ul>

- *		<li><code>STEP_END</code> - a request to step has completed</li>

- *		<li><code>BREAKPOINT</code> - a breakpoint has been hit</li>

- *		<li><code>CLIENT_REQUEST</code> - a client request has caused the target to suspend

- * 			(i.e. an explicit call to <code>suspend()</code>)</li>

- * 		<li><code>UNSPECIFIED</code> - the reason for the suspend is not specified</li>

- *		</ul>

- *	</li>

- *  <li><code>RESUME</code> - a debug target has resumed. Event detail provides

- *		the reason for the resume:<ul>

- *		<li><code>STEP_INTO</code> - a target is being resumed because of a request to step into</li>

- * 		<li><code>STEP_OVER</code> - a target is being resumed because of a request to step over</li>

- * 		<li><code>STEP_RETURN</code> - a target is being resumed because of a request to step return</li>

- *		<li><code>CLIENT_REQUEST</code> - a client request has caused the target to be resumed

- * 			(i.e. an explicit call to <code>resume()</code>)</li>

- * 		<li><code>UNSPECIFIED</code> - The reason for the resume is not specified</li>

- *		</ul>

- *	</li>

- *	</ul>

- * </li>

- * <li><code>IThread</code>

- *	<ul>

- *	<li><code>CREATE</code> - a thread has been created in a debug target.</li>

- *	<li><code>TERMINATE</code> - a thread has terminated.</li>

- *	<li><code>SUSPEND</code> - a thread has suspended execution. Event detail provides

- *		the reason for the suspension:<ul>

- *		<li><code>STEP_END</code> - a request to step has completed</li>

- *		<li><code>BREAKPOINT</code> - a breakpoint has been hit</li>

- *		<li><code>CLIENT_REQUEST</code> - a client request has caused the thread to suspend

- * 			(i.e. an explicit call to <code>suspend()</code>)</li>

- * 		<li><code>EVALUATION</code> - an expression evaluation has ended that may

- * 			have had side effects in the debug target.</li>

- * 		<li><code>EVALUATION_READ_ONLY</code> - an expression evaluation has ended that

- * 			had no side effects in the debug target.</li>

- * 		<li><code>UNSPECIFIED</code> - the reason for the suspend is not specified</li>

- *		</ul>

- *	</li>

- *	<li><code>RESUME</code> - a thread has resumed execution. Event detail provides

- *		the reason for the resume:<ul>

- *		<li><code>STEP_INTO</code> - a thread is being resumed because of a request to step into</li>

- * 		<li><code>STEP_OVER</code> - a thread is being resumed because of a request to step over</li>

- * 		<li><code>STEP_RETURN</code> - a thread is being resumed because of a request to step return</li>

- *		<li><code>CLIENT_REQUEST</code> - a client request has caused the thread to be resumed

- * 			(i.e. an explicit call to <code>resume()</code>)</li>

- * 		<li><code>EVALUATION</code> - an expression evaluation has started that may

- * 			have side effects in the debug target.</li>

- * 		<li><code>EVALUATION_READ_ONLY</code> - an expression evaluation has started that

- * 			will have no side effects in the debug target.</li>

- * 		<li><code>UNSPECIFIED</code> - The reason for the resume is not specified</li>

- *		</ul>

- *	</li>

- *    </ul>

- * </li>

- * <li><code>IStackFrame</code> - no events are specified for stack frames.

- *	When a thread is suspended, it has stack frames. When a thread resumes,

- *	stack frames are unavailable.

- * </li>

- * <li><code>IVariable</code> - no events are specified for variables.

- *	When a thread is suspended, stack frames have variables. When a thread resumes,

- *	variables are unavailable.

- * </li>

- * <li><code>IValue</code> - no events are specified for values.

- * </li>

- * </ul>

- * <p>

- * Clients may instantiate this class. Clients are not intended to subclass this class.

- * </p>

- */

-public final class DebugEvent extends EventObject {

-	

-	/**

-	 * Resume event kind.

-	 */

-	public static final int RESUME= 0x0001;

-

-	/**

-	 * Suspend event kind.

-	 */

-	public static final int SUSPEND= 0x0002;

-

-	/**

-	 * Create event kind.

-	 */

-	public static final int CREATE= 0x0004;

-

-	/**

-	 * Terminate event kind.

-	 */

-	public static final int TERMINATE= 0x0008;

-	

-	/**

-	 * Change event kind.

-	 */

-	public static final int CHANGE= 0x0010;

-

-	/**

-	 * Step start detail. Indicates a thread was resumed by a step

-	 * into action.

-	 * @since 2.0

-	 */

-	public static final int STEP_INTO= 0x0001;

-	

-	/**

-	 * Step start detail. Indicates a thread was resumed by a step

-	 * over action.

-	 * @since 2.0

-	 */

-	public static final int STEP_OVER= 0x0002;

-	

-	/**

-	 * Step start detail. Indicates a thread was resumed by a step

-	 * return action.

-	 * @since 2.0

-	 */

-	public static final int STEP_RETURN= 0x0004;		

-

-	/**

-	 * Step end detail. Indicates a thread was suspended due

-	 * to the completion of a step action.

-	 */

-	public static final int STEP_END= 0x0008;

-	

-	/**

-	 * Breakpoint detail. Indicates a thread was suspended by

-	 * a breakpoint.

-	 */

-	public static final int BREAKPOINT= 0x0010;

-	

-	/**

-	 * Client request detail. Indicates a thread was suspended due

-	 * to a client request.

-	 */

-	public static final int CLIENT_REQUEST= 0x0020;

-	

-	/**

-	 * Evaluation detail. Indicates that a thread was resumed or

-	 * suspended to perform an expression evaluation.

-	 * 

-	 * @since 2.0

-	 */

-	public static final int EVALUATION = 0x0040;

-	

-	/**

-	 * Evaluation detail. Indicates that a thread was resumed or

-	 * suspended to perform an expression evaluation that has no

-	 * update side effects. Clients may use this detail event

-	 * for efficiency when it is known that an evaluation has 

-	 * no side effects.

-	 * 

-	 * @since 2.0

-	 */

-	public static final int EVALUATION_READ_ONLY = 0x0080;

-

-	/**

-	 * State change detail. Indicates the state of a single 

-	 * debug element has changed. Only valid for <code>CHANGE</code>

-	 * events.

-	 * 

-	 * @since 2.0

-	 */

-	public static final int STATE = 0x0100;

-	

-	/**

-	 * Content change detail. Indicates the content of a debug element

-	 * (and potentially its children) has changed. Only valid for

-	 * <code>CHANGE</code> events.

-	 * 

-	 * @since 2.0

-	 */

-	public static final int CONTENT = 0x0200;	

-			

-	/**

-	 * Constant indicating that the kind or detail of a debug

-	 * event is unspecified.

-	 */

-	public static final int UNSPECIFIED = 0;

-	

-	/**

-	 * The kind of event - one of the kind constants defined by

-	 * this class.

-	 */

-	private int fKind= UNSPECIFIED;

-

-	/**

-	 * The detail of the event - one of the detail constants defined by

-	 * this class.

-	 */

-	private int fDetail= UNSPECIFIED;

-	/**

-	 * Constructs a new debug event of the given kind with a detail code of

-	 * <code>UNSPECIFIED</code>.

-	 *

-	 * @param eventSource the object associated with the event

-	 * @param kind the kind of debug event (one of the

-	 *	kind constants defined by this class)

-	 */

-	public DebugEvent(Object eventSource, int kind) {

-		this(eventSource, kind, UNSPECIFIED);

-	}

-

-	/**

-	 * Constructs a new debug event of the given kind with the given detail.

-	 *

-	 * @param eventSource the object associated with the event

-	 * @param kind the kind of debug event (one of the

-	 *	kind constants defined by this class)

-	 * @param detail extra information about the event (one of the

-	 *	detail constants defined by this class)

-	 */

-	public DebugEvent(Object eventSource, int kind, int detail) {

-		super(eventSource);

-		if ((kind & (RESUME | SUSPEND | CREATE | TERMINATE | CHANGE)) == 0)

-			throw new IllegalArgumentException(DebugCoreMessages.getString("DebugEvent.illegal_kind")); //$NON-NLS-1$

-		if (detail != UNSPECIFIED && (detail & (STEP_END | STEP_INTO | STEP_OVER | STEP_RETURN | BREAKPOINT | CLIENT_REQUEST |EVALUATION | EVALUATION_READ_ONLY | STATE | CONTENT)) == 0)

-			throw new IllegalArgumentException(DebugCoreMessages.getString("DebugEvent.illegal_detail")); //$NON-NLS-1$

-		fKind= kind;

-		fDetail= detail;

-	}

-

-	/**

-	 * Returns a constant describing extra detail about the event - one

-	 * of the detail constants defined by this class, possibly

-	 * <code>UNSPECIFIED</code>.

-	 *

-	 * @return the detail code

-	 */

-	public int getDetail() {

-		return fDetail;

-	}

-

-	/**

-	 * Returns this event's kind - one of the kind constants defined by this class.

-	 * 

-	 * @return the kind code

-	 */

-	public int getKind() {

-		return fKind;

-	}

-	

-	/**

-	 * Returns whether this event's detail indicates the

-	 * beginning of a step event. This event's detail is one

-	 * of <code>STEP_INTO</code>, <code>STEP_OVER</code>, or

-	 * <code>STEP_RETURN</code>.

-	 * 

-	 * @return whether this event's detail indicates the beginning

-	 *  of a step event.

-	 * @since 2.0

-	 */

-	public boolean isStepStart() {

-		return (getDetail() & (STEP_INTO | STEP_OVER | STEP_RETURN)) > 0;

-	}

-	

-	/**

-	 * Returns whether this event's detail indicates an

-	 * evaluation. This event's detail is one

-	 * of <code>EVALUATION</code>, or <code>EVALUATION_READ_ONLY</code>.

-	 * 

-	 * @return whether this event's detail indicates an evaluation.

-	 * @since 2.0

-	 */

-	public boolean isEvaluation() {

-		return (getDetail() & (EVALUATION | EVALUATION_READ_ONLY)) > 0;

-	}	

-	

-	/**

-	 * @see java.lang.Object#toString()

-	 */

-	public String toString() {

-		StringBuffer buf = new StringBuffer("DebugEvent["); //$NON-NLS-1$

-		if (getSource() != null) {

-			buf.append(getSource().toString());

-		} else {

-			buf.append("null"); //$NON-NLS-1$

-		}

-		buf.append(", "); //$NON-NLS-1$

-		switch (getKind()) {

-			case CREATE:

-				buf.append("CREATE"); //$NON-NLS-1$

-				break;

-			case TERMINATE:

-				buf.append("TERMINATE"); //$NON-NLS-1$

-				break;

-			case RESUME:

-				buf.append("RESUME"); //$NON-NLS-1$

-				break;

-			case SUSPEND:

-				buf.append("SUSPEND"); //$NON-NLS-1$

-				break;				

-			case CHANGE:

-				buf.append("CHANGE"); //$NON-NLS-1$

-				break;

-			case UNSPECIFIED:

-				buf.append("UNSPECIFIED"); //$NON-NLS-1$

-				break;

-		}

-		buf.append(", "); //$NON-NLS-1$

-		switch (getDetail()) {

-			case BREAKPOINT:

-				buf.append("BREAKPOINT"); //$NON-NLS-1$

-				break;

-			case CLIENT_REQUEST:

-				buf.append("CLIENT_REQUEST"); //$NON-NLS-1$

-				break;

-			case STEP_END:

-				buf.append("STEP_END"); //$NON-NLS-1$

-				break;

-			case STEP_INTO:

-				buf.append("STEP_INTO"); //$NON-NLS-1$

-				break;

-			case STEP_OVER:

-				buf.append("STEP_OVER"); //$NON-NLS-1$

-				break;

-			case STEP_RETURN:

-				buf.append("STEP_RETURN"); //$NON-NLS-1$

-				break;

-			case EVALUATION:

-				buf.append("EVALUATION"); //$NON-NLS-1$

-				break;

-			case EVALUATION_READ_ONLY:

-				buf.append("EVALUATION_READ_ONLY"); //$NON-NLS-1$

-				break;								

-			case STATE:

-				buf.append("STATE"); //$NON-NLS-1$

-				break;			

-			case CONTENT:

-				buf.append("CONTENT"); //$NON-NLS-1$

-				break;					

-			case UNSPECIFIED:

-				buf.append("UNSPECIFIED"); //$NON-NLS-1$

-				break;

-		}

-		buf.append("]"); //$NON-NLS-1$

-		return buf.toString();

-	}

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
deleted file mode 100644
index 8591411..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

- 

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-

-

-/**

- * A checked exception representing a failure.

- * <p>

- * Defines status codes relevant to the debug plug-in. When a 

- * debug exception is thrown, it contains a status object describing

- * the cause of the exception. The status objects originating from the

- * debug plug-in use the codes defined in this class.

- * </p>

- * <p>

- * Clients may instantiate this class. Clients are not intended to subclass this class.

- * </p>

- * @see IStatus

- */

-public class DebugException extends CoreException {	

-	/**

-	 * Indicates a request made of a debug element has failed

-	 * on the target side.

-	 */

-	public static final int TARGET_REQUEST_FAILED = 5010;

-	 

-	/**

-	 * Indicates a request is not supported by the capabilities of a debug element.

-	 * For example, a request was made to terminate an element that does not

-	 * support termination.

-	 */

-	public static final int NOT_SUPPORTED = 5011;

-

-	/**

-	 * Indicates that a request made of manager has failed, or a request made of a

-	 * debug element has failed on the client side (that is, before the request was

-	 * sent to the debug target).

-	 */

-	public static final int REQUEST_FAILED = 5012;

-

-	/**

-	 * Indicates an internal error. This is an unexpected state.

-	 */

-	public static final int INTERNAL_ERROR = 5013;

-	

-	/** 

-	 * Indicates an improperly configured breakpoint. Breakpoints have a minimal

-	 * set of required attributes as defined by the breakpoint manager.

-	 *

-	 * @see IBreakpointManager

-	 */

-	public static final int CONFIGURATION_INVALID = 5014;

-	

-	/**

-	 * Constructs a new debug exception with the given status object.

-	 *

-	 * @param status the status object describing this exception

-	 * @see IStatus

-	 */

-	public DebugException(IStatus status) {

-		super(status);

-	}

-

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
deleted file mode 100644
index e8b9f67..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
+++ /dev/null
@@ -1,606 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.text.MessageFormat;

-import java.util.ArrayList;

-import java.util.HashMap;

-

-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.IStatus;

-import org.eclipse.core.runtime.Plugin;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.model.IProcess;

-import org.eclipse.debug.internal.core.BreakpointManager;

-import org.eclipse.debug.internal.core.ExpressionManager;

-import org.eclipse.debug.internal.core.LaunchManager;

-import org.eclipse.debug.internal.core.Launcher;

-import org.eclipse.debug.internal.core.ListenerList;

-import org.eclipse.debug.internal.core.RuntimeProcess;

-

-/**

- * There is one instance of the debug plug-in available from

- * <code>DebugPlugin.getDefault()</code>. The debug plug-in provides:

- * <ul>

- * <li>access to the breakpoint manager</li>

- * <li>access to the launch manager</li>

- * <li>access to the expression manager</li>

- * <li>access to the registered launcher extensions</li>

- * <li>debug event notification</li>

- * <li>status handlers</li>

- * </ul>

- * <p>

- * Clients may not instantiate or subclass this class.

- * </p>

- */

-public class DebugPlugin extends Plugin {

-	

-	/**

-	 * Debug plug-in identifier

-	 * (value <code>"org.eclipse.debug.core"</code>).

-	 */

-	public static final String PLUGIN_ID = "org.eclipse.debug.core"; //$NON-NLS-1$

-	

-	/**

-	 * Simple identifier constant (value <code>"launchers"</code>) for the

-	 * launchers extension point.

-	 * 

-	 * @deprecated replaced with launch configurations

-	 */

-	public static final String EXTENSION_POINT_LAUNCHER= "launchers"; //$NON-NLS-1$

-	

-	/**

-	 * Simple identifier constant (value <code>"launchConfigurationTypes"</code>)

-	 * for the launch configuration types extension point.

-	 * 

-	 * @since 2.0

-	 */

-	public static final String EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPES= "launchConfigurationTypes"; //$NON-NLS-1$	

-	

-	/**

-	 * Simple identifier constant (value <code>"breakpoints"</code>) for the

-	 * breakpoints extension point.

-	 * 

-	 * @since 2.0

-	 */

-	public static final String EXTENSION_POINT_BREAKPOINTS= "breakpoints";	 //$NON-NLS-1$

-	

-	/**

-	 * Simple identifier constant (value <code>"statusHandlers"</code>) for the

-	 * status handlers extension point.

-	 * 

-	 * @since 2.0

-	 */

-	public static final String EXTENSION_POINT_STATUS_HANDLERS= "statusHandlers";	 //$NON-NLS-1$	

-

-	/**

-	 * Simple identifier constant (value <code>"sourceLocators"</code>) for the

-	 * source locators extension point.

-	 * 

-	 * @since 2.0

-	 */

-	public static final String EXTENSION_POINT_SOURCE_LOCATORS= "sourceLocators";	 //$NON-NLS-1$	

-		

-	/**

-	 * Status code indicating an unexpected internal error.

-	 */

-	public static final int INTERNAL_ERROR = 120;		

-

-	/**

-	 * The singleton debug plug-in instance.

-	 */

-	private static DebugPlugin fgDebugPlugin= null;

-

-	/**

-	 * The collection of launcher extensions.

-	 */

-	private Launcher[] fLaunchers= new Launcher[0];

-

-	/**

-	 * The singleton breakpoint manager.

-	 */

-	private BreakpointManager fBreakpointManager;

-	

-	/**

-	 * The singleton expression manager.

-	 */

-	private ExpressionManager fExpressionManager;	

-

-	/**

-	 * The singleton launch manager.

-	 */

-	private LaunchManager fLaunchManager;

-

-	/**

-	 * The collection of debug event listeners.

-	 */

-	private ListenerList fEventListeners= new ListenerList(20);

-	

-	/**

-	 * Event filters, or <code>null</code> if none.

-	 */

-	private ListenerList fEventFilters = null;

-

-	/**

-	 * Whether this plugin is in the process of shutting

-	 * down.

-	 */

-	private boolean fShuttingDown= false;

-		

-	/**

-	 * Table of status handlers. Keys are {plug-in identifier, status code}

-	 * pairs, and values are associated <code>IConfigurationElement</code>s.

-	 */

-	private HashMap fStatusHandlers = null;

-	

-	/**

-	 * Returns the singleton instance of the debug plug-in.

-	 */

-	public static DebugPlugin getDefault() {

-		return fgDebugPlugin;

-	}

-	

-	/**

-	 * Sets the singleton instance of the debug plug-in.

-	 * 

-	 * @param plugin the debug plug-in, or <code>null</code>

-	 *  when shutting down

-	 */

-	private static void setDefault(DebugPlugin plugin) {

-		fgDebugPlugin = plugin;

-	}

-

-	/**

-	 * Constructs the debug plug-in.

-	 * <p>

-	 * An instance of this plug-in runtime class is automatically created 

-	 * when the facilities provided by this plug-in are required.

-	 * <b>Clients must never explicitly instantiate a plug-in runtime class.</b>

-	 * </p>

-	 * 

-	 * @param pluginDescriptor the plug-in descriptor for the

-	 *   debug plug-in

-	 */

-	public DebugPlugin(IPluginDescriptor descriptor) {

-		super(descriptor);

-		setDefault(this);

-	}

-

-	/**

-	 * Adds the given listener to the collection of registered debug

-	 * event listeners. Has no effect if an identical listener is already

-	 * registered.

-	 *

-	 * @param listener the listener to add

-	 * @deprecated use #addDebugEventListener(IDebugEventSetListener)

-	 */

-	public void addDebugEventListener(IDebugEventListener listener) {

-		fEventListeners.add(listener);

-	}

-	

-	/**

-	 * Adds the given listener to the collection of registered debug

-	 * event listeners. Has no effect if an identical listener is already

-	 * registered.

-	 *

-	 * @param listener the listener to add

-	 * @since 2.0

-	 */

-	public void addDebugEventListener(IDebugEventSetListener listener) {

-		fEventListeners.add(listener);

-	}	

-

-	/**

-	 * Notifies all registered debug event listeners of the given event.

-	 * Has no effect if the event is filtered by a registered

-	 * debug event filter.

-	 *

-	 * @param event the debug event to fire

-	 * @see IDebugEventFilter

-	 * @deprecated use <code>fireDebugEventSet(DebugEvent[])</code>

-	 */

-	public void fireDebugEvent(DebugEvent event) {

-		fireDebugEventSet(new DebugEvent[] {event});

-	}

-	

-	/**

-	 * Notifies all registered debug event set listeners of the given

-	 * debug events. Events which are filtered by a registered debug event

-	 * filter are not fired.

-	 * 

-	 * @param events array of debug events to fire

-	 * @see IDebugEventFilter

-	 * @see IDebugEventSetListener

-	 * @since 2.0

-	 */

-	public void fireDebugEventSet(DebugEvent[] events) {

-		if (isShuttingDown() || events == null)

-			return;

-		events = filterEvents(events);

-		if (events == null) {

-			return;

-		} else {

-			Object[] listeners= getEventListeners();

-			for (int i= 0; i < listeners.length; i++) {

-				Object listener = listeners[i];

-				if (listener instanceof IDebugEventSetListener) {

-					((IDebugEventSetListener)listener).handleDebugEvents(events);

-				} else {

-					for (int j = 0; j < events.length; j++) {

-						((IDebugEventListener)listener).handleDebugEvent(events[j]);

-					}

-				}

-			}		

-		}

-	}

-	

-	/**

-	 * Returns a collection of events, based on the given event

-	 * set, removing any events that are filtered by registered

-	 * debug event filters. Returns <code>null</code> or an empty 

-	 * collection if all events are filtered.

-	 * 

-	 * @param events the event set to filter

-	 * @return filtered event set

-	 */

-	private DebugEvent[] filterEvents(DebugEvent[] events) {

-		if (hasEventFilters()) {

-			Object[] filters = fEventFilters.getListeners();

-			for (int i = 0; i < filters.length; i++) {

-				events = ((IDebugEventFilter)filters[i]).filterDebugEvents(events);

-				if (events == null || events.length == 0) {

-					break;

-				}

-			}

-

-		}

-		return events;

-	}

-	

-	/**

-	 * Returns the breakpoint manager.

-	 *

-	 * @return the breakpoint manager

-	 * @see IBreakpointManager

-	 */

-	public IBreakpointManager getBreakpointManager() {

-		return fBreakpointManager;

-	}

-

-	/**

-	 * Returns a collection of launchers. Launchers represent

-	 * and provide access to launcher extensions, delaying

-	 * instantiation of the underlying delegate until

-	 * required.

-	 *

-	 * @return an array of launchers

-	 * @see org.eclipse.debug.core.model.ILauncherDelegate

-	 * @deprecated to be removed

-	 */

-	public ILauncher[] getLaunchers() {

-		return fLaunchers;

-	}

-	

-	/**

-	 * Returns the launch manager.

-	 *

-	 * @return the launch manager

-	 * @see ILaunchManager

-	 */

-	public ILaunchManager getLaunchManager() {

-		return fLaunchManager;

-	}

-	

-	/**

-	 * Returns the status handler registered for the given

-	 * status, or <code>null</code> if none.

-	 *

-	 * @return the status handler registered for the given

-	 *  status, or <code>null</code> if none

-	 * @since 2.0

-	 */

-	public IStatusHandler getStatusHandler(IStatus status) {

-		StatusHandlerKey key = new StatusHandlerKey(status.getPlugin(), status.getCode());

-		IConfigurationElement config = (IConfigurationElement)fStatusHandlers.get(key);

-		if (config != null) {

-			try {

-				return (IStatusHandler)config.createExecutableExtension("class"); //$NON-NLS-1$

-			} catch (CoreException e) {

-				log(e);

-			}

-		}

-		return null;

-	}	

-	

-	/**

-	 * Returns the expression manager.

-	 *

-	 * @return the expression manager

-	 * @see IExpressionManager

-	 * @since 2.0

-	 */

-	public IExpressionManager getExpressionManager() {

-		return fExpressionManager;

-	}	

-

-	/**

-	 * Creates proxy launchers for all launcher delegates

-	 * defined in launcher extensions.

-	 *

-	 * @exception CoreException if creation of a launcher extension fails

-	 */

-	private void createLaunchers() throws CoreException {

-		IPluginDescriptor descriptor= getDescriptor();

-		IExtensionPoint extensionPoint= descriptor.getExtensionPoint(EXTENSION_POINT_LAUNCHER);

-		IConfigurationElement[] infos= extensionPoint.getConfigurationElements();

-		fLaunchers= new Launcher[infos.length];

-		for (int i= 0; i < infos.length; i++) {

-			fLaunchers[i]= new Launcher(infos[i]);

-		}

-	}	

-

-	/**

-	 * Removes the given listener from the collection of registered debug

-	 * event listeners. Has no effect if an identical listener is not already

-	 * registered.

-	 *

-	 * @param listener the listener to remove

-	 * @deprecated use #removeDebugEventListener(IDebugEventSetListener)

-	 */

-	public void removeDebugEventListener(IDebugEventListener listener) {

-		fEventListeners.remove(listener);

-	}

-	

-	/**

-	 * Removes the given listener from the collection of registered debug

-	 * event listeners. Has no effect if an identical listener is not already

-	 * registered.

-	 *

-	 * @param listener the listener to remove

-	 * @since 2.0

-	 */

-	public void removeDebugEventListener(IDebugEventSetListener listener) {

-		fEventListeners.remove(listener);

-	}	

-

-	/**

-	 * Shuts down this debug plug-in and discards all plug-in state.

-	 * <p> 

-	 * This method will be automatically invoked by the platform when

-	 * the platform is shut down.

-	 * </p>

-	 * <b>Clients must never explicitly call this method.</b>

-	 *

-	 * @exception CoreException if this plug-in fails to shut down

-	 */

-	public void shutdown() throws CoreException {

-		setShuttingDown(true);

-		super.shutdown();

-		fLaunchManager.shutdown();

-		fBreakpointManager.shutdown();

-		fEventListeners.removeAll();

-		setDefault(null);

-		ResourcesPlugin.getWorkspace().removeSaveParticipant(this);

-	}

-

-	/**

-	 * Starts up the debug plug-in. This involves creating the launch and

-	 * breakpoint managers, creating proxies to all launcher extensions,

-	 * and restoring all persisted breakpoints.

-	 * <p>

- 	 * This method is automatically invoked by the platform 

-	 * the first time any code in this plug-in is executed.

-	 * </p>

-	 * <b>Clients must never explicitly call this method.</b>

-	 *

-	 * @see Plugin#startup

-	 * @exception CoreException if this plug-in fails to start up

-	 */

-	public void startup() throws CoreException {

-		fLaunchManager= new LaunchManager();

-		fBreakpointManager= new BreakpointManager();

-		fExpressionManager = new ExpressionManager();

-		createLaunchers();	

-		fBreakpointManager.startup();

-		fLaunchManager.startup();

-		initializeStatusHandlers();

-	}

-	

-	/**

-	 * Creates and returns a new process representing the given

-	 * <code>java.lang.Process</code>. A streams proxy is created

-	 * for the I/O streams in the system process. The process

-	 * is added to the given launch.

-	 *

-	 * @param launch the launch the process is conatined in

-	 * @param process the system process to wrap

-	 * @param label the label assigned to the process

-	 * @return the process

-	 * @see IProcess

-	 */

-	public static IProcess newProcess(ILaunch launch, Process process, String label) {

-		return new RuntimeProcess(launch, process, label);

-	}

-	

-	/**

-	 * Returns whether this plug-in is in the process of 

-	 * being shutdown.

-	 * 

-	 * @return whether this plug-in is in the process of 

-	 *  being shutdown

-	 */

-	private boolean isShuttingDown() {

-		return fShuttingDown;

-	}

-	

-	/**

-	 * Sets whether this plug-in is in the process of 

-	 * being shutdown.

-	 * 

-	 * @param value whether this plug-in is in the process of 

-	 *  being shutdown

-	 */

-	private void setShuttingDown(boolean value) {

-		fShuttingDown = value;

-	}

-	

-	/**

-	 * Returns the collection of debug event listeners registered

-	 * with this plug-in.

-	 * 

-	 * @return list of registered debug event listeners, instances

-	 *  of <code>IDebugEventListener</code>	or <code>IDebugEventSetListeners</code>

-	 */

-	private Object[] getEventListeners() {

-		return fEventListeners.getListeners();

-	}

-	

-	/**

-	 * Adds the given debug event filter to the registered

-	 * event filters. Has no effect if an identical filter

-	 * is already registerd.

-	 * 

-	 * @param filter debug event filter

-	 * @since 2.0

-	 */

-	public void addDebugEventFilter(IDebugEventFilter filter) {

-		if (fEventFilters == null) {

-			fEventFilters = new ListenerList(2);

-		}

-		fEventFilters.add(filter);

-	}

-	

-	/**

-	 * Removes the given debug event filter from the registered

-	 * event filters. Has no effect if an identical filter

-	 * is not already registerd.

-	 * 

-	 * @param filter debug event filter

-	 * @since 2.0

-	 */

-	public void removeDebugEventFilter(IDebugEventFilter filter) {

-		if (fEventFilters != null) {

-			fEventFilters.remove(filter);

-			if (fEventFilters.size() == 0) {

-				fEventFilters = null;

-			}

-		}

-	}	

-	

-	/**

-	 * Logs the given message if in debug mode.

-	 * 

-	 * @param message the message to log

-	 * @since 2.0

-	 */

-	public static void logDebugMessage(String message) {

-		if (getDefault().isDebugging()) {

-			// this message is intentionally not internationalized, as an exception may

-			// be due to the resource bundle itself

-			log(new Status(IStatus.ERROR, getDefault().getDescriptor().getUniqueIdentifier(), INTERNAL_ERROR, "Internal message logged from Debug Core: " + message, null));

-		}

-	}

-	

-	/**

-	 * Logs the specified status with this plug-in's log.

-	 * 

-	 * @param status status to log

-	 * @since 2.0

-	 */

-	public static void log(IStatus status) {

-		getDefault().getLog().log(status);

-	}

-	

-	/**

-	 * Logs the specified throwable with this plug-in's log.

-	 * 

-	 * @param t throwable to log 

-	 * @since 2.0

-	 */

-	public static void log(Throwable t) {

-		IStatus status= new Status(IStatus.ERROR, getDefault().getDescriptor().getUniqueIdentifier(), INTERNAL_ERROR, "Error logged from Debug Core: ", t); //$NON-NLS-1$

-		log(status);

-	}

-	

-	/**

-	 * Register status handlers.

-	 * 

-	 * @exception CoreException if an exception occurs reading

-	 *  the extensions

-	 */

-	private void initializeStatusHandlers() throws CoreException {

-		fStatusHandlers = new HashMap(10);

-		IPluginDescriptor descriptor= DebugPlugin.getDefault().getDescriptor();

-		IExtensionPoint extensionPoint= descriptor.getExtensionPoint(EXTENSION_POINT_STATUS_HANDLERS);

-		IConfigurationElement[] infos= extensionPoint.getConfigurationElements();

-		for (int i= 0; i < infos.length; i++) {

-			IConfigurationElement configurationElement = infos[i];

-			String id = configurationElement.getAttribute("plugin"); //$NON-NLS-1$

-			String code = configurationElement.getAttribute("code"); //$NON-NLS-1$

-			

-			if (id != null && code != null) {

-				try {

-					StatusHandlerKey key = new StatusHandlerKey(id, Integer.parseInt(code));

-					fStatusHandlers.put(key, configurationElement);

-				} catch (NumberFormatException e) {

-					// invalid status handler

-					invalidStatusHandler(e, configurationElement.getAttribute("id")); //$NON-NLS-1$

-				}

-			} else {

-				// invalid status handler

-				invalidStatusHandler(null, configurationElement.getAttribute("id")); //$NON-NLS-1$

-			}

-		}			

-	}

-	

-	private void invalidStatusHandler(Exception e, String id) {

-		log(new Status(IStatus.ERROR, getDescriptor().getUniqueIdentifier(), INTERNAL_ERROR, MessageFormat.format("Invalid status handler extension: {0}", new String[] {id}), e));

-	}

-	

-	/**

-	 * Key for status handler extensions - a plug-in identifier/code pair

-	 */

-	class StatusHandlerKey {

-		

-		String fPluginId;

-		int fCode;

-		

-		StatusHandlerKey(String pluginId, int code) {

-			fPluginId = pluginId;

-			fCode = code;

-		}

-		

-		public int hashCode() {

-			return fPluginId.hashCode() + fCode;

-		}

-		

-		public boolean equals(Object obj) {

-			if (obj instanceof StatusHandlerKey) {

-				StatusHandlerKey s = (StatusHandlerKey)obj;

-				return fCode == s.fCode && fPluginId.equals(s.fPluginId);

-			}

-			return false;

-		}

-	}

-

-	/**

-	 * Returns whether any event filters are registered

-	 * 

-	 * @return whether any event filters are registered

-	 */

-	private boolean hasEventFilters() {

-		return fEventFilters != null && fEventFilters.size() > 0;

-	}

-

-	

-	

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
deleted file mode 100644
index e25f2fc..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-

-import org.eclipse.core.resources.IMarkerDelta;

-import org.eclipse.debug.core.model.IBreakpoint;

-

-/**

- * A breakpoint listener is notified of breakpoint additions,

- * removals, and changes. Listeners register and deregister with the

- * breakpoint manager.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IBreakpointManager

- */

-

-public interface IBreakpointListener {

-

-	/**

-	 * Notifies this listener that the given breakpoint has been added

-	 * to the breakpoint manager.

-	 *

-	 * @param breakpoint the added breakpoint

-	 * @since 2.0

-	 */

-	public void breakpointAdded(IBreakpoint breakpoint);

-	/**

-	 * Notifies this listener that the given breakpoint has been removed

-	 * from the breakpoint manager.

-	 * If the given breakpoint has been removed because it has been deleted,

-	 * the associated marker delta is also provided.

-	 *

-	 * @param breakpoint the removed breakpoint

-	 * @param delta the associated marker delta, or  <code>null</code> when

-	 * 	the breakpoint is removed from the breakpoint manager without

-	 *	being deleted

-	 *

-	 * @see org.eclipse.core.resources.IMarkerDelta

-	 * @since 2.0

-	 */

-	public void breakpointRemoved(IBreakpoint breakpoint, IMarkerDelta delta);

-	

-	/**

-	 * Notifies this listener that an attribute of the given breakpoint has

-	 * changed, as described by the delta.

-	 *

-	 * @param breakpoint the changed breakpoint

-	 * @param delta the marker delta that describes the changes

-	 *  with the marker associated with the given breakpoint, or

-	 *  <code>null</code> when the breakpoint change does not generate

-	 *  a marker delta

-	 *

-	 * @see org.eclipse.core.resources.IMarkerDelta

-	 * @since 2.0

-	 */

-	public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta);

-

-}
\ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
deleted file mode 100644
index 5d7d1bf..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.IMarker;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.debug.core.model.IBreakpoint;

-

-/**

- * The breakpoint manager manages the collection of breakpoints

- * in the workspace. A breakpoint suspends the execution of a

- * program being debugged. The kinds of breakpoints supported by each

- * debug architecture and the information required to create those

- * breakpoints is defined by each debug architecture.

- * Breakpoint creation is a client responsibility.

- * <p>

- * Clients interested in breakpoint change notification may

- * register with the breakpoint manager - see

- * <code>IBreakpointListener</code>.

- * </p>

- * <p>

- * This interface is not intended to be implemented by clients.

- * </p>

- * @see IBreakpointListener

- */

-public interface IBreakpointManager {

-	/**

-	 * Adds the given breakpoint to the collection of registered breakpoints

-	 * in the workspace and notifies all registered listeners. This has no effect

-	 * if the given breakpoint is already registered.

-	 *

-	 * @param breakpoint the breakpoint to add

-	 *

-	 * @exception DebugException if adding fails. Reasons include:<ul>

-	 * <li>CONFIGURATION_INVALID - the required <code>MODEL_IDENTIFIER</code> attribute

-	 * 	is not set on the breakpoint marker.</li>

-	 * <li>A <code>CoreException</code> occurred while verifying the <code>MODEL_IDENTIFIER</code>

-	 *	attribute.</li>

-	 * </ul>

-	 * @since 2.0

-	 */

-	public void addBreakpoint(IBreakpoint breakpoint) throws CoreException;

-	

-	/**

-	 * Returns the breakpoint associated with the given marker or

-	 * <code>null</code> if no such breakpoint exists

-	 * 

-	 * @param marker the marker

-	 * @return the breakpoint associated with the marker

-	 * 	or <code>null</code> if none exists

-	 * @since 2.0

-	 */

-	public IBreakpoint getBreakpoint(IMarker marker);	

-	

-	/**

-	 * Returns a collection of all registered breakpoints.

-	 * Returns an empty array if no breakpoints are registered.

-	 *

-	 * @return an array of breakpoints

-	 * @since 2.0

-	 */

-	public IBreakpoint[] getBreakpoints();

-	

-	/**

-	 * Returns whether there are any registered breakpoints.

-	 * 

-	 * @return whether there are any registered breakpoints

-	 * @since 2.0

-	 */

-	public boolean hasBreakpoints();

-	

-	/**

-	 * Returns a collection of all breakpoints registered for the

-	 * given debug model. Answers an empty array if no breakpoints are registered

-	 * for the given debug model.

-	 *

-	 * @param modelIdentifier identifier of a debug model plug-in

-	 * @return an array of breakpoints

-	 * @since 2.0

-	 */

-	public IBreakpoint[] getBreakpoints(String modelIdentifier);

-		

-	/**

-	 * Returns whether the given breakpoint is currently

-	 * registered with this breakpoint manager.

-	 *

-	 * @return whether the breakpoint is registered

-	 * @since 2.0

-	 */

-	public boolean isRegistered(IBreakpoint breakpoint);

-	

-	/**

-	 * Notifies all registered listeners that the given

-	 * breakpoint has changed. Has no effect if the given

-	 * breakpoint is not currently registered.

-	 * 

-	 * This method is intended to be used when a breakpoint

-	 * attribute is changed that does not alter the breakpoint's

-	 * underlying marker, that is, when notification will not occur

-	 * via the marker delta mechanism.

-	 * 

-	 * @param breakpoint the breakpoint that has changed.

-	 * @since 2.0

-	 */

-	public void fireBreakpointChanged(IBreakpoint breakpoint);

-

-	/**

-	 * Removes the given breakpoint from the breakpoint manager, deletes

-	 * the marker assocaited with the breakpoint if the <code>delete</code> flag

-	 * is <code>true</code>, and notifies all registered

-	 * listeners. Has no effect if the given breakpoint is not currently

-	 * registered.

-	 *

-	 * @param breakpoint the breakpoint to remove

-	 * @param delete whether to delete the marker associated with the

-	 *  breakpoint

-	 * @exception CoreException if an exception occurs while deleting the

-	 * 	underlying marker.

-	 * @since 2.0

-	 */

-	public void removeBreakpoint(IBreakpoint breakpoint, boolean delete) throws CoreException;

-

-	/**

-	 * Adds the given listener to the collection of registered breakpoint listeners.

-	 * Has no effect if an identical listener is already registered.

-	 *

-	 * @param listener the listener to add

-	 */

-	public void addBreakpointListener(IBreakpointListener listener);

-

-	/**

-	 * Removes the given listener from the collection of registered breakpoint listeners.

-	 * Has no effect if an identical listener is not already registered.

-	 *

-	 * @param listener the listener to remove	

-	 */

-	public void removeBreakpointListener(IBreakpointListener listener);

-	

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
deleted file mode 100644
index 64c1c8e..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * An event filter allows clients to intercept debug events.

- * Event filters are registered with the debug plug-in.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see DebugPlugin

- * @since 2.0

- */

-public interface IDebugEventFilter {

-

-	/**

-	 * Filters the given set of debug events, and returns the set of debug

-	 * events that should be fired to registered listeners - <code>null</code>

-	 * or an empty collection if no debug events should be fired.

-	 * <p>

-	 * When multiple event filters are registered, events are passed through

-	 * all filters. That is, the events returned from the first filter are

-	 * passed through the second filter, and so on.

-	 * </p>

-	 * 

-	 * @return  the set of debug events to fire

-	 */

-	public DebugEvent[] filterDebugEvents(DebugEvent[] events);

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventListener.java
deleted file mode 100644
index 6be0e4f..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * A debug event listener registers with the debug plug-in

- * to receive event notification from programs being run or debugged.

- * <p>

- * Clients may implement this interface.

- * </p>

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to 

- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 

- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken

- * (repeatedly) as the API evolves.

- * </p>

- * @see DebugEvent

- * @deprecated implementors should implement the new interface

- *  <code>IDebugEventSetListener</code>

- */

-public interface IDebugEventListener {

-	/**

-	 * Notifies this listener of the given debug event.

-	 *

-	 * @param event the debug event

-	 * @deprecated impementors should implement the new interface

-	 * 	<code>IDebugEventSetListener</code>

-	 */

-	public void handleDebugEvent(DebugEvent event);

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
deleted file mode 100644
index bc812a1..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.debug.core;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-/**
- * A debug event set listener registers with the debug plug-in
- * to receive event notification from programs being run or debugged.
- * <p>
- * When more than one event is reported, each event has occurred at the
- * same location in a target program. For example, a breakpoint may
- * reside at the same location at which a step request completes. In 
- * this case the breakpoint event and step end event are reported together
- * in the same event set.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugEvent
- * @since 2.0
- */
-public interface IDebugEventSetListener {
-	/**
-	 * Notifies this listener of the given debug events.
-	 * All of the events in the given event collection occurred
-	 * at the same location the program be run or debugged.
-	 *
-	 * @param events the debug events
-	 */
-	public void handleDebugEvents(DebugEvent[] events);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
deleted file mode 100644
index c34bcf9..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-

-import org.eclipse.debug.core.model.IExpression;

-

-/**

- * An expression listener is notified of expression additions,

- * removals, and changes. Listeners register and deregister with the

- * expression manager.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IExpressionManager

- * @since 2.0

- */

-

-public interface IExpressionListener {

-

-	/**

-	 * Notifies this listener that the given expression has been added

-	 * to the expression manager.

-	 *

-	 * @param expression the added expression

-	 */

-	public void expressionAdded(IExpression expression);

-	/**

-	 * Notifies this listener that the given expression has been removed

-	 * from the expression manager.

-	 *

-	 * @param expression the removed expression

-	 */

-	public void expressionRemoved(IExpression expression);

-	

-	/**

-	 * Notifies this listener that the given expression has

-	 * changed.

-	 *

-	 * @param expression the changed expression

-	 */

-	public void expressionChanged(IExpression expression);

-

-}
\ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
deleted file mode 100644
index 04e8ac9..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.model.IExpression;

-

-/**

- * The expression manager manages the collection of registered

- * expressions in the workspace. An expression is a snippet of code

- * that can be evaluated to produce a value. Expression creation

- * and evaluation are client responsibilities.

- * <p>

- * Clients interested in expression change notification may

- * register with the expression manager - see

- * <code>IExpressionListener</code>.

- * </p>

- * <p>

- * This interface is not intended to be implemented by clients.

- * </p>

- * @see IExpression

- * @see IExpressionListener

- * @since 2.0

- */

-public interface IExpressionManager {

-	/**

-	 * Adds the given expression to the collection of registered expressions

-	 * in the workspace and notifies all registered listeners. This has no effect

-	 * if the given expression is already registered.

-	 *

-	 * @param expression the expression to add

-	 */

-	public void addExpression(IExpression expression);

-		

-	/**

-	 * Returns a collection of all registered expressions,

-	 * possibly empty.

-	 *

-	 * @return an array of expressions

-	 */

-	public IExpression[] getExpressions();

-	

-	/**

-	 * Returns whether there are any registered expressions

-	 * 

-	 * @return whether there are any registered expressions

-	 */

-	public boolean hasExpressions();

-	

-	/**

-	 * Returns a collection of all expressions registered for the

-	 * given debug model,possibly empty.

-	 *

-	 * @param modelIdentifier identifier of a debug model plug-in

-	 * @return an array of expressions

-	 */

-	public IExpression[] getExpressions(String modelIdentifier);

-		

-	/**

-	 * Removes the given expression from the expression manager,

-	 * and notifies all registered listeners. Has no effect if the

-	 * given expression is not currently registered.

-	 *

-	 * @param expression the expression to remove

-	 */

-	public void removeExpression(IExpression expression);

-

-	/**

-	 * Adds the given listener to the collection of registered expression listeners.

-	 * Has no effect if an identical listener is already registered.

-	 *

-	 * @param listener the listener to add

-	 */

-	public void addExpressionListener(IExpressionListener listener);

-

-	/**

-	 * Removes the given listener from the collection of registered expression listeners.

-	 * Has no effect if an identical listener is not already registered.

-	 *

-	 * @param listener the listener to remove	

-	 */

-	public void removeExpressionListener(IExpressionListener listener);

-	

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
deleted file mode 100644
index a8fd9ae..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.model.*;

-import org.eclipse.core.runtime.IAdaptable;

-

-/**

- * A launch is the result of launching a debug session

- * and/or one or more system processes.

- * <p>

- * This interface is not intended to be implemented by clients. Clients

- * should create instances of this interface by using the implementation

- * provided by the class <code>Launch</code>.

- * </p>

- * @see Launch

- */

-public interface ILaunch extends ITerminate, IAdaptable {

-	/**

-	 * Returns the children of this launch - a collection

-	 * of one or more debug targets and processes, possibly empty.

-	 *

-	 * @return an array (element type:<code>IDebugTarget</code> or <code>IProcess</code>),

-	 * 	or an empty array

-	 */

-	public Object[] getChildren();

-	/**

-	 * Returns the primary (first) debug target associated with this launch, or <code>null</code>

-	 * if no debug target is associated with this launch. All debug targets 

-	 * associated with this launch may be retrieved by

-	 * <code>getDebugTargets()</code>.

-	 *

-	 * @return the primary debug target associated with this launch, or <code>null</code>

-	 */

-	public IDebugTarget getDebugTarget();

-	/**

-	 * Returns the object that was launched. Cannot return <code>null</code>.

-	 * 

-	 * @return the launched object

-	 * @deprecated to be removed

-	 */

-	public Object getElement();

-	/**

-	 * Returns the launcher that was used to launch.

-	 * Returns <code>null</code> if this launch was 

-	 * the result of a launch configuration being

-	 * launched.

-	 *

-	 * @return the launcher, or <code>null</code>

-	 * @deprecated to be removed

-	 */

-	public ILauncher getLauncher();

-	/**

-	 * Returns the processes that were launched,

-	 * or an empty collection if no processes were launched.

-	 *

-	 * @return array of processes

-	 */

-	public IProcess[] getProcesses();

-	

-	/**

-	 * Returns all the debug targets associatd with this launch,

-	 * or an empty collection if no debug targets are associated

-	 * with this launch. The primary debug target is the first

-	 * in the collection (if any).

-	 *

-	 * @return array of debug targets

-	 * @since 2.0

-	 */

-	public IDebugTarget[] getDebugTargets();

-	

-	/**

-	 * Adds the given debug target to this launch. Has no effect

-	 * if the given debug target is already associated with this

-	 * launch. Registered listeners are notified that this launch

-	 * has changed.

-	 *

-	 * @param target debug target to add to this launch

-	 * @since 2.0

-	 */

-	public void addDebugTarget(IDebugTarget target);	

-	

-	/**

-	 * Removes the given debug target from this launch. Has no effect

-	 * if the given debug target is not already associated with this

-	 * launch. Registered listeners are notified that this launch

-	 * has changed.

-	 *

-	 * @param target debug target to remove from this launch

-	 * @since 2.0

-	 */

-	public void removeDebugTarget(IDebugTarget target);	

-	

-	/**

-	 * Adds the given process to this launch. Has no effect

-	 * if the given process is already associated with this

-	 * launch. Registered listeners are notified that this launch

-	 * has changed.

-	 *

-	 * @param process the process to add to this launch

-	 * @since 2.0

-	 */

-	public void addProcess(IProcess process);		

-	

-	/**

-	 * Removes the given process from this launch. Has no effect

-	 * if the given process is not already associated with this

-	 * launch. Registered listeners are notified that this launch

-	 * has changed.

-	 *

-	 * @param process the process to remove from this launch

-	 * @since 2.0

-	 */

-	public void removeProcess(IProcess process);			

-		

-	/**

-	 * Returns the source locator to use for locating source elements for

-	 * the debug target associated with this launch, or <code>null</code>

-	 * if source lookup is not supported.

-	 *

-	 * @return the source locator

-	 */

-	public ISourceLocator getSourceLocator();

-	

-	/**

-	 * Sets the source locator to use for locating source elements for

-	 * the debug target associated with this launch, or <code>null</code>

-	 * if source lookup is not supported.

-	 *

-	 * @param sourceLocator source locator or <code>null</code>

-	 * @since 2.0

-	 */

-	public void setSourceLocator(ISourceLocator sourceLocator);

-		

-	/**

-	 * Returns the mode of this launch - one of the mode constants defined by

-	 * the launch manager.

-	 *

-	 * @return the launch mode

-	 * @see ILaunchManager

-	 */

-	public String getLaunchMode();

-	

-	/**

-	 * Returns the configuration that was launched, or <code>null</code>

-	 * if no configration was launched.

-	 * 

-	 * @return the launched configuration or <code>null</code>

-	 * @since 2.0

-	 */

-	public ILaunchConfiguration getLaunchConfiguration();

-	

-	/**

-	 * Sets the value of a client defined attribute.

-	 *

-	 * @param key the attribute key

-	 * @param value the attribute value

-	 * @since 2.0

-	 */

-	public void setAttribute(String key, String value);

-	

-	/**

-	 * Returns the value of a client defined attribute.

-	 *

-	 * @param key the attribute key

-	 * @return value the attribute value, or <code>null</code> if undefined

-	 * @since 2.0

-	 */

-	public String getAttribute(String key);	

-	

-	/**

-	 * Returns whether this launch contains at least one process

-	 * or debug target.

-	 * 

-	 * @return whether this launch contains at least one process

-	 * or debug target

-	 * @since 2.0

-	 */

-	public boolean hasChildren();

-

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
deleted file mode 100644
index 7e2f74a..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
+++ /dev/null
@@ -1,343 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.List;

-import java.util.Map;

-

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IAdaptable;

-import org.eclipse.core.runtime.IPath;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.debug.core.model.IPersistableSourceLocator;

-

-/**

- * A launch configuration describes how to launch an application.

- * Each launch configuration is an instance of a type of launch

- * configuration as described by a launch configuration type 

- * extension. Each launch configuration has a launch configuration

- * delegate which performs the actual launching of a

- * configuration.

- * <p>

- * A launch configuration may be shared in a repository via

- * standard VCM mechanisms, or may be stored locally, essentially

- * making the launch configuration private for a single user.

- * Thus, a launch configuration may stored as a file in the

- * workspace (shared), or as a file in the debug plug-in's state

- * location.

- * </p>

- * A launch configuration is a handle to its underlying storage.

- * </p>

- * <p>

- * A launch configuration is modified by obtaining a working copy

- * of a launch configuration, modifying the working copy, and then

- * saving the working copy.

- * </p>

- * <p>

- * This interface is not intended to be implemented by clients. Clients

- * that define a launch configuration delegate extension implement the

- * <code>ILaunchConfigurationDelegate</code> interface.

- * </p>

- * @see ILaunchConfigurationType

- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate

- * @see ILaunchConfigurationWorkingCopy

- * @since 2.0

- */

-public interface ILaunchConfiguration extends IAdaptable {

-	

-	/**

-	 * The file extension for launch configuration files

-	 * (value <code>"launch"</code>).

-	 */

-	public static final String LAUNCH_CONFIGURATION_FILE_EXTENSION = "launch"; //$NON-NLS-1$

-	

-	/**

-	 * Launch configuration attribute storing an identifier of

-	 * a persistable source locator extension. When this attribute is

-	 * specified, a new source locator will be created automatically and

-	 * associated with the launch for this configuration.

-	 * 

-	 * @see IPersistableSourceLocator

-	 */

-	public static final String ATTR_SOURCE_LOCATOR_ID = DebugPlugin.PLUGIN_ID + ".source_locator_id"; //$NON-NLS-1$

-	

-	/**

-	 * Launch configuration attribute storing a memento of a 

-	 * source locator. When this attribute is specified in

-	 * conjunction with a source locator id, the source locator

-	 * created for a launch will be initialized with this memento.

-	 * When not specified, but a source locator id is specified,

-	 * the source locator will be initialized to default values.

-	 * 

-	 * @see IPersistableSourceLocator 

-	 */

-	public static final String ATTR_SOURCE_LOCATOR_MEMENTO = DebugPlugin.PLUGIN_ID + ".source_locator_memento"; //$NON-NLS-1$

-	

-	/**

-	 * Launches this configuration in the specified mode by delegating to

-	 * this configuration's launch configuration delegate, and returns the

-	 * resulting launch.

-	 * A new launch object is created and registered with the launch manager

-	 * before passing it to this configuration's delegate for contributions

-	 * (debug targets and processes).

-	 * If the delegate contributes a source locator to the launch, that

-	 * source locator is used. Otherwise an appropriate source locator is

-	 * contributed to the launch  based on the values of

-	 * <code>ATTR_SOURCE_LOCAOTOR_ID</code> and <code>ATTR_SOURCE_LOCATOR_MEMENTO</code>.

-	 * If the launch is cancelled (via the given progress monitor), the

-	 * launch is removed from the launch manager. The launch is returned

-	 * whether cancelled or not.

-	 * Invoking this method causes the underlying launch configuration delegate

-	 * to be instantiated (if not already).

-	 * 

-	 * @param mode the mode in which to launch, one of the mode constants

-	 *  defined by this interface - <code>RUN</code> or <code>DEBUG</code>.

-	 * @param monitor progress monitor, or <code>null</code>

-	 * @return the resulting launch.

-	 * @exception CoreException if this method fails. Reasons include:<ul>

-	 * <li>unable to instantiate the underlying launch configuration delegate</li>

-	 * <li>the launch fails (in the delegate)</code>

-	 * </ul>

-	 */

-	public ILaunch launch(String mode, IProgressMonitor monitor) throws CoreException;

-	

-	/**

-	 * Returns whether this launch configuration supports the

-	 * specified mode.

-	 * 

-	 * @param mode a mode in which a configuration can be launched, one of

-	 *  the mode constants defined by this interface - <code>RUN</code> or

-	 *  <code>DEBUG</code>.

-	 * @return whether this launch configuration supports the

-	 *  specified mode

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>Unable to retrieve this launch configuration's type.</li>

-	 * </ul>

-	 */

-	public boolean supportsMode(String mode) throws CoreException;

-	

-	/**

-	 * Returns the name of this launch configuration.

-	 * 

-	 * @return the name of this launch configuration

-	 */

-	public String getName();

-		

-	/**

-	 * Returns the location of this launch configuration as a

-	 * path.

-	 * 

-	 * @return the location of this launch configuration as a

-	 *  path

-	 */

-	public IPath getLocation();

-	

-	/**

-	 * Returns whether this launch configuration's underlying

-	 * storage exists.

-	 * 

-	 * @return whether this launch configuration's underlying

-	 *  storage exists

-	 */

-	public boolean exists();

-	

-	/**

-	 * Returns the integer-valued attribute with the given name.  

-	 * Returns the given default value if the attribute is undefined.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param defaultValue the value to use if no value is found

-	 * @return the value or the default value if no value was found.

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while retrieving the attribute from

-	 *  underlying storage.</li>

-	 * <li>An attribute with the given name exists, but does not

-	 *  have an integer value</li>

-	 * </ul>

-	 */

-	public int getAttribute(String attributeName, int defaultValue) throws CoreException;

-	/**

-	 * Returns the string-valued attribute with the given name.  

-	 * Returns the given default value if the attribute is undefined.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param defaultValue the value to use if no value is found

-	 * @return the value or the default value if no value was found.

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while retrieving the attribute from

-	 *  underlying storage.</li>

-	 * <li>An attribute with the given name exists, but does not

-	 *  have a String value</li>

-	 * </ul>

-	 */

-	public String getAttribute(String attributeName, String defaultValue) throws CoreException;

-	/**

-	 * Returns the boolean-valued attribute with the given name.  

-	 * Returns the given default value if the attribute is undefined.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param defaultValue the value to use if no value is found

-	 * @return the value or the default value if no value was found.

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while retrieving the attribute from

-	 *  underlying storage.</li>

-	 * <li>An attribute with the given name exists, but does not

-	 *  have a boolean value</li>

-	 * </ul>

-	 */

-	public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException;

-	/**

-	 * Returns the <code>java.util.List</code>-valued attribute with the given name.  

-	 * Returns the given default value if the attribute is undefined.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param defaultValue the value to use if no value is found

-	 * @return the value or the default value if no value was found.

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while retrieving the attribute from

-	 *  underlying storage.</li>

-	 * <li>An attribute with the given name exists, but does not

-	 *  have a List value</li>

-	 * </ul>

-	 */

-	public List getAttribute(String attributeName, List defaultValue) throws CoreException;

-	/**

-	 * Returns the <code>java.util.Map</code>-valued attribute with the given name.  

-	 * Returns the given default value if the attribute is undefined.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param defaultValue the value to use if no value is found

-	 * @return the value or the default value if no value was found.

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while retrieving the attribute from

-	 *  underlying storage.</li>

-	 * <li>An attribute with the given name exists, but does not

-	 *  have a Map value</li>

-	 * </ul>

-	 */

-	public Map getAttribute(String attributeName, Map defaultValue) throws CoreException;

-		

-	/**

-	 * Returns the file this launch configuration is stored

-	 * in, or <code>null</code> if this configuration is stored

-	 * locally with the workspace.

-	 * 

-	 * @return the file this launch configuration is stored

-	 *  in, or <code>null</code> if this configuration is stored

-	 *  locally with the workspace

-	 */

-	public IFile getFile();

-	

-	/**

-	 * Returns the type of this launch configuration.

-	 * 

-	 * @return the type of this launch configuration

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>Unable to retrieve or instantiate this launch configuration's type.</li>

-	 * </ul>

-	 * @see ILaunchConfigurationType

-	 */

-	public ILaunchConfigurationType getType() throws CoreException;

-		

-	/**

-	 * Returns whether this launch configuration is stored

-	 * locally with the workspace.

-	 * 

-	 * @return whether this launch configuration is stored

-	 *  locally with the workspace

-	 */

-	public boolean isLocal();

-	

-	/**

-	 * Returns a working copy of this launch configuration.

-	 * Changes to the working copy will be applied to this

-	 * launch configuration when saved. The working copy will

-	 * refer to this launch configuration as its original

-	 * launch configuration.

-	 * 

-	 * @return a working copy of this launch configuration

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while initializing the contents of the

-	 * working copy from this configurations underlying storage.</li>

-	 * </ul>

-	 * @see ILaunchConfigurationWorkingCopy#getOriginal()

-	 */

-	public ILaunchConfigurationWorkingCopy getWorkingCopy() throws CoreException;		

-	

-	/**

-	 * Returns a copy of this launch configuration, as a

-	 * working copy, with the specified name. The new

-	 * working copy does not refer back to this configuration

-	 * as its original launch configuration (the working copy

-	 * will return <code>null</code> for <code>getOriginal()</code>).

-	 * When the working copy is saved it will not effect this

-	 * launch configuration.

-	 * 

-	 * @param name the name of the copy

-	 * @return a copy of this launch configuration

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while initializing the contents of the

-	 * working copy from this configurations underlying storage.</li>

-	 * </ul>

-	 * @see ILaunchConfigurationWorkingCopy#getOriginal()

-	 */

-	public ILaunchConfigurationWorkingCopy copy(String name) throws CoreException;	

-	

-	/**

-	 * Returns whether this launch configuration is a working

-	 * copy.

-	 * 

-	 * @return whether this launch configuration is a working

-	 *  copy

-	 */

-	public boolean isWorkingCopy();

-	

-	/**

-	 * Deletes this launch configuration. This configuration's underlying

-	 * storage is deleted. Has no effect if this configuration

-	 * does not exist.

-	 * 

-	 * @exception CoreException if this method fails. Reasons include:

-	 * <ul>

-	 * <li>An exception occurs while deleting this configuration's

-	 *  underlying storage.</li>

-	 * </ul>

-	 */

-	public void delete() throws CoreException;

-	

-	/**

-	 * Returns a memento for this launch configuration, or <code>null</code>

-	 * if unable to generate a memento for this configuration. A memento

-	 * can be used to re-create a launch configuration, via the

-	 * launch manager.

-	 * 

-	 * @return a memento for this configuration

-	 * @see ILaunchManager#getLaunchConfiguration(String)

-	 * @exception CoreException if an exception occurs generating this

-	 *  launch configuration's memento 

-	 */

-	public String getMemento() throws CoreException;

-	

-	/**

-	 * Returns whether the contents of this launch configuration are 

-	 * equal to the contents of the given launch configuration.

-	 * 

-	 * @return whether the contents of this launch configuration are equal to the contents

-	 * of specified launch configuration.

-	 */

-	public boolean contentsEqual(ILaunchConfiguration configuration);

-

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
deleted file mode 100644
index 2653d8a..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-/**

- * Notified when a launch configuration is created,

- * deleted, or changed.

- * <p>

- * This interface is intended to be implemented by clients.

- * </p>

- * @since 2.0

- */

-public interface ILaunchConfigurationListener {

-	

-	/**

-	 * The given launch configuration has been created.

-	 * 

-	 * @param configuration the newly created launch configuration

-	 */

-	public void launchConfigurationAdded(ILaunchConfiguration configuration);

-	

-	/**

-	 * The given launch configuration has changed in some way.

-	 * The configuration may be a working copy.

-	 * 

-	 * @param configuration the launch configuration that has

-	 *  changed

-	 */

-	public void launchConfigurationChanged(ILaunchConfiguration configuration);

-	

-	/**

-	 * The given launch configuration has been deleted.

-	 * 

-	 * @param configuration the deleted launch configuration

-	 */

-	public void launchConfigurationRemoved(ILaunchConfiguration configuration);	

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
deleted file mode 100644
index 64c3788..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.IContainer;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;

-

-/**

- * Describes and creates instances of a specific type of

- * launch configuration. Launch configuration types are

- * defined by extensions.

- * <p>

- * A launch configuration type extension is defined in <code>plugin.xml</code>.

- * Following is an example definition of a launch configuration

- * type extension.

- * <pre>

- * &lt;extension point="org.eclipse.debug.core.launchConfigurationTypes"&gt;

- *   &lt;launchConfigurationType 

- *      id="com.example.ExampleIdentifier"

- *      delegate="com.example.ExampleLaunchConfigurationDelegate"

- *      modes="run, debug"

- *      name="Example Application"

- *   &lt;/launchConfigurationType&gt;

- * &lt;/extension&gt;

- * </pre>

- * The attributes are specified as follows:

- * <ul>

- * <li><code>id</code> specifies a unique identifier for this launch configuration

- *  type.</li>

- * <li><code>delegate</code> specifies the fully qualified name of the java class

- *   that implements <code>ILaunchConfigurationDelegate</code>. Launch configuration

- *   instances of this type will delegate to instances of this class

- *   to perform launching.</li>

- * <li><code>modes</code> specifies a comma separated list of the modes this

- *    type of launch configuration suports - <code>"run"</code> and/or <code>"debug</code>.</li>

- * <li><code>name</code> specifies a human readable name for this type

- *    of launch configuration.</li>

- * </ul>

- * </p>

- * <p>

- * This interface is not intended to be implemented by clients. Clients

- * that define a launch configuration delegate extension implement the

- * <code>ILaunchConfigurationDelegate</code> interface.

- * </p>

- * @see ILaunchConfiguration

- * @since 2.0

- */

-public interface ILaunchConfigurationType {

-		

-	/**

-	 * Returns whether this type of launch configuration supports

-	 * the specified mode.

-	 * 

-	 * @param mode a mode in which a configuration can be launched, one of

-	 *  the mode constants defined by this interface - <code>RUN</code> or

-	 *  <code>DEBUG</code>.

-	 * @return whether this kind of launch configuration supports the

-	 *  specified mode

-	 */

-	public boolean supportsMode(String mode);

-	

-	/**

-	 * Returns the name of this type of launch configuration.

-	 * 

-	 * @return the name of this type of launch configuration

-	 */

-	public String getName();

-	

-	/**

-	 * Returns the unique identifier for this type of launch configuration

-	 * 

-	 * @return the unique identifier for this type of launch configuration

-	 */

-	public String getIdentifier();

-	

-	/**

-	 * Returns a new launch configuration working copy of this type,

-	 * that resides in the specified container, with the given name.

-	 * When <code>container</code> is </code>null</code>, the configuration

-	 * will reside locally in the metadata area.

-	 * Note: a working copy is not actually created until saved.

-	 * 

-	 * @param container the container in which the new configuration will

-	 *  reside, or <code>null</code> if the configuration should reside

-	 *  locally with the metadata.

-	 * @param name name for the launch configuration

-	 * @return a new launch configuration instance of this type

-	 * @exception CoreException if an instance of this type

-	 *  of launch configuration could not be created for any

-	 *  reason

-	 */

-	public ILaunchConfigurationWorkingCopy newInstance(IContainer container, String name) throws CoreException;

-	

-	/**

-	 * Returns the launch configuration delegate for launch

-	 * configurations of this type. The first time this method

-	 * is called, the delegate is instantiated.

-	 * 

-	 * @return launch configuration delegate

-	 * @exception CoreException if unable to instantiate the

-	 *  delegate

-	 */	

-	public ILaunchConfigurationDelegate getDelegate() throws CoreException;

-		

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
deleted file mode 100644
index a248fb8..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.List;

-import java.util.Map;

-

-import org.eclipse.core.resources.IContainer;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IAdaptable;

-

-/**

- * An editable copy of a launch configuration. Attributes of a

- * launch configuration are modified by modifying the attributes

- * of a working copy, and then saving the working copy.

- * <p>

- * This interface is not intended to be implemented by clients. Clients

- * that define a launch configuration delegate extension implement the

- * <code>ILaunchConfigurationDelegate</code> interface.

- * </p>

- * @see ILaunchConfiguration

- * @see ILaunchConfigurationType

- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate

- * @since 2.0

- */

-public interface ILaunchConfigurationWorkingCopy extends ILaunchConfiguration, IAdaptable {

-	

-	/**

-	 * Returns whether this configuration has been modified

-	 * since it was last saved or created.

-	 * 

-	 * @return whether this configuration has been modified

-	 *  since it was last saved or created

-	 */

-	public boolean isDirty();

-	

-	/**

-	 * Saves this working copy to its underlying file and returns

-	 * a handle to the resulting launch configuration.

-	 * Has no effect if this configuration does not need saving.

-	 * Creates the underlying file if not yet created.

-	 * 

-	 * @exception CoreException if an exception occurs while 

-	 *  writing this configuration to its underlying file.

-	 */

-	public ILaunchConfiguration doSave() throws CoreException;

-			

-	/**

-	 * Sets the integer-valued attribute with the given name.  

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param value the value

-	 */

-	public void setAttribute(String attributeName, int value);

-	

-	/**

-	 * Sets the String-valued attribute with the given name.

-	 * If the value is <code>null</code>, the attribute is removed from

-	 * this launch configuration.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param value the value, or <code>null</code> if the attribute is to be undefined

-	 */

-	public void setAttribute(String attributeName, String value);

-	

-	/**

-	 * Sets the <code>java.util.List</code>-valued attribute with the given name.

-	 * The specified List <em>must</em> contain only String-valued entries.

-	 * If the value is <code>null</code>, the attribute is removed from

-	 * this launch configuration.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param value the value, or <code>null</code> if the attribute is to be undefined

-	 */

-	public void setAttribute(String attributeName, List value);

-	

-	/**

-	 * Sets the <code>java.util.Map</code>-valued attribute with the given name.

-	 * The specified Map <em>must</em> contain only String keys and String values.

-	 * If the value is <code>null</code>, the attribute is removed from

-	 * this launch configuration.

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param value the value, or <code>null</code> if the attribute is to be undefined

-	 */

-	public void setAttribute(String attributeName, Map value);

-	

-	/**

-	 * Sets the boolean-valued attribute with the given name.  

-	 *

-	 * @param attributeName the name of the attribute

-	 * @param value the value

-	 */

-	public void setAttribute(String attributeName, boolean value);	

-	

-	/**

-	 * Returns the original launch configuration this working copy

-	 * was created from, or <code>null</code> if this is a new

-	 * working copy created from a launch configuration type.

-	 * 

-	 * @return launch configuration, or <code>null</code>

-	 */

-	public ILaunchConfiguration getOriginal();

-	

-	/**

-	 * Renames this launch configuration to the specified name.

-	 * The new name cannot be <code>null</code>. Has no effect if the name

-	 * is the same as the current name. If this working copy is based

-	 * on an existing launch configuration, this will cause

-	 * the underlying launch configuration file to be renamed when

-	 * this working copy is saved.

-	 * 

-	 * @param name the new name for this configuration 

-	 */

-	public void rename(String name);	

-	

-	/**

-	 * Sets the container this launch configuration will be stored

-	 * in when saved. When set to <code>null</code>, this configuration

-	 * will be stored locally with the workspace. The specified

-	 * container must exist, if specified.

-	 * <p>

-	 * If this configuration is changed from local to non-local,

-	 * a file will be created in the specified container when

-	 * saved. The local file associated with this configuration

-	 * will be deleted.

-	 * </p>

-	 * <p>

-	 * If this configuration is changed from non-local to local,

-	 * a file will be created locally when saved.

-	 * The original file associated with this configuration in

-	 * the workspace will be deleted.

-	 * </p>

-	 * 

-	 * @param container the container in which to store this

-	 *  launch configuration, or <code>null</code> if this

-	 *  configuration is to be stored locally

-	 */

-	public void setContainer(IContainer container);	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
deleted file mode 100644
index 9ba10ae..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * A launch listener is notified of launches as they

- * are added and removed from the launch manager. Also,

- * when a process or debug target is added to a launch,

- * listeners are notified of a change.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see ILaunch

- */

-public interface ILaunchListener {	

-	/**

-	 * Notifies this listener that the specified

-	 * launch has been removed.

-	 *

-	 * @param launch the removed launch

-	 * @since 2.0

-	 */

-	public void launchRemoved(ILaunch launch);

-	/**

-	 * Notifies this listener that the specified launch

-	 * has been added.

-	 * 

-	 * @param launch the newly added launch

-	 * @since 2.0

-	 */

-	public void launchAdded(ILaunch launch);	

-	/**

-	 * Notifies this listener that the specified launch

-	 * has changed. For example, a process or debug target

-	 * has been added to the launch.

-	 * 

-	 * @param launch the changed launch

-	 * @since 2.0

-	 */

-	public void launchChanged(ILaunch launch);	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
deleted file mode 100644
index 71c42a2..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
+++ /dev/null
@@ -1,369 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.model.IDebugTarget;

-import org.eclipse.debug.core.model.IPersistableSourceLocator;

-import org.eclipse.debug.core.model.IProcess;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IResource;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IAdaptable;

-

-/**

- * The launch manager manages the set of registered launches, maintaining

- * a collection of active processes and debug targets. Clients interested

- * in launch notification may register with the launch manager.

- * <p>

- * Clients are not intended to implement this interface.

- * </p>

- * @see ILaunch

- * @see ILaunchListener

- */

-public interface ILaunchManager {

-	/**

-	 * A launch in a normal, non-debug mode(value <code>"run"</code>).

-	 */

-	public static final String RUN_MODE= "run"; //$NON-NLS-1$

-	/**

-	 * A launch in a special debug mode (value <code>"debug"</code>).

-	 */

-	public static final String DEBUG_MODE= "debug"; //$NON-NLS-1$

-	

-	/**

-	 * Adds the given listener to the collection of registered launch listeners.

-	 * Has no effect if an identical listener is already registerd.

-	 *

-	 * @param listener the listener to register

-	 */

-	public void addLaunchListener(ILaunchListener listener);

-	/**

-	 * Deregisters the specified launch and notifies listeners. Has no effect

-	 * if an identical launch is not already registered.

-	 *

-	 * @param launch the launch to deregister

-	 * @deprecated use removeLaunch(ILaunch)

-	 */

-	public void deregisterLaunch(ILaunch launch);

-	/**

-	 * Removes the specified launch and notifies listeners.

-	 * Has no effect if an identical launch is not already

-	 * registered.

-	 *

-	 * @param launch the launch to remove

-	 * @since 2.0

-	 */

-	public void removeLaunch(ILaunch launch);	

-	/**

-	 * Returns the launch the given process is contained in, or <code>null</code>

-	 * if no registered launches contains the process.

-	 *

-	 * @param process the process for which to find a launch

-	 * @return the launch containing the process, or <code>null</code> if none

-	 * @deprecated debug elements should have a hard link to their launch

-	 */

-	public ILaunch findLaunch(IProcess process);

-	/**

-	 * Returns the launch the given debug target is contained

-	 * in, or <code>null</code> if no registered launches contain the debug target.

-	 *

-	 * @param target the debug target for which to find a launch

-	 * @return the launch containing the debug target, or <code>null</code> if none	 

-	 * @deprecated debug elements should have a hard link to their launch

-	 */

-	public ILaunch findLaunch(IDebugTarget target);

-	/**

-	 * Returns the collection of debug targets currently registered with this

-	 * launch manager.

-	 *

-	 * @return an array of debug targets

-	 */

-	public IDebugTarget[] getDebugTargets();

-	/**

-	 * Returns the default launcher for the given project,

-	 * or <code>null</code> if no default launcher has been set.

-	 * The default launcher is stored as a persistent property

-	 * with a project.

-	 *

-	 * @param project the project for which to retrieve a default launcher

-	 * @return the default launcher, or <code>null</code> if none has

-	 *   been set for the project

-	 * @exception CoreException if an error occurs accessing the

-	 *   persistent property

-	 * @deprecated to be removed

-	 */

-	public ILauncher getDefaultLauncher(IProject project) throws CoreException;

-	

-	/**

-	 * Returns the collection of registered launchers that can operate in the

-	 * specified mode - run or debug.

-	 *

-	 * @return an array of launchers

-	 * @deprecated to be removed

-	 */

-	public ILauncher[] getLaunchers(String mode);

-	

-	/**

-	 * Returns the collection of registered launchers.

-	 *

-	 * @return an array of launchers

-	 * @deprecated to be removed

-	 */

-	public ILauncher[] getLaunchers();

-	/**

-	 * Returns the collection of launches currently registered

-	 * with this launch manager.

-	 * 

-	 * @return an array of launches

-	 */

-	public ILaunch[] getLaunches();

-	/**

-	 * Returns the collection of processes currently registered with this

-	 * launch manager.

-	 *

-	 * @return an array of processes

-	 */

-	public IProcess[] getProcesses();

-	/**

-	 * Registers the specified launch with this launch manager

-	 * and notifies listeners. Has no effect if an identical

-	 * launch is already registered.

-	 * 

-	 * @param launch the launch to register

-	 * @deprecated use addLaunch(ILaunch)

-	 */

-	public void registerLaunch(ILaunch launch);

-	/**

-	 * Adds the specified launch and notifies listeners. Has no

-	 * effect if an identical launch is already registered.

-	 * 

-	 * @param launch the launch to add

-	 * @since 2.0

-	 */

-	public void addLaunch(ILaunch launch);	

-	/**

-	 * Removes the given listener from the collection of registered launch listeners.

-	 * Has no effect if an identical listener is not already registerd.

-	 *

-	 * @param listener the listener to deregister

-	 */

-	public void removeLaunchListener(ILaunchListener listener);

-	/**

-	 * Sets the default launcher for the given project as a persistent property.

-	 *

-	 * @param project the project for which to set the preference

-	 * @param launcher the default launcher preference

-	 * @exception CoreException if an error occurs setting the persistent property

-	 * @deprecated to be removed

-	 */

-	public void setDefaultLauncher(IProject project, ILauncher launcher) throws CoreException;

-	

-	/**

-	 * Returns all launch configurations defined in the workspace.

-	 * 

-	 * @return all launch configurations defined in the workspace

-	 * @exception CoreException if an exception occurrs retrieving configurations

-	 * @since 2.0

-	 */

-	public ILaunchConfiguration[] getLaunchConfigurations() throws CoreException;

-	

-	/**

-	 * Returns all launch configurations defined in the workspace

-	 * of the specified type

-	 * 

-	 * @param type a launch configuration type

-	 * @return all launch configurations defined in the workspace

-	 *  of the specified type

-	 * @exception CoreException if an error occurs while retreiving

-	 *  a launch configuration

-	 * @since 2.0

-	 */

-	public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException;

-	

-	/**

-	 * Returns a handle to the launch configuration contained

-	 * in the specified file. The file is not verified to exist

-	 * or contain a launch configuration.

-	 * 

-	 * @param file launch configuration file

-	 * @return a handle to the launch configuration contained

-	 *  in the specified file

-	 * @since 2.0

-	 */

-	public ILaunchConfiguration getLaunchConfiguration(IFile file);

-	

-	/**

-	 * Returns a handle to the launch configuration specified by

-	 * the given memento. The configuration may not exist.

-	 * 

-	 * @return a handle to the launch configuration specified by

-	 *  the given memento

-	 * @exception CoreException if the given memento is invalid or

-	 *  an exception occurrs parsing the memento

-	 * @see ILaunchConfiguration#getMemento()

-	 * @since 2.0

-	 */

-	public ILaunchConfiguration getLaunchConfiguration(String memento) throws CoreException;

-	

-	/**

-	 * Returns all defined launch configuration type extensions

-	 * 

-	 * @return all defined launch configuration type extensions

-	 * @since 2.0

-	 */

-	public ILaunchConfigurationType[] getLaunchConfigurationTypes();

-	

-	/**

-	 * Returns the launch configuration type extension with the specified

-	 * id, or <code>null</code> if it does not exist.

-	 * 

-	 * @param id unique identifier for a launch configuration type extension

-	 * @return the launch configuration type extension with the specified

-	 * id, or <code>null</code> if it does not exist

-	 * @since 2.0

-	 */

-	public ILaunchConfigurationType getLaunchConfigurationType(String id);

-	

-	/**

-	 * Adds the given launch configuration listener to the list

-	 * of listeners notified when a launch configuration is

-	 * added, removed, or changed. Has no effect if the given listener

-	 * is already registered.

-	 * 

-	 * @param listener launch configuration listener

-	 * @since 2.0

-	 */

-	public void addLaunchConfigurationListener(ILaunchConfigurationListener listener);

-	

-	/**

-	 * Removes the given launch configuration listener from the list

-	 * of listeners notified when a launch configuration is

-	 * added, removed, or changed. Has no effect if the given listener

-	 * is not already registered.

-	 * 

-	 * @param listener launch configuration listener

-	 * @since 2.0

-	 */

-	public void removeLaunchConfigurationListener(ILaunchConfigurationListener listener);	

-	

-	/**

-	 * Returns the default launch configuration type for the specified resource, 

-	 * or <code>null</code> if there is none.  If <code>considerResourceOnly</code>

-	 * is <code>true</code>,  only the specified resource will be considered when looking

-	 * for a default launch configuration type, otherwise the resource's containment

-	 * hierarchy will be checked for a default launch configuration type, then the

-	 * resource's file extension will be checked.

-	 * 

-	 * @param considerResourceOnly flag that indicates whether to consider only the specified

-	 *  resource or its containers and file extension as well

-	 * @param resource the resource whose default launch configuration type will be returned

-	 * @since 2.0

-	 */

-	public ILaunchConfigurationType getDefaultLaunchConfigurationType(IResource resource, boolean considerResourceOnly);

-

-	/**

-	 * Returns the default launch configuration type for the specified file extension, 

-	 * or <code>null</code> if there is none.

-	 * 

-	 * @param fileExtension the file extension whose associated default launch configuration type 

-	 *  will be returned

-	 * @since 2.0

-	 */

-	public ILaunchConfigurationType getDefaultLaunchConfigurationType(String fileExtension);

-

-	/**

-	 * Return an array of Strings representing all file extensions that have been registered

-	 * by launch configuration types.

-	 * 

-	 * @since 2.0

-	 */

-	public String[] getAllRegisteredFileExtensions();

-

-	/**

-	 * Return an array of launch configuration types that are capable of launching resources

-	 * with the specified file extension, or <code>null</code> if there are none.

-	 * 

-	 * @param fileExtension the file extension that all of the returned launch configuration types

-	 *  are capable of launching

-	 * @since 2.0

-	 */

-	public ILaunchConfigurationType[] getAllLaunchConfigurationTypesFor(String fileExtension);

-

-	/**

-	 * Set the specified launch configuration type as the default for the specified resource.

-	 * When looking for a default launch configuration type, the usual method is to start at

-	 * the resource and work up the containment chain until some resource specifies a default

-	 * launch configuration type, or until the containment chain is exhausted.

-	 * 

-	 * @param resource the workbench resource whose default launch configuration type is being set

-	 * @param configTypeID ID String of the launch configuration type that is being set as the default for 

-	 *  the specified resource

-	 * @exception CoreException if unable to set the default launch configuration type

-	 * @since 2.0

-	 */

-	public void setDefaultLaunchConfigurationType(IResource resource, String configTypeID) throws CoreException;

-

-	/**

-	 * Set the specified launch configuration type as the default for resources with the specified

-	 * file extension.

-	 * 

-	 * @param fileExtension the file extension whose default launch configuration type is being set

-	 * @param configType the String ID of the launch configuration type that is being set as the default for 

-	 *  resources with the specified file extension

-	 * @since 2.0

-	 */

-	public void setDefaultLaunchConfigurationType(String fileExtension, String configTypeID);

-	

-	/**

-	 * Return <code>true</code> if there is a launch configuration with the specified name, 

-	 * <code>false</code> otherwise.

-	 * 

-	 * @param name the name of the launch configuration whose existence is being checked

-	 * @exception CoreException if unable to retrieve existing launch configuration names

-	 * @since 2.0

-	 */

-	public boolean isExistingLaunchConfigurationName(String name) throws CoreException;

-

-	/**

-	 * Set the specified launch configuration the default launch configuration

-	 * for the specified resource.

-	 * 

-	 * @param resource the <code>IResource</code> whose default launch configuration is being set

-	 * @param config the launch configuration being set as the default

-	 * @exception CoreException if an exception occurrs setting the default configuration

-	 * @since 2.0

-	 */

-	public void setDefaultLaunchConfiguration(IResource resource, ILaunchConfiguration config) throws CoreException;

-

-	/**

-	 * Returns the default launch configuration of the specified type on the specified resource,

-	 * or <code>null</code> if none.

-	 * 

-	 * @param resource the <code>IResource</code> on which to look for a default launch configuration

-	 * @param configTypeID the identifying String of the launch configuration type to look for on resource

-	 * @return launch configuration

-	 * @exception CoreException if an exception occurrs retrieving the default

-	 *  configuration

-	 * @since 2.0

-	 */

-	public ILaunchConfiguration getDefaultLaunchConfiguration(IResource resource, String configTypeID) throws CoreException;

-	

-	/**

-	 * Creates and returns a new source locator of the specified

-	 * type.

-	 * 

-	 * @param identifier the identifier associated with a 

-	 *  persistable source locator extension

-	 * @return a source locator

-	 * @exception CoreException if an exception occurrs creating

-	 *  the source locator

-	 * @since 2.0

-	 */

-	public IPersistableSourceLocator newSourceLocator(String identifier) throws CoreException;

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILauncher.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILauncher.java
deleted file mode 100644
index c3fbcf9..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILauncher.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.Set;

-

-import org.eclipse.core.runtime.IConfigurationElement;

-import org.eclipse.debug.core.model.ILauncherDelegate;

-

-/**

- * A launcher is a proxy to a launcher extension (<code>"org.eclipse.debug.core.launchers"</code>).

- * It manages the attributes of a launcher extension, and lazily instantiates the

- * delegate when required.

- * <p>

- * This interface is not intended to be implemented by clients. Clients

- * that define a launcher extension implement the <code>ILauncherDelegate</code>

- * interface.

- * </p>

- * <p>

- * <b>NOTE:</b> This class/interface is part of an interim API that is still under development and expected to 

- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 

- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken

- * (repeatedly) as the API evolves.

- * </p>

- * @see ILauncherDelegate

- * @deprecated to be replaced with ILaunchConfiguration/ILaunchConfigurationDelegate

- */

-public interface ILauncher {

-	/**

-	 * Returns the result of invoking this launcher's underlying

-	 * delegate's launch method. This causes the delegate to be instantiated

-	 * (if not already instantiated). 

-	 *

-	 * @param elements the elements providing context for the launch

-	 * @param mode the mode in which to launch - run or debug

-	 * @return whether the launch was successful

-	 * @see ILauncherDelegate

-	 */

-	public boolean launch(Object[] elements, String mode);

-	

-	/**

-	 * Returns the modes that the underlying launcher extension

-	 * supports - run and/or debug. This will not cause the extension to

-	 * be instantiated.

-	 *

-	 * @return a set of <code>String</code> constants - one or both of

-	 *	<code>ILaunchManager.RUN_MODE</code>, <code>ILaunchManager.DEBUG_MODE</code>

-	 * @see ILaunchManager

-	 */

-	public Set getModes();

-	

-	/**

-	 * Returns the identifier of the perspective associated with the 

-	 * underlying launcher extension. This attribute determines the layout

-	 * used by the debug UI plug-in when presenting this launch.

-	 * This will not cause the extension to be instantiated.

-	 *

-	 * @return a perspective identifier, as defined by the

-	 *    <code>"org.eclipse.ui.perspective"</code> extension point

-	 */

-	public String getPerspectiveIdentifier();

-	

-	/**

-	 * Returns the label defined by the underlying launcher extension.

-	 * This will not cause the extension to be instantiated.

-	 *

-	 * @return a human readable label

-	 */

-	public String getLabel();

-	

-	/**

-	 * Returns the configuration element associated with the underlying

-	 * extension. This will not cause the extension to be instantiated.

-	 *

-	 * @return the extension's configuration element

-	 */

-	public IConfigurationElement getConfigurationElement();

-	

-	/**

-	 * Returns the unique identifier of the underlying launcher extension.

-	 * This will not cause the extension to be instantiated.

-	 *

-	 * @return the extension's identifier attribute

-	 */

-	public String getIdentifier();

-	

-	/**

-	 * Returns the underlying launcher delegate associated with this

-	 * launcher. This causes the launcher delegate to be instantiated (if

-	 * not already instantiated).

-	 *

-	 * @return the underlying launcher delegate

-	 */

-	public ILauncherDelegate getDelegate();

-	

-	/**

-	 * Returns the icon path defined by the underlying launcher extension.

-	 * The path is relative to the plugin.xml of the contributing plug-in.

-	 * This will not cause the extension to be instantiated. Returns

-	 * <code>null</code> if no icon attribute is specified.

-	 *

-	 * @return a relative path to an icon or <code>null</code>

-	 */

-	public String getIconPath();	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
deleted file mode 100644
index fe61fb5..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.eclipse.debug.core;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
- 
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A status handler registers to handle a specific status - error
- * or otherwise. Provides a mechanism for separating core (headless)
- * function from UI interaction. The debug plug-in provides a
- * status handlers extension point, against which handlers can
- * register for specific status codes - identified by plug-in
- * identifier and plug-in specific status code. The interaction between
- * an object requiring a status handler (source), and the status handler
- * is defined by the source and handler.
- * <p>
- * For example, a launch configuration delegate might encounter a timeout
- * while launching an application. In this case the delegate could abort
- * or, via the use of a status handler, prompt the user to continue. This
- * allows the launcher to be implemented in a plug-in that does not require
- * UI support, and allows another (UI) plug-in to register a handler.
- * </p>
- * <p>
- * A status handler extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a status handler extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.statusHandlers"&gt;
- *   &lt;statusHandler 
- *      id="com.example.ExampleIdentifier"
- *      class="com.example.ExampleStatusHandler"
- *      plugin="com.example.ExamplePluginId"
- *      code="123"
- *   &lt;/statusHandler&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this status handler.</li>
- * <li><code>class</code> specifies the fully qualified name of the Java class
- *   that implements <code>IStatusHandler</code>.</li>
- * <li><code>plugin</code> plug-in identifier that corresponds to the
- *   plug-in of the status this handler is registered for (i.e.
- *   <code>IStatus.getPlugin()</code>).</li>
- * <li><code>code</code> specifies the status code this handler
- *   is registered for.</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugPlugin#getStatusHandler(IStatus)
- * @since 2.0
- */
-
-public interface IStatusHandler {
-
-	/**
-	 * Notifies this status handler that the given status has been
-	 * generated by the specified source object and requires resolution.
-	 * 
-	 * @param status the status to handle
-	 * @param source the object delegating to this status handler
-	 *   the given status
-	 * @return an object representing the resolution of the status
-	 * @exception CoreException if unable to resolve the status
-	 */
-	public Object handleStatus(IStatus status, Object source) throws CoreException;
-}
\ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
deleted file mode 100644
index 50be60d..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.model.IStreamMonitor;

-

-/**

- * A stream listener is notified of changes

- * to a stream monitor.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IStreamMonitor

- */

-public interface IStreamListener {

-	/**

-	 * Notifies this listener that text has been appended to

-	 * the given stream monitor.

-	 *

-	 * @param text the appended text

-	 * @param monitor the stream monitor to which text was appended

-	 */

-	public void streamAppended(String text, IStreamMonitor monitor);

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
deleted file mode 100644
index e29de09..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
+++ /dev/null
@@ -1,475 +0,0 @@
-package org.eclipse.debug.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.ArrayList;

-import java.util.HashMap;

-import java.util.Iterator;

-import java.util.List;

-

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.MultiStatus;

-import org.eclipse.core.runtime.PlatformObject;

-import org.eclipse.debug.core.model.IDebugTarget;

-import org.eclipse.debug.core.model.IProcess;

-import org.eclipse.debug.core.model.ISourceLocator;

-import org.eclipse.debug.internal.core.DebugCoreMessages;

-import org.eclipse.debug.internal.core.LaunchManager;

-

-/**

- * A launch is the result of launching a debug session

- * and/or one or more system processes. This class provides

- * a public implementation of <code>ILaunch</code> for client

- * use.

- * <p>

- * Clients may instantiate this class. Clients may subclass this class.

- * All of the methods in this class that are part of the launcher interface are

- * final. Clients that subclass this class are not intended to change the behavior

- * or implementation of the provided methods. Subclassing is only intended

- * to add additional information to a specific launch. For example, a client that

- * implements a launch object representing a Java launch might store a classpath

- * with the launch.

- * </p>

- * @see ILaunch

- * @see ILaunchManager

- */

-

-public class Launch extends PlatformObject implements ILaunch {

-	

-	/**

-	 * The debug targets associated with this

-	 * launch (the primary target is the first one

-	 * in this collection), or empty if

-	 * there are no debug targets.

-	 */

-	private List fTargets= new ArrayList();

-

-	/**

-	 * The element that was launched.

-	 */

-	private Object fElement= null;

-

-	/**

-	 * The launcher that was used.

-	 */

-	private ILauncher fLauncher= null;

-

-	/**

-	 * The system processes associated with

-	 * this launch, or empty if none.

-	 */

-	private List fProcesses= new ArrayList();

-

-	/**

-	 * The source locator to use in the debug session

-	 * or <code>null</code> if not supported.

-	 */

-	private ISourceLocator fLocator= null;

-

-	/**

-	 * The mode this launch was launched in.

-	 */

-	private String fMode;

-	

-	/**

-	 * Table of client defined attributes

-	 */

-	private HashMap fAttributes;	

-	

-	/**

-	 * Flag indiating that change notification should

-	 * be suppressed. <code>true</code> until this

-	 * launch has been initialzied.

-	 */

-	private boolean fSuppressChange = true;

-	

-	/**

-	 * Constructs a launch with the specified attributes. A launch must

-	 * have at least one of a process or debug target.

-	 *

-	 * @param launcher the launcher that created this launch

-	 * @param mode the mode of this launch - run or debug (constants

-	 *  defined by <code>ILaunchManager</code>)

-	 * @param launchedElement the element that was launched

-	 * @param locator the source locator to use for this debug session, or

-	 * 	<code>null</code> if not supported

-	 * @param processes the processes created by this launch, empty

-	 *    or <code>null</code> if none

-	 * @param target the debug target created by this launch, or <code>null</code>

-	 *	if none 

-	 * @deprecated to be removed

-	 */

-	public Launch(ILauncher launcher, String mode, Object launchedElement, ISourceLocator locator, IProcess[] processes, IDebugTarget target) {

-		setLauncher(launcher);			

-		setElement(launchedElement);

-		setSourceLocator(locator);

-		addProcesses(processes);

-		addDebugTarget(target);

-		setLaunchMode(mode);

-		fSuppressChange = false;

-	}

-	

-	/**

-	 * Constructs a launch with the specified attributes.

-	 *

-	 * @param launchConfiguration the configuration that was launched

-	 * @param mode the mode of this launch - run or debug (constants

-	 *  defined by <code>ILaunchManager</code>)

-	 * @param launchedElement the element that was launched

-	 * @param locator the source locator to use for this debug session, or

-	 * 	<code>null</code> if not supported

-	 * @param processes the processes created by this launch, empty

-	 *    or <code>null</code> if none

-	 * @param target the debug target created by this launch, or <code>null</code>

-	 *	if none 

-	 * @deprecated to be removed

-	 */

-	public Launch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator, IProcess[] processes, IDebugTarget target) {

-		setLauncher(null);			

-		setElement(launchConfiguration);

-		setSourceLocator(locator);

-		addProcesses(processes);

-		addDebugTarget(target);

-		setLaunchMode(mode);

-		fSuppressChange = false;

-	}	

-	

-	/**

-	 * Constructs a launch with the specified attributes.

-	 *

-	 * @param launchConfiguration the configuration that was launched

-	 * @param mode the mode of this launch - run or debug (constants

-	 *  defined by <code>ILaunchManager</code>)

-	 * @param locator the source locator to use for this debug session, or

-	 * 	<code>null</code> if not supported

-	 */

-	public Launch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator) {

-		setLauncher(null);			

-		setElement(launchConfiguration);

-		setSourceLocator(locator);

-		setLaunchMode(mode);

-		fSuppressChange = false;

-	}	

-	

-	/**

-	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()

-	 */

-	public final boolean canTerminate() {

-		return !isTerminated();

-	}

-

-	/**

-	 * @see ILaunch#getChildren()

-	 */

-	public final Object[] getChildren() {

-		ArrayList children = new ArrayList(getDebugTargets0());

-		children.addAll(getProcesses0());

-		return children.toArray();

-	}

-

-	/**

-	 * @see ILaunch#getDebugTarget()

-	 */

-	public final IDebugTarget getDebugTarget() {

-		if (!getDebugTargets0().isEmpty()) {

-			return (IDebugTarget)getDebugTargets0().get(0);

-		}

-		return null;

-	}

-	

-	/**

-	 * @see ILaunch#getElement()

-	 */

-	public final Object getElement() {

-		return fElement;

-	}

-	

-	/**

-	 * Sets the object that was launched

-	 * 

-	 * @param element the object that was launched

-	 */

-	private void setElement(Object element) {

-		fElement = element;

-	}	

-

-	/**

-	 * @see ILaunch#getLauncher()

-	 */

-	public final ILauncher getLauncher() {

-		return fLauncher;

-	}

-	

-	/**

-	 * Sets the launcher that created

-	 * this launch.

-	 * 

-	 * @param launcher the launcher that created

-	 *  this launch

-	 */

-	private void setLauncher(ILauncher launcher) {

-		fLauncher = launcher;

-	}	

-

-	/**

-	 * @see ILaunch#getProcesses()

-	 */

-	public final IProcess[] getProcesses() {

-		return (IProcess[])getProcesses0().toArray(new IProcess[getProcesses0().size()]);

-	}

-	

-	/**

-	 * Returns the processes associated with this

-	 * launch, in its internal form - a list.

-	 * 

-	 * @return list of processes

-	 */

-	protected List getProcesses0() {

-		return fProcesses;

-	}	

-	

-	/**

-	 * @see ILaunch#getSourceLocator()

-	 */

-	public final ISourceLocator getSourceLocator() {

-		return fLocator;

-	}

-	

-	/**

-	 * @see ILaunch#setSourceLocator(ISourceLocator)

-	 */

-	public final void setSourceLocator(ISourceLocator sourceLocator) {

-		fLocator = sourceLocator;

-	}	

-

-	/**

-	 * @see org.eclipse.debug.core.model.ITerminate#isTerminated()

-	 */

-	public final boolean isTerminated() {

-		if (getProcesses0().isEmpty() && getDebugTargets0().isEmpty()) {

-			return false;

-		}

-

-		Iterator processes = getProcesses0().iterator();

-		while (processes.hasNext()) {

-			IProcess process = (IProcess)processes.next();

-			if (!process.isTerminated()) {

-				return false;

-			}

-		}

-		

-		Iterator targets = getDebugTargets0().iterator();

-		while (targets.hasNext()) {

-			IDebugTarget target = (IDebugTarget)targets.next();

-			if (!(target.isTerminated() || target.isDisconnected())) {

-				return false;

-			}

-		}

-		

-		return true;

-	}

-

-	/**

-	 * @see org.eclipse.debug.core.model.ITerminate#terminate()

-	 */

-	public final void terminate() throws DebugException {

-		MultiStatus status= 

-			new MultiStatus(DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(), DebugException.REQUEST_FAILED, DebugCoreMessages.getString("Launch.terminate_failed"), null); //$NON-NLS-1$

-		

-		// terminate the system processes

-		Iterator processes = getProcesses0().iterator();

-		while (processes.hasNext()) {

-			IProcess process = (IProcess)processes.next();

-			if (process.canTerminate()) {

-				try {

-					process.terminate();

-				} catch (DebugException e) {

-					status.merge(e.getStatus());

-				}

-			}

-		}

-		

-		// terminate or disconnect debug target if it is still alive

-		Iterator targets = getDebugTargets0().iterator();

-		while (targets.hasNext()) {

-			IDebugTarget target= (IDebugTarget)targets.next();

-			if (target != null) {

-				if (target.canTerminate()) {

-					try {

-						target.terminate();

-					} catch (DebugException e) {

-						status.merge(e.getStatus());

-					}

-				} else {

-					if (target.canDisconnect()) {

-						try {

-							target.disconnect();

-						} catch (DebugException de) {

-							status.merge(de.getStatus());

-						}

-					}

-				}

-			}

-		}

-		if (status.isOK())

-			return;

-		IStatus[] children= status.getChildren();

-		if (children.length == 1) {

-			throw new DebugException(children[0]);

-		} else {

-			throw new DebugException(status);

-		}

-	}

-

-	/**

-	 * @see ILaunch#getLaunchMode()

-	 */

-	public final String getLaunchMode() {

-		return fMode;

-	}

-	

-	/**

-	 * Sets the mode in which this launch was 

-	 * launched.

-	 * 

-	 * @param mode the mode in which this launch

-	 *  was launched - one of the constants defined

-	 *  by <code>ILaunchManager</code>.

-	 */

-	private void setLaunchMode(String mode) {

-		fMode = mode;

-	}

-	

-	/**

-	 * @see ILaunch#getLaunchConfiguration()

-	 */

-	public ILaunchConfiguration getLaunchConfiguration() {

-		if (getElement() instanceof ILaunchConfiguration) {

-			return (ILaunchConfiguration)getElement();

-		}

-		return null;

-	}

-

-	/**

-	 * @see ILaunch#setAttribute(String, String)

-	 */

-	public void setAttribute(String key, String value) {

-		if (fAttributes == null) {

-			fAttributes = new HashMap(5);

-		}

-		fAttributes.put(key, value);		

-	}

-

-	/**

-	 * @see ILaunch#getAttribute(String)

-	 */

-	public String getAttribute(String key) {

-		if (fAttributes == null) {

-			return null;

-		}

-		return (String)fAttributes.get(key);

-	}

-

-	/**

-	 * @see ILaunch#getDebugTargets()

-	 */

-	public IDebugTarget[] getDebugTargets() {

-		return (IDebugTarget[])fTargets.toArray(new IDebugTarget[fTargets.size()]);

-	}

-	

-	/**

-	 * Returns the debug targets associated with this

-	 * launch, in its internal form - a list

-	 * 

-	 * @return list of debug targets

-	 */

-	protected List getDebugTargets0() {

-		return fTargets;

-	}	

-

-	/**

-	 * @see ILaunch#addDebugTarget(IDebugTarget)

-	 */

-	public final void addDebugTarget(IDebugTarget target) {

-		if (target != null) {

-			if (!getDebugTargets0().contains(target)) {

-				getDebugTargets0().add(target);

-				fireChanged();

-			}

-		}

-	}

-	

-	/**

-	 * @see ILaunch#removeDebugTarget(IDebugTarget)

-	 */

-	public final void removeDebugTarget(IDebugTarget target) {

-		if (target != null) {

-			if (!getDebugTargets0().contains(target)) {

-				getDebugTargets0().remove(target);

-				fireChanged();

-			}

-		}

-	}	

-	

-	/**

-	 * @see ILaunch#addProcess(IProcess)

-	 */

-	public final void addProcess(IProcess process) {

-		if (process != null) {

-			if (!getProcesses0().contains(process)) {

-				getProcesses0().add(process);

-				fireChanged();

-			}

-		}

-	}

-	

-	/**

-	 * @see ILaunch#removeProcess(IProcess)

-	 */

-	public final void removeProcess(IProcess process) {

-		if (process != null) {

-			if (!getProcesses0().contains(process)) {

-				getProcesses0().remove(process);

-				fireChanged();

-			}

-		}

-	}	

-	

-	/**

-	 * Adds the given processes to this launch.

-	 * 

-	 * @param processes processes to add

-	 */

-	protected void addProcesses(IProcess[] processes) {

-		if (processes != null) {

-			for (int i = 0; i < processes.length; i++) {

-				addProcess(processes[i]);

-				fireChanged();

-			}

-		}

-	}

-	

-	/**

-	 * Notifies listeners that this launch has changed.

-	 * Has no effect of this launch has not yet been

-	 * properly created/initialized.

-	 */

-	protected void fireChanged() {

-		if (!fSuppressChange) {

-			((LaunchManager)DebugPlugin.getDefault().getLaunchManager()).fireUpdate(this, LaunchManager.CHANGED);

-		}

-	}

-

-	/**

-	 * @see ILaunch#hasChildren()

-	 */

-	public boolean hasChildren() {

-		return getProcesses0().size() > 0 || (getDebugTargets0().size() > 0);

-	}

-

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
deleted file mode 100644
index 2e9671c..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
+++ /dev/null
@@ -1,257 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.util.Map;

-

-import org.eclipse.core.resources.IMarker;

-import org.eclipse.core.resources.IWorkspace;

-import org.eclipse.core.resources.IWorkspaceRunnable;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.PlatformObject;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.IBreakpointManager;

-import org.eclipse.debug.internal.core.DebugCoreMessages;

-

-/**

- * Abstract implementation of a breakpoint. This class is

- * intended to be subclassed by implementations

- * of breakpoints.

- * 

- * @see IBreakpoint

- * @since 2.0

- */

-

-public abstract class Breakpoint extends PlatformObject implements IBreakpoint {

-				

-	/**

-	 * Underlying marker.

-	 */

-	private IMarker fMarker= null;

-	

-	/**

-	 * @see IBreakpoint#setMarker(IMarker)

-	 */

-	public void setMarker(IMarker marker) throws CoreException {

-		fMarker= marker;

-	}

-	

-	/**

-	 * @see Object#equals(Object)

-	 */

-	public boolean equals(Object item) {

-		if (item instanceof IBreakpoint) {

-			return getMarker().equals(((IBreakpoint)item).getMarker());

-		}

-		return false;

-	}

-	

-	/**

-	 * @see Object#hashCode()

-	 */

-	public int hashCode() {

-		return getMarker().hashCode();

-	}

-		

-	/**

-	 * @see IBreakpoint#setEnabled(boolean)

-	 */

-	public void setEnabled(boolean enabled) throws CoreException {

-		if (enabled != isEnabled()) {

-			setAttribute(ENABLED, enabled);

-		}

-	}

-	

-	/**

-	 * @see IBreakpoint#isEnabled()

-	 */

-	public boolean isEnabled() throws CoreException {

-		return getMarker().getAttribute(ENABLED, false);

-	}

-	

-	/**

-	 * @see IBreakpoint#isRegistered()

-	 */

-	public boolean isRegistered() throws CoreException {

-		return getMarker().getAttribute(REGISTERED, true);

-	}	

-	

-	/**

-	 * @see IBreakpoint#setRegistered(boolean)

-	 */

-	public void setRegistered(boolean registered) throws CoreException {

-		if (isRegistered() != registered) {

-			setAttribute(REGISTERED, registered);

-			IBreakpointManager mgr = DebugPlugin.getDefault().getBreakpointManager();

-			if (registered) {

-				mgr.addBreakpoint(this);

-			} else {

-				mgr.removeBreakpoint(this, false);

-			}

-		}

-	}	

-

-	/**

-	 * @see IBreakpoint#delete()

-	 */

-	public void delete() throws CoreException {

-		getMarker().delete();

-	}

-

-	/**

-	 * @see IBreakpoint#getMarker()

-	 */

-	public IMarker getMarker() {

-		return fMarker;

-	}

-

-	/**

-	 * @see IBreakpoint#isPersisted()

-	 */

-	public boolean isPersisted() throws CoreException {

-		return getMarker().getAttribute(PERSISTED, true);

-	}

-

-	/**

-	 * @see IBreakpoint#setPersisted(boolean)

-	 */

-	public void setPersisted(boolean persisted) throws CoreException {

-		if (isPersisted() != persisted) {

-			setAttribute(PERSISTED, persisted);

-		}

-	}

-	

-	/**

-	 * Convenience method to set the given boolean attribute of

-	 * this breakpoint's underlying marker in a workspace

-	 * runnable. Setting marker attributes in a workspace runnable

-	 * prevents deadlock.

-	 * 

-	 * @param attributeName attribute name

-	 * @param value attribute value

-	 * @exception CoreException is setting the attribute fails

-	 * @see IMarker#setAttribute(java.lang.String, boolean)

-	 */

-	protected void setAttribute(final String attributeName, final boolean value) throws CoreException {

-		IWorkspace workspace= ResourcesPlugin.getWorkspace();

-		IWorkspaceRunnable runnable= new IWorkspaceRunnable() {

-				public void run(IProgressMonitor monitor) throws CoreException {

-					ensureMarker().setAttribute(attributeName, value);

-				}

-			};

-			

-		workspace.run(runnable, null);

-	}

-	

-	/**

-	 * Convenience method to set the given integer attribute of

-	 * this breakpoint's underlying marker in a workspace

-	 * runnable. Setting marker attributes in a workspace runnable

-	 * prevents deadlock.

-	 * 

-	 * @param attributeName attribute name

-	 * @param value attribute value

-	 * @exception CoreException is setting the attribute fails

-	 * @see IMarker#setAttribute(java.lang.String, int)

-	 */

-	protected void setAttribute(final String attributeName, final int value) throws CoreException {

-		IWorkspace workspace= ResourcesPlugin.getWorkspace();

-		IWorkspaceRunnable runnable= new IWorkspaceRunnable() {

-				public void run(IProgressMonitor monitor) throws CoreException {

-					ensureMarker().setAttribute(attributeName, value);

-				}

-			};

-			

-		workspace.run(runnable, null);

-	}

-

-	/**

-	 * Convenience method to set the given attribute of

-	 * this breakpoint's underlying marker in a workspace

-	 * runnable. Setting marker attributes in a workspace runnable

-	 * prevents deadlock.

-	 * 

-	 * @param attributeName attribute name

-	 * @param value attribute value

-	 * @exception CoreException is setting the attribute fails

-	 * @see IMarker#setAttribute(java.lang.String, java.lang.Object)

-	 */

-	protected void setAttribute(final String attributeName, final Object value) throws CoreException {

-		IWorkspace workspace= ResourcesPlugin.getWorkspace();

-		IWorkspaceRunnable runnable= new IWorkspaceRunnable() {

-				public void run(IProgressMonitor monitor) throws CoreException {

-					ensureMarker().setAttribute(attributeName, value);

-				}

-			};

-			

-		workspace.run(runnable, null);

-	}

-

-	/**

-	 * Convenience method to set the given attributes of

-	 * this breakpoint's underlying marker in a workspace

-	 * runnable. Setting marker attributes in a workspace runnable

-	 * prevents deadlock.

-	 * 

-	 * @param attributeNames attribute names

-	 * @param values attribute values

-	 * @exception CoreException is setting the attributes fails

-	 * @see IMarker#setAttributes(java.lang.String[], java.lang.Object[])

-	 */

-	protected void setAttributes(final String[] attributeNames, final Object[] values) throws CoreException {

-		IWorkspace workspace= ResourcesPlugin.getWorkspace();

-		IWorkspaceRunnable runnable= new IWorkspaceRunnable() {

-				public void run(IProgressMonitor monitor) throws CoreException {

-					ensureMarker().setAttributes(attributeNames, values);

-				}

-			};

-			

-		workspace.run(runnable, null);

-	}

-

-	/**

-	 * Convenience method to set the attributes of

-	 * this breakpoint's underlying marker in a workspace

-	 * runnable. Setting marker attributes in a workspace runnable

-	 * prevents deadlock.

-	 * 

-	 * @param attributes attribute map

-	 * @exception CoreException is setting the attributes fails

-	 * @see IMarker#setAttributes(java.util.Map)

-	 */

-	protected void setAttributes(final Map attributes) throws CoreException{

-		IWorkspace workspace= ResourcesPlugin.getWorkspace();

-		IWorkspaceRunnable runnable= new IWorkspaceRunnable() {

-				public void run(IProgressMonitor monitor) throws CoreException {

-					ensureMarker().setAttributes(attributes);

-				}

-			};

-			

-		workspace.run(runnable, null);

-	}

-

-	/**

-	 * Returns the marker associated with this breakpoint.

-	 * 

-	 * @return breakpoint marker

-	 * @exception DebugException if no marker is associated with 

-	 *  this breakpoint or the associated marker does not exist

-	 */

-	protected IMarker ensureMarker() throws DebugException {

-		IMarker m = getMarker();

-		if (m == null || !m.exists()) {

-			throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(), DebugException.REQUEST_FAILED,

-				DebugCoreMessages.getString("Breakpoint.no_associated_marker"), null)); //$NON-NLS-1$

-		}

-		return m;

-	}

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
deleted file mode 100644
index 47f8757..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
+++ /dev/null
@@ -1,215 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.IMarker;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IAdaptable;

-import org.eclipse.debug.core.DebugPlugin;

-

-/**

- * A breakpoint is capable of suspending the execution of a

- * program at a specific location when a program is running

- * in debug mode. Each breakpoint has an associated marker which

- * stores and persists all attributes associated with a breakpoint.

- * <p>

- * A breakpoint is defined in two parts:

- * <ol>

- * <li>By an extension of kind <code>"org.eclipse.debug.core.breakpoints"</code></li>

- * <li>By a marker definition that corresponds to the above breakpoint extension</li>

- * </ol>

- * <p>

- * For example, following is a definition of corresponding breakpoint

- * and breakpoint marker definitions. Note that the <code>markerType</code>

- * attribute defined by the breakpoint extension corresponds to the 

- * type of the marker definition.

- * <pre>

- * &lt;extension point="org.eclipse.debug.core.breakpoints"&gt;

- *   &lt;breakpoint 

- *      id="com.example.Breakpoint"

- *      class="com.example.Breakpoint"

- *      markerType="com.example.BreakpointMarker"&gt;

- *   &lt;/breakpoint&gt;

- * &lt;/extension&gt;

- * &lt;extension point="org.eclipse.core.resources.markers"&gt;

- *   &lt;marker 

- *      id="com.example.BreakpointMarker"

- *      super type="org.eclipse.debug.core.breakpointMarker"

- *      attribute name ="exampleAttribute"&gt;

- *   &lt;/marker&gt;

- * &lt;/extension&gt;

- * </pre>

- * <p>

- * The breakpoint manager instantiates persisted breakpoints by

- * traversing all markers that are a subtype of

- * <code>"org.eclipse.debug.core.breakpointMarker"</code>, and 

- * instantiating the class defined by the <code>class</code> attribute

- * on the associated breakpoint extension. The method <code>setMarker</code>

- * is then called to associate a marker with the breakpoint.

- * </p>

- * <p>

- * Breakpoints may or may not be registered with the breakpoint manager, and

- * are persisted and restored as such. Since marker definitions only allow

- * all or none of a specific marker type to be persisted, breakpoints define

- * a <code>PERSISTED</code> attribute for selective persistence of breakpoints

- * of the same type.

- * </p>

- * 

- * @since 2.0

- */

-

-public interface IBreakpoint extends IAdaptable {

-	

-	/**

-	 * Root breakpoint marker type	

-	 * (value <code>"org.eclipse.debug.core.breakpoint"</code>).

-	 */

-	public static final String BREAKPOINT_MARKER = DebugPlugin.PLUGIN_ID + ".breakpointMarker"; //$NON-NLS-1$

-	

-	/**

-	 * Line breakpoint marker type

-	 * (value <code>"org.eclipse.debug.core.lineBreakpoint"</code>).

-	 */

-	public static final String LINE_BREAKPOINT_MARKER = DebugPlugin.PLUGIN_ID + ".lineBreakpointMarker"; //$NON-NLS-1$

-			

-	/**

-	 * Enabled breakpoint marker attribute (value <code>"org.eclipse.debug.core.enabled"</code>).

-	 * The attribute is a <code>boolean</code> corresponding to the

-	 * enabled state of a breakpoint.

-	 *

-	 * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)

-	 */

-	public static final String ENABLED= "org.eclipse.debug.core.enabled"; //$NON-NLS-1$

-	

-	/**

-	 * Debug model identifier breakpoint marker attribute (value <code>"org.eclipse.debug.core.id"</code>).

-	 * The attribute is a <code>String</code> corresponding to the

-	 * identifier of the debug model a breakpoint is associated with.

-	 */

-	public static final String ID= "org.eclipse.debug.core.id"; //$NON-NLS-1$

-	

-	/**

-	 * Registered breakpoint marker attribute (value <code>"org.eclipse.debug.core.registered"</code>).

-	 * The attribute is a <code>boolean</code> corresponding to

-	 * whether a breakpoint has been registered with the breakpoint manager.

-	 *

-	 * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)

-	 */

-	public static final String REGISTERED= "org.eclipse.debug.core.registered"; //$NON-NLS-1$	

-	

-	/**

-	 * Persisted breakpoint marker attribute (value <code>"org.eclipse.debug.core.persisted"</code>).

-	 * The attribute is a <code>boolean</code> corresponding to

-	 * whether a breakpoint is to be persisted accross workspace

-	 * invocations.

-	 *

-	 * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)

-	 */

-	public static final String PERSISTED= "org.eclipse.debug.core.persisted"; //$NON-NLS-1$		

-	

-	/**

-	 * Deletes this breakpoint's underlying marker, and removes

-	 * this breakpoint from the breakpoint manager.

-	 *

-	 * @exception CoreException if unable to delete this breakpoint's

-	 *  underlying marker

-	 */

-	public void delete() throws CoreException;

-	

-	/**

-	 * Returns the marker associated with this breakpoint, or

-	 * <code>null</code> if no marker is associated with this breakpoint.

-	 * 

-	 * @return associated marker, or <code>null</code> if there is

-	 * 	no associated marker.

-	 */

-	public IMarker getMarker();

-	/**

-	 * Sets the marker associated with this breakpoint. This method is

-	 * called once at breakpoint creation.

-	 * 

-	 * @param marker the marker to associate with this breakpoint

-	 * @exception CoreException if an error occurs accessing the marker

-	 */

-	public void setMarker(IMarker marker) throws CoreException;

-	/**

-	 * Returns the identifier of the debug model this breakpoint is

-	 * associated with.

-	 * 

-	 * @return the identifier of the debug model this breakpoint is

-	 * 	associated with

-	 */

-	public String getModelIdentifier();

-	/**

-	 * Returns whether this breakpoint is enabled

-	 * 

-	 * @return whether this breakpoint is enabled

-	 * @exception CoreException if unable to access the associated

-	 *  attribute from this breakpoint's underlying marker

-	 */

-	public boolean isEnabled() throws CoreException;

-	/**

-	 * Sets the enabled state of this breakpoint. This has no effect

-	 * if the current enabled state is the same as specified by the

-	 * enabled parameter.

-	 * 

-	 * @param enabled  whether this breakpoint should be enabled

-	 * @exception CoreException if unable to set the associated attribute on

-	 *  this breakpoint's underlying marker.

-	 */

-	public void setEnabled(boolean enabled) throws CoreException;

-	

-	/**

-	 * Returns whether this breakpoint is currently registered with

-	 * the breakpoint manager.

-	 * 

-	 * @return whether this breakpoint is currently registered with

-	 *  the breakpoint manager

-	 * @exception CoreException if unable to access the associated 

-	 *  attribute on this breakpoint's underlying marker

-	 */

-	public boolean isRegistered() throws CoreException;

-	

-	/**

-	 * Sets whether this breakpoint is currently registered with the

-	 * breakpoint manager. 

-	 * 

-	 * @param registered whether this breakpoint is registered with the

-	 *   breakpoint manager

-	 * @exception CoreException if unable to set the associated attribute

-	 *  on this breakpoint's underlying marker.

-	 */

-	public void setRegistered(boolean registered) throws CoreException;

-	

-	/**

-	 * Returns whether this breakpoint is to be persisted across

-	 * workspace invocations, or when a project is closed and re-opened.

-	 * Since marker definitions only allow all/none of a specific type

-	 * of marker to be persisted (rathern than selective markers of a

-	 * specific type), breakpoints define this functionality.

-	 * 

-	 * @return whether this breakpoint is to be persisted

-	 * @exception CoreException if unable to access the associated attribute

-	 *  on this breakpoint's underlying marker

-	 */

-	public boolean isPersisted() throws CoreException;

-	

-	/**

-	 * Sets whether this breakpoint is to be persisted across

-	 * workspace invocations, or when a project is closed and re-opened.

-	 * Since marker definitions only allow all/none of a specific type of

-	 * marker to be persisted (rather than selective markers of a specific

-	 * type), breakpoints define this functionality. Has no effect if this

-	 * breakpoint's marker definition is defined as not persisted.

-	 * 

-	 * @param persist whether this breakpoint is to be persisted

-	 * @exception CoreException if unable to set the associated attribute on

-	 *  this breakpoint's underlying marker.

-	 */

-	public void setPersisted(boolean registered) throws CoreException;	

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
deleted file mode 100644
index 7c65af8..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IAdaptable;

-import org.eclipse.debug.core.ILaunch;

-

-/**

- * A debug element represents an artifact in a program being

- * debugged.

- * <p>

- * Some methods on debug elements require communication

- * with the target program. Such methods may throw a <code>DebugException</code>

- * with a status code of <code>TARGET_REQUEST_FAILED</code>

- * when unable to complete a request due to a failure on the target.

- * Methods that require communication with the target program or require

- * the target to be in a specific state (for example, suspended), are declared

- * as such.

- * </p>

- * <p>

- * Debug elements are language independent. However, language specific

- * features can be made available via the adapter mechanism provided by

- * <code>IAdaptable</code>, or by extending the debug element interfaces.

- * A debug model is responsible for declaring any special adapters 

- * its debug elements implement.

- * </p>

- * <p>

- * Clients may implement this interface.

- * </p>

- */

-public interface IDebugElement extends IAdaptable {

-	

-	/**

-	 * Returns the unique identifier of the plug-in

-	 * this debug element originated from.

-	 *

-	 * @return the plug-in identifier

-	 */

-	public String getModelIdentifier();

-	/**

-	 * Returns the debug target this element is contained in.

-	 * 

-	 * @return the debug target this element is contained in

-	 */

-	public IDebugTarget getDebugTarget();

-	/**

-	 * Returns the launch this element is contained in.

-	 * 

-	 * @return the launch this element is contained in

-	 */

-	public ILaunch getLaunch();

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
deleted file mode 100644
index 663c166..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.IBreakpointListener;

-

-/**

- * A debug target is a debuggable execution context. For example, a debug target

- * may represent a debuggable process or a virtual machine. A debug target is the root

- * of the debug element hierarchy. A debug target contains threads. Minimally, a debug

- * target supports the following:

- * <ul>

- * <li>terminate

- * <li>suspend/resume

- * <li>breakpoints

- * <li>disconnect

- * </ul>

- * <p>

- * Generally, launching a debug session results in the creation of a

- * debug target. Launching is a client responsibility, as is debug target

- * creation.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see ITerminate

- * @see ISuspendResume

- * @see IBreakpointListener

- * @see IDisconnect

- * @see IMemoryBlockRetrieval

- * @see org.eclipse.debug.core.ILaunch

- */

-public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, IBreakpointListener, IDisconnect, IMemoryBlockRetrieval {

-	/**

-	 * Returns the system process associated with this debug target.

-	 * 

-	 * @return the system process associated with this debug target

-	 */

-	public IProcess getProcess();

-	/**

-	 * Returns the threads contained in this debug target. An

-	 * empty collection is returned if this debug target contains

-	 * no threads.

-	 * 

-	 * @return a collection of threads

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public IThread[] getThreads() throws DebugException;

-	

-	/**

-	 * Returns whether this debug target currently contains any threads.

-	 * 

-	 * @return whether this debug target currently contains any threads

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public boolean hasThreads() throws DebugException;

-	

-	/**

-	 * Returns the name of this debug target. Name format is debug model

-	 * specific, and should be specified by a debug model.

-	 *

-	 * @return this target's name

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getName() throws DebugException;

-	

-	/**

-	 * Returns whether the given breakpoint is supported by this

-	 * target - i.e. whether the given breakpoint could be installed

-	 * in this target. 

-	 * 

-	 * @return whether the given breakpoint is supported by this

-	 * target

-	 */

-	public boolean supportsBreakpoint(IBreakpoint breakpoint);

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
deleted file mode 100644
index 7e06b6c..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

-

-/**

- * The ability to end a debug session with a target program

- * and allow the target to continue running.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IDebugTarget

- */

-public interface IDisconnect {

-	/**

-	 * Returns whether this element can currently disconnect.

-	 * 

-	 * @return whether this element can currently disconnect

-	 */

-	public boolean canDisconnect();

-	/**

-	 * Disconnects this element from its target. Generally, disconnecting

-	 * ends a debug session with a debug target, but allows the target

-	 * program to continue running.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 */

-	public void disconnect() throws DebugException;

-	/**

-	 * Returns whether this element is disconnected.

-	 *

-	 * @return whether this element is disconnected

-	 */

-	public boolean isDisconnected();

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
deleted file mode 100644
index 6713ef5..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-/**

- * An expression is a snippet of code that can be evaluated

- * to produce a value. When and how an experssion is evaluated

- * is implementation specific. The context/binding required to

- * evaluate an expression varies by debug model, and by

- * user intent. Furthermore, an expression may need to be evaluated

- * at a specific location in a program (for example, at a

- * breakpoint/line where certain variables referenced in the

- * expression are visible/allocated). A user may want to

- * evaluate an expression once to produce a value than can

- * be inspected iteratively, or they may wish to evaluate an

- * expression iteratively producing new values each time

- * (i.e. as in a watch list). 

- * <p>

- * Clients are intended to implement this interface.

- * </p>

- * @since 2.0

- */

-public interface IExpression extends IDebugElement {

-	

-	/**

-	 * Returns this expression's snippet of code.

-	 * 

-	 * @return the expression

-	 */

-	public abstract String getExpressionText();

-

-	/**

-	 * Returns the current value of this expression or

-	 * <code>null</code> if this expression does not

-	 * currently have a value.

-	 * 

-	 * @return value or <code>null</code>

-	 */

-	public abstract IValue getValue();

-	

-	/**

-	 * Returns the debug target this expression is associated

-	 * with, or <code>null</code> if this expression is not

-	 * associated with a debug target.

-	 * 

-	 * @return debug target or <code>null</code>

-	 * @see IDebugElement#getDebugTarget()

-	 */

-	public abstract IDebugTarget getDebugTarget();

-	

-	/**

-	 * Notifies this expression that it has been removed

-	 * from the expression manager. Any required clean up

-	 * is be performed such that this expression can be

-	 * garbage collected.

-	 */

-	public abstract void dispose();

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
deleted file mode 100644
index db3e64b..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.debug.core.ILaunch;

-import org.eclipse.debug.core.ILaunchConfiguration;

-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

-

-/**

- * A launch configuration delegate performs launching for a

- * specific type of launch configuration. A launch configuration

- * delegate is defined by the <code>delegate</code> attribute

- * of a <code>launchConfigurationType</code> extension.

- * <p>

- * This interface is intended to be implemented by clients.

- * </p>

- * @see org.eclipse.debug.core.ILaunchConfigurationType

- * @see ILaunchConfiguration

- * @since 2.0

- */

-public interface ILaunchConfigurationDelegate {

-	

-	/**

-	 * Launches the given configuration in the specified mode, contributing

-	 * debug targets and/or processes to the given launch object. The

-	 * launch object has already been registered with the launch manager.

-	 * 

-	 * @param configuration the configuration to launch

-	 * @param mode the mode in which to launch, one of the mode constants

-	 *  defined by this <code>ILaunchConfiguration</code> -

-	 *  <code>RUN</code> or <code>DEBUG</code>.

-	 * @param monitor progress monitor, or <code>null</code>

-	 * @param launch the launch object to contribute processes and debug

-	 *  targets to

-	 * @exception CoreException if launching fails 

-	 */

-	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException;

-	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILauncherDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILauncherDelegate.java
deleted file mode 100644
index 648d37c..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILauncherDelegate.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.ILauncher;

-

-/**

- * A launcher delegate is an implementation of the

- * <code>org.eclipse.debug.core.launchers</code> extension point. The

- * debug plug-in creates a proxy to each launcher extension, and

- * lazily instantiates an extension when required. A launch delegate

- * starts a debug session with a specific debug model, and/or

- * launches one or more system processes, registering the result

- * with the launch manager. A launch delegate is also capable

- * of persisting and restoring elements that it can launch.

- * <p>

- * A launcher extension is defined in <code>plugin.xml</code>.

- * Following is an example definition of a launcher extension.

- * <pre>

- * &lt;extension point="org.eclipse.debug.core.launchers"&gt;

- *   &lt;launcher 

- *      id="com.example.ExampleIdentifier"

- *      class="com.example.ExampleLauncher"

- *      modes="run, debug"

- *      label="Example Launcher"

- *      wizard="com.example.ExampleLaunchWizard"

- *      layout="com.example.JavaLayout"&gt;

- *   &lt;/launcher&gt;

- * &lt;/extension&gt;

- * </pre>

- * The attributes are specified as follows:

- * <ul>

- * <li><code>id</code> specifies a unique identifier for this launcher.</li>

- * <li><code>class</code> specifies the fully qualified name of the java class

- *   that implements this interface.</li>

- * <li><code>modes</code> specifies a comma separated list of the modes this

- *    launcher supports - <code>"run"</code> and/or <code>"debug</code>.</li>

- * <li><code>label</code> specifies a human readable label for this launcher

- *    extension.</li>

- * <li><code>wizard</code> specifies the fully qualified name of the java class

- *    that implements <code>org.eclipse.debug.ui.ILaunchWizard</code>. The debug UI

- *    may invoke the wizard to perform a launch, or this launcher extension

- *    may present the wizard when asked to launch.</li>

- * <li></code>layout</code> specifies the identifier of a layout that should be

- *    used to present the resulting launch.</li>

- * </ul>

- * </p>

- * <p>

- * Clients may implement this interface.

- * </p>

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to 

- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 

- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken

- * (repeatedly) as the API evolves.

- * </p>

- * @see org.eclipse.debug.core.ILaunch

- * @see org.eclipse.debug.core.Launch

- * @see org.eclipse.debug.core.ILaunchManager

- * @see org.eclipse.debug.core.ILauncher

- * 

- * @deprecated to be replaced with ILaunchConfiguration/ILaunchConfigurationDelegate

- */

-public interface ILauncherDelegate {

-	/**

-	 * Notifies this launcher delegate to launch in the given mode, and

-	 * registers the resulting launch with  the launch manager.

-	 * Returns <code>true</code> if successful, otherwise <code>false</code>.

-	 * This typically results in the creation of one or more processes and/or

-	 * a debug target. The collection of elements provides context for the 

-	 * launch. The determination of which or how many objects to launch

-	 * is launcher dependent. This method blocks until the launch is

-	 * complete. The given launcher is the owner of this delegate.

-	 * <p>

-	 * For example, when the debug UI invokes a launcher, the

-	 * collection of elements passed in could represent the selected elements

-	 * in the UI, and the mode specified will be run or debug (depending on

-	 * which launch button was pressed). A launcher will generally examine the 

-	 * element collection to determine what to launch. For example, if the

-	 * collection contains one launchable program, or one runnable program

-	 * can be inferred from the collection, the launcher will launch

-	 * that program. If the collection contains more than one runnable

-	 * program, or more than one runnable program can be inferred from the

-	 * collection, the launcher may ask the user to select a program to launch.

-	 * </p>

-	 * <p>

-	 * Launching the program itself usually requires running an external

-	 * program specific to a debug architecture/debug model, and wrapping the

-	 * result in a debug target or process that can be registered in a launch object. 

-	 * </p>

-	 *

-	 * @param elements an array of objects providing a context for the launch

-	 * @param mode run or debug (as defined by <code>ILaunchManager.RUN_MODE</code>,

-	 *    <code>ILaunchManager.DEBUG_MODE</code>)

-	 * @param launcher the proxy to this lazily instantiated extension which needs

-	 *    to be supplied in the resulting launch object

-	 * @return whether the launch succeeded

-	 *

-	 * @see org.eclipse.debug.core.ILaunch

-	 * @see org.eclipse.debug.core.Launch

-	 * @see IDebugTarget

-	 * @see IProcess

-	 * @see org.eclipse.debug.core.ILaunchManager#registerLaunch

-	 */

-	public boolean launch(Object[] elements, String mode, ILauncher launcher);

-	

-	/**

-	 * Returns a memento for an object that this delegate has launched, such

-	 * that launched elements can be persisted across workspace invocations.

-	 * The memento is used to re-create the launched element.

-	 * 

-	 * @param element an element this delegate has launched

-	 * @return a String representing a memento for the given element,

-	 *		or <code>null</code> if unable to create a memento for

-	 * 		the element

-	 * 

-	 * @see #getLaunchObject

-	 */

-	public String getLaunchMemento(Object element);

-	

-	/**

-	 * Returns the object represented by the given memento, or <code>null</code>

-	 * if unable to re-create an element from the given memento, or if

-	 * the given object no longer exists.

-	 * 

-	 * @param memento a memento created by this delegate

-	 * @return the object represented by the memento, or <code>null</code>

-	 * 

-	 * @see #getLaunchMemento

-	 */

-	public Object getLaunchObject(String memento);

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
deleted file mode 100644
index e5173f7..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.core.runtime.CoreException;

-

-/**

- * A breakpoint that can be located at a specific line of source code.

- */

-public interface ILineBreakpoint extends IBreakpoint {

-

-/**

- * Returns the line number in the original source that corresponds

- * to the location of this breakpoint, or -1 if the attribute is not

- * present.

- *

- * @return this breakpoint's line number, or -1 if unknown

- * @exception CoreException if a <code>CoreException</code> is thrown

- * 	while accessing the underlying <code>IMarker.LINE_NUMBER</code> marker attribute

- */

-public int getLineNumber() throws CoreException;

-/**

- * Returns starting source index in the original source that corresponds

- * to the location of this breakpoint, or -1 if the attribute is not present.

- *

- * @return this breakpoint's char start value, or -1 if unknown

- * @exception CoreException if a <code>CoreException</code> is thrown

- * 	while accessing the underlying <code>IMarker.CHAR_START</code> marker attribute

- */

-public int getCharStart() throws CoreException;

-/**

- * Returns ending source index in the original source that corresponds

- * to the location of this breakpoint, or -1 if the attribute is not present.

- *

- * @return this breakpoint's char end value, or -1 if unknown

- * @exception CoreException if a <code>CoreException</code> is thrown

- * 	while accessing the underlying <code>IMarker.CHAR_END</code> marker attribute

- */

-public int getCharEnd() throws CoreException;

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
deleted file mode 100644
index 49f3796..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

- 

-/**

- * A contiguos segment of memory in an execution context.

- * A memory block is represented by a starting memory address

- * and a length. Not all debug architectures support the retrieval

- * of memory blocks.

- * 

- * @see IMemoryBlockRetrieval

- * @since 2.0

- */

-public interface IMemoryBlock extends IDebugElement {

-	

-	/**

-	 * Returns the start address of this memory block.

-	 * 

-	 * @return the start address of this memory block

-	 */

-	public long getStartAddress();

-	

-	/**

-	 * Returns the length of this memory block in bytes.

-	 * 

-	 * @return the length of this memory block in bytes

-	 */	

-	public long getLength();

-	

-	/**

-	 * Returns the values of the bytes currently contained

-	 * in this this memory block.

-	 * 

-	 * @return the values of the bytes currently contained

-	 *  in this this memory block

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 */	

-	public byte[] getBytes() throws DebugException;

-	

-	/**

-	 * Returns whether this memory block supports value modification

-	 * 

-	 * @return whether this memory block supports value modification

-	 */

-	public boolean supportsValueModification();

-	

-	/**

-	 * Sets the value of the bytes in this memory block at the specified

-	 * offset within this memory block to the spcified bytes.

-	 * The offset is zero based.

-	 * 

-	 * @param offset the offset at which to set the new values

-	 * @param bytes the new values

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * <li>This memory block does not support value modification</li>

-	 * <li>The specified offset is greater than or equal to the length

-	 *   of this memory block, or the number of bytes specified goes

-	 *   beyond the end of this memory block (index of out of range)</li>

-	 * </ul>

-	 */

-	public void setValue(long offset, byte[] bytes) throws DebugException;

-	

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
deleted file mode 100644
index d6c8a77..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

- 

-/**

- * Supports the retrieval of arbitrary blocks of memory.

- * 

- * @see IMemoryBlock

- * @since 2.0

- */

-public interface IMemoryBlockRetrieval {

-	

-	/**

-	 * Returns whether this debug target supports the retreival

-	 * of memory blocks.

-	 * 

-	 * @return whether this debug target supports the retreival

-	 *  of memory blocks

-	 */

-	public boolean supportsStorageRetrieval();

-	

-	/**

-	 * Returns a memory block that starts at the specified

-	 * memory address, with the specified length.

-	 * 

-	 * @param startAddress starting address

-	 * @param length length of the memory block in bytes

-	 * @return a memory block that starts at the specified

-	 *  memory address, with the specified length

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * <li>This debug target does not support memory block retreival</li>

-	 * <li>The specified address and length are not within valid

-	 *  ranges</li>

-	 * </ul>

-	 */

-	public IMemoryBlock getMemoryBlock(long startAddress, long length) throws DebugException;

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
deleted file mode 100644
index e8fec3d..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.debug.core.model;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source locator that can be persisted and restored,
- * to be used with a specfic launch configuration.
- * The debug plug-in defines a source locator extension
- * point for persistable source locators.
- * <p>
- * A source locator extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a source locator extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.sourceLocators"&gt;
- *   &lt;sourceLocator 
- *      id="com.example.ExampleIdentifier"
- *      class="com.example.ExampleSourceLocator"
- *      name="Example Source Locator"
- *   &lt;/sourceLocator&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this source locator.</li>
- * <li><code>class</code> specifies the fully qualified name of the Java class
- *   that implements <code>IPersistableSourceLocator</code>.</li>
- * <li><code>name</code> a human readable name, describing the type of
- *   this source locator.</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see IStackFrame 
- * @see org.eclipse.debug.ui.IDebugModelPresentation
- * @since 2.0
- */
-public interface IPersistableSourceLocator extends ISourceLocator {
-	
-	/**
-	 * Returns a memento that can be used to reconstruct
-	 * this source locator
-	 * 
-	 * @return a memento that can be used to reconstruct
-	 *  this source locator
-	 * @exception CoreException if unable to construct a memento
-	 */
-	public String getMemento() throws CoreException;
-	
-	/**
-	 * Initializes this source locator based on the given
-	 * memento.
-	 * 
-	 * @param memento a memento to initialize this source locator
-	 * @exception CoreException on failure to initialize 
-	 */
-	public void initiatlizeFromMemento(String memento) throws CoreException;
-	
-	/**
-	 * Initializes this source locator to perform default
-	 * source lookup for the given launch configuration.
-	 * 
-	 * @param configuration launch configuration this source locator
-	 *  will be performing souce lookup for
-	 * @exception CoreException on failure to initialize
-	 */
-	public void initializeDefaults(ILaunchConfiguration configuration) throws CoreException;
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
deleted file mode 100644
index 6d3362f..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IAdaptable;

-import org.eclipse.debug.core.ILaunch;

-

-/**

- * A process represents a program running in normal (non-debug) mode.

- * Processes support setting and getting of client defined attributes.

- * This way, clients can annotate a process with any extra information

- * important to them. For example, classpath annotations, or command

- * line arguments used to launch the process may be important to a client.

- * <p>

- * Clients may implement this interface, however, the debug plug-in

- * provides an implementation of this interface for a

- * <code>java.lang.Process</code>. 

- * </p>

- * @see org.eclipse.debug.core.DebugPlugin#newProcess(ILaunch, Process, String)

- */

-public interface IProcess extends IAdaptable, ITerminate {

-

-	/**

-	 * Returns a human-readable label for this process.

-	 *

-	 * @return a label for this process

-	 */

-	public String getLabel();

-	/**

-	 * Returns the launch this element originated from.

-	 *

-	 * @return the launch this process is contained in

-	 */

-	public ILaunch getLaunch();

-	/**

-	 * Returns a proxy to the standard input, output, and error streams 

-	 * for this process, or <code>null</code> if not supported.

-	 *

-	 * @return a streams proxy, or <code>null</code> if not supported

-	 */

-	public IStreamsProxy getStreamsProxy();

-	

-	/**

-	 * Sets the value of a client defined attribute.

-	 *

-	 * @param key the attribute key

-	 * @param value the attribute value

-	 */

-	public void setAttribute(String key, String value);

-	

-	/**

-	 * Returns the value of a client defined attribute.

-	 *

-	 * @param key the attribute key

-	 * @return value the String attribute value, or <code>null</code> if undefined

-	 */

-	public String getAttribute(String key);

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
deleted file mode 100644
index 6fecca6..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

- 

-/**

- * A register is a special kind of variable that is contained

- * in a register group. Each register has a name and a value.

- * Not all debug architectures provide access to registers.

- * 

- * @since 2.0

- */

-public interface IRegister extends IVariable {

-	

-	/**

-	 * Returns the register group this register is contained in.

-	 * 

-	 * @return the register group this register is contained in

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public IRegisterGroup getRegisterGroup() throws DebugException; 

-

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
deleted file mode 100644
index 4a330f1..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.DebugException;

- 

-/**

- * A register group is a group of registers that are

- * assigned to a stack frame. Some debug architectures

- * provide access to registers, and registers are often

- * grouped logically. For example, a floating point

- * register group. 

- * 

- * @since 2.0

- */

-public interface IRegisterGroup extends IDebugElement {

-	

-

-	/**

-	 * Returns the name of this register group.

-	 * 

-	 * @return this register group's name

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getName() throws DebugException;

-	

-	/**

-	 * Returns the registers in this register group.

-	 * 

-	 * @return the registers in this register group

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public IRegister[] getRegisters() throws DebugException;

-	

-	/**

-	 * Returns whether this register group currently contains any registers.

-	 * 

-	 * @return whether this register group currently contains any registers

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public boolean hasRegisters() throws DebugException;	

-

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
deleted file mode 100644
index 181b83d..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.model.IStackFrame;

-

-/**

- * A source locator locates source elements for stack frames. A launch (optionally)

- * specifies a source locator which is

- * used to locate source for that debug session. If a launch does not

- * provide a source locator, source cannot be displayed.

- * Abstraction of source lookup allows clients to hide implementation

- * details of source location and representation.

- * <p>

- * Generally, an implementor of a debug model will also implement launch configuration types,

- * delegates, and source locators that work together as a whole. That is, the implementation

- * of a source locator will have knowledge of how to locate a source element

- * for a stack frame. For example, a Java stack frame could define API which

- * specifies a source file name. A Java source locator would use this information

- * to locate the associated file in the workspace.

- * </p>

- * <p>

- * Source is displayed by the debug UI plug-in. The debug UI uses a source locator

- * to resolve an object representing the source for a stack frame, and then uses

- * a debug model presentation to determine the editor and editor input to use to

- * display the actual source in an editor.

- * </p>

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see org.eclipse.debug.core.ILaunch

- * @see org.eclipse.debug.core.model.IStackFrame 

- * @see org.eclipse.debug.ui.IDebugModelPresentation

- * @see org.eclipse.debug.core.model.IPersistableSourceLocator

- */

-public interface ISourceLocator {

-	

-	/**

-	 * Returns a source element that corresponds to the given stack frame, or

-	 * <code>null</code> if a source element could not be located. The object returned

-	 * by this method will be used by the debug UI plug-in to display source.

-	 * The debug UI uses the debug model presentation associated

-	 * with the given stack frame's debug model to translate a source object into an

-	 * {editor input, editor id} pair in which to display source.

-	 * <p>

-	 * For example, a java source locator could return an object representing a

-	 * compilation unit or class file. The java debug model presentation would

-	 * then be responsible for providing an editor input and editor id for each

-	 * compilation unit and class file such that the debug UI could display source.

-	 * </p>

-	 *

-	 * @param stackFrame the stack frame for which to locate source

-	 * @return an object representing a source element. 

-	 */

-	 public Object getSourceElement(IStackFrame stackFrame);

-

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
deleted file mode 100644
index dbdad2f..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

-

-/**

- * A stack frame represents an execution context in a suspended thread.

- * A stack frame contains variables representing visible locals and arguments at

- * the current execution location. Minimally, a stack frame supports

- * the following:

- * <ul>

- * <li>suspend/resume (convenience to resume this stack frame's thread)

- * <li>stepping

- * <li>termination (convenience to terminate this stack frame's thread or debug target)

- * </ul>

- * <p>

- * A debug model implementation may choose to re-use or discard

- * stack frames on iterative thread suspensions. Clients

- * cannot assume that stack frames are identical or equal across

- * iterative thread suspensions and must check for equality on iterative

- * suspensions if they wish to re-use the objects.

- * </p>

- * <p>

- * A debug model implementation that preserves equality

- * across iterative suspensions may display more desirable behavior in

- * some clients. For example, if stack frames are preserved

- * while stepping, a UI client would be able to update the UI incrementally,

- * rather than collapse and redraw the entire list. 

- * </p>

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IStep

- * @see ISuspendResume

- * @see ITerminate

- */

-public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerminate {

-	/**

-	 * Returns the thread this stack frame is contained in.

-	 * 

-	 * @return thread

-	 * @since 2.0

-	 */

-	public IThread getThread();

-	/**

-	 * Returns the visible variables in this stack frame. An empty

-	 * collection is returned if there are no visible variables.

-	 * 

-	 * @return collection of visible variables

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 * @since 2.0

-	 */

-	public IVariable[] getVariables() throws DebugException;

-	

-	/**

-	 * Returns whether this stack frame currently contains any visible variables.

-	 * 

-	 * @return whether this stack frame currently contains any visible variables

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public boolean hasVariables() throws DebugException;

-		

-	/**

-	 * Returns the line number of the instruction pointer in 

-	 * this stack frame that corresponds to a line in an associated source

-	 * element, or <code>-1</code> if line number information

-	 * is unavailable.

-	 *

-	 * @return line number of instruction pointer in this stack frame, or 

-	 * <code>-1</code> if line number information is unavailable

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 */

-	public int getLineNumber() throws DebugException;

-	

-	/**

-	 * Returns the index of the first character in the associated source

-	 * element that corresponds to the current location of the instruction pointer

-	 * in this stack frame, or <code>-1</code> if the information is unavailable.

-	 * <p>

-	 * If a debug model supports expression level stepping, the start/end

-	 * character ranges are used to highlight the expression within a line

-	 * that is being executed.

-	 * </p>

-	 * @return index of the first character in the associated source

-	 * element that corresponds to the current location of the instruction pointer

-	 * in this stack frame, or <code>-1</code> if the information is unavailable

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 * @since 2.0

-	 */

-	public int getCharStart() throws DebugException;

-	

-	/**

-	 * Returns the index of the last character in the associated source

-	 * element that corresponds to the current location of the instruction pointer

-	 * in this stack frame, or <code>-1</code> if the information is unavailable.

-	 * <p>

-	 * If a debug model supports expression level stepping, the start/end

-	 * character ranges are used to highlight the expression within a line

-	 * that is being executed.

-	 * </p>

-	 * @return index of the last character in the associated source

-	 * element that corresponds to the current location of the instruction pointer

-	 * in this stack frame, or <code>-1</code> if the information is unavailable

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 * @since 2.0

-	 */

-	public int getCharEnd() throws DebugException;	

-		

-	/**

-	 * Returns the name of this stack frame. Name format is debug model

-	 * specific, and should be specified by a debug model.

-	 *

-	 * @return this frame's name

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 */

-	public String getName() throws DebugException;

-	

-	/**

-	 * Returns the register groups assigned to this stack frame,

-	 * or an empty collection if no register groups are assigned

-	 * to this stack frame.

-	 * 

-	 * @return the register groups assigned to this stack frame

-	 *  or an empty collection if no register groups are assigned

-	 *  to this stack frame

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * </ul>

-	 * @since 2.0

-	 */

-	public IRegisterGroup[] getRegisterGroups() throws DebugException;

-	

-	/**

-	 * Returns whether this stack frame contains any register groups.

-	 * 

-	 * @return whether this stack frame contains any visible register groups

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public boolean hasRegisterGroups() throws DebugException;	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
deleted file mode 100644
index e45970d..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

-

-/**

- * Provides the ability to step into, over, and return

- * from the current execution location.  Implementations

- * must be non-blocking.

- * <p>

- * Clients may implement this interface.

- * </p>

- */

-public interface IStep {

-	/**

-	 * Returns whether this element can currently perform a step into.

-	 *

-	 * @return whether this element can currently perform a step into

-	 */

-	public boolean canStepInto();

-	/**

-	 * Returns whether this element can currently perform a step over.

-	 *

-	 * @return whether this element can currently perform a step over

-	 */

-	public boolean canStepOver();

-	/**

-	 * Returns whether this element can currently perform a step return.

-	 *

-	 * @return whether this element can currently perform a step return

-	 */

-	public boolean canStepReturn();

-	/**

-	 * Returns whether this element is currently stepping.

-	 * <p>

-	 * For example, a thread is considered to be stepping

-	 * after the <code>stepOver</code> call until the step over is completed,

-	 * a breakpoint is reached, an exception is thrown, or the thread or is

-	 * terminated.

-	 * </p>

-	 *

-	 * @return whether this element is currently stepping

-	 */

-	public boolean isStepping();

-	/**

-	 * Steps into the current statement, generating <code>RESUME</code>

-	 * and <code>SUSPEND</code> events for the associated thread. Can only be called

-	 * when the associated thread is suspended. Implementations must implement

-	 * stepping as non-blocking.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target</li>

-	 * </ul>

-	 */

-	public void stepInto() throws DebugException;

-	/**

-	 * Steps over the current statement, generating <code>RESUME</code>

-	 * and <code>SUSPEND</code> events for the associated thread. Can only be called

-	 * when the associated thread is suspended. Implementations must implement

-	 * stepping as non-blocking.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target</li>

-	 * </ul>

-	 */

-	public void stepOver() throws DebugException;

-	/**

-	 * Steps to the next return statement in the current scope,

-	 * generating <code>RESUME</code> and <code>SUSPEND</code> events for

-	 * the associated thread. Can only be called when the associated thread is suspended.

-	 * Implementations must implement stepping as non-blocking.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target</li>

-	 * </ul>

-	 */

-	public void stepReturn() throws DebugException;

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
deleted file mode 100644
index a291aa5..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.IStreamListener;

-

-/**

- * A stream monitor manages the contents of a stream a process

- * is writing to, and notifies registered listeners of changes in

- * the stream.

- * <p>

- * Clients may implement this interface. Generally, a client that

- * provides an implementation of the <code>IStreamsProxy</code>

- * interface must also provide an implementation of this interface.

- * </p>

- * @see IStreamsProxy

- */

-public interface IStreamMonitor {

-	/**

-	 * Adds the given listener to this stream monitor's registered listeners.

-	 * Has no effect if an identical listener is already registered.

-	 *

-	 * @param listener the listener to add

-	 */

-	public void addListener(IStreamListener listener);

-	/**

-	 * Returns the entire current contents of the stream. An empty

-	 * String is returned if the stream is empty.

-	 *

-	 * @return the stream contents as a <code>String</code>

-	 */

-	public String getContents();

-	/**

-	 * Removes the given listener from this stream monitor's registered listeners.

-	 * Has no effect if the listener is not already registered.

-	 *

-	 * @param listener the listener to remove

-	 */

-	public void removeListener(IStreamListener listener);

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
deleted file mode 100644
index c43acae..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.io.IOException;

-

-/**

- * A streams proxy acts as proxy between the streams of a

- * process and interested clients. This abstraction allows

- * implementations of <code>IProcess</code> to handle I/O related

- * to the standard input, output, and error streams associated

- * with a process.

- * <p>

- * Clients implementing the <code>IProcess</code> interface must also

- * provide an implementation of this interface.

- * </p>

- * @see IProcess

- */

-public interface IStreamsProxy {

-	/**

-	 * Returns a monitor for the error stream of this proxy's process,

-	 * or <code>null</code> if not supported.

-	 * The monitor is connected to the error stream of the

-	 * associated process.

-	 *

-	 * @return an error stream monitor, or <code>null</code> if none

-	 */

-	public IStreamMonitor getErrorStreamMonitor();

-	/**

-	 * Returns a monitor for the output stream of this proxy's process,

-	 * or <code>null</code> if not supported.

-	 * The monitor is connected to the output stream of the

-	 * associated process.

-	 *

-	 * @return an output stream monitor, or <code>null</code> if none

-	 */

-	public IStreamMonitor getOutputStreamMonitor();

-	/**

-	 * Writes the given text to the output stream connected to the

-	 * standard input stream of this proxy's process.

-	 *

-	 * @exception IOException when an error occurs writing to the 

-	 *		underlying <code>OutputStream</code>.

-	 *

-	 */

-	public void write(String input) throws IOException;

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
deleted file mode 100644
index d1d08f1..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.DebugException;

-

-/**

- * Provides the ability to suspend and resume a thread

- * or debug target.

- * <p>

- * Clients may implement this interface.

- * </p>

- */

-public interface ISuspendResume {

-	/**

-	 * Returns whether this element can currently be resumed.

-	 *

-	 * @return whether this element can currently be resumed

-	 */

-	public boolean canResume();

-	/**

-	 * Returns whether this element can currently be suspended.

-	 *

-	 * @return whether this element can currently be suspended

-	 */

-	public boolean canSuspend();

-	/**

-	 * Returns whether this element is currently suspended.

-	 *

-	 * @return whether this element is currently suspended

-	 */

-	public boolean isSuspended();

-	/**

-	 * Causes this element to resume its execution, generating a <code>RESUME</code> event. 

-	 * Has no effect on an element that is not suspended. This call is non-blocking.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 */

-	public void resume() throws DebugException;

-	/**

-	 * Causes this element to suspend its execution, generating a <code>SUSPEND</code> event.

-	 * Has no effect on an already suspended element.

-	 * Implementations may be blocking or non-blocking.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 */

-	public void suspend() throws DebugException;

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
deleted file mode 100644
index 3848ffa..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.DebugException;

-

-/**

- * Provides the ability to terminate an execution

- * context - for example, a thread, debug target or process.

- * <p>

- * Clients may implement this interface.

- * </p>

- */

-public interface ITerminate {

-	/**

-	 * Returns whether this element can be terminated.

-	 *

-	 * @return whether this element can be terminated

-	 */

-	public boolean canTerminate();

-	/**

-	 * Returns whether this element is terminated.

-	 *

-	 * @return whether this element is terminated

-	 */

-	public boolean isTerminated();

-	/**

-	 * Causes this element to terminate, generating a <code>TERMINATE</code> event.  

-	 * Implementations may be blocking or non-blocking.

-	 *

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 */

-	public void terminate() throws DebugException;

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
deleted file mode 100644
index eb5b620..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

-

-/**

- * A thread is a sequential flow of execution in a debug target.

- * A thread contains stack frames.  Stack frames are only available when the

- * thread is suspended, and are returned in top-down order.

- * Minimally, a thread supports the following:

- * <ul>

- * <li>suspend/resume

- * <li>stepping

- * <li>terminate

- * </ul>

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see ISuspendResume

- * @see IStep

- * @see ITerminate

- * @see IStackFrame

- */

-

-public interface IThread extends IDebugElement, ISuspendResume, IStep, ITerminate {

-	/**

-	 * Returns the stack frames contained in this thread. An

-	 * empty collection is returned if this thread contains

-	 * no stack frames, or is not currently suspended. Stack frames

-	 * are returned in top down order.

-	 * 

-	 * @return a collection of stack frames

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public IStackFrame[] getStackFrames() throws DebugException;

-	

-	/**

-	 * Returns whether this thread currently contains any stack

-	 * frames.

-	 * 

-	 * @return whether this thread currently contains any stack frames

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public boolean hasStackFrames() throws DebugException;

-	

-	/**

-	 * Returns the priority of this thread. The meaning of this

-	 * number is operating-system dependent.

-	 *

-	 * @return thread priority

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public int getPriority() throws DebugException;

-	/** 

-	 * Returns the top stack frame or <code>null</code> if there is

-	 * currently no top stack frame.

-	 *

-	 * @return the top stack frame, or <code>null</code> if none

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public IStackFrame getTopStackFrame() throws DebugException;

-	/**

-	 * Returns the name of this thread. Name format is debug model

-	 * specific, and should be specified by a debug model.

-	 *

-	 * @return this thread's name

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getName() throws DebugException;

-

-	/**

-	 * Returns the breakpoints that caused this thread to suspend,

-	 * or an empty collection if this thread is not suspended or

-	 * was not suspended by a breakpoint. Usually a single breakpoint

-	 * will be returned, but this collection can contain more than

-	 * one breakpoint if two breakpoints are at the same location in

-	 * a program.

-	 *

-	 * @return the collection of breakpoints that caused this thread to suspend

-	 */

-	public IBreakpoint[] getBreakpoints();	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
deleted file mode 100644
index 0f6155e..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.DebugException;

-

-/**

- * A value represents the value of a variable.

- * A value representing a complex data structure contains variables.

- * <p>

- * An implementation may choose to re-use or discard

- * values on iterative thread suspensions. Clients

- * cannot assume that values are identical or equal across

- * iterative thread suspensions and must check for equality on iterative

- * suspensions if they wish to re-use the objects.

- * </p>

- * <p>

- * An implementation that preserves equality

- * across iterative suspensions may display more desirable behavior in

- * some clients. For example, if variables are preserved

- * while stepping, a UI client would be able to update the UI incrementally,

- * rather than collapse and redraw the entire list or tree.

- * </p>

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IVariable

- */

-

-

-public interface IValue extends IDebugElement {

-	

-	/**

-	 * Returns a description of the type of data this value contains

-	 * or references.

-	 * 

-	 * @return the name of this value's reference type

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getReferenceTypeName() throws DebugException;

-	

-	/**

-	 * Returns this value as a <code>String</code>.

-	 *

-	 * @return a String representation of this value

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getValueString() throws DebugException;

-		

-	/**

-	 * Returns whether this value is currently allocated.

-	 * <p>

-	 * For example, if this value represents

-	 * an object that has been garbage collected, <code>false</code> is returned.

-	 * </p>

-	 * @return whether this value is currently allocated

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public boolean isAllocated() throws DebugException;

-	/**

-	 * Returns the visible variables in this value. An empty

-	 * collection is returned if there are no visible variables.

-	 * 

-	 * @return an array of visible variables

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public IVariable[] getVariables() throws DebugException;

-	

-	/**

-	 * Returns whether this value currently contains any visible variables.

-	 * 

-	 * @return whether this value currently contains any visible variables

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the debug target.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 * @since 2.0

-	 */

-	public boolean hasVariables() throws DebugException;	

-}
\ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
deleted file mode 100644
index bd08b4e..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.debug.core.DebugException;

-

-/**

- * Provides the ability to modify the value of a variable in

- * a target.

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IVariable

- */

-public interface IValueModification {

-

-	/**

-	 * Attempts to set the value of this variable to the

-	 * value of the given expression.

-	 *

-	 * @param expression an expression to generate a new value

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 */

-	public void setValue(String expression) throws DebugException;

-	

-	/**

-	 * Sets the value of this variable to the given value.

-	 *

-	 * @param value a new value

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 * @since 2.0

-	 */

-	public void setValue(IValue value) throws DebugException;	

-	

-	/**

-	 * Returns whether this variable supports value modification.

-	 *

-	 * @return whether this variable supports value modification

-	 */

-	public boolean supportsValueModification();

-	

-	/**

-	 * Returns whether the given expression is valid to be used in

-	 * setting a new value for this variable.

-	 *

-	 * @param expression an expression to generate a new value

-	 * @return whether the expression is valid

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 */

-	public boolean verifyValue(String expression) throws DebugException;

-	

-	/**

-	 * Returns whether the given value can be used as

-	 * a new value for this variable.

-	 *

-	 * @param value a new value

-	 * @return whether the value is valid

-	 * @exception DebugException on failure. Reasons include:<ul>

-	 * <li>TARGET_REQUEST_FAILED - The request failed in the target

-	 * <li>NOT_SUPPORTED - The capability is not supported by the target

-	 * </ul>

-	 * @since 2.0

-	 */

-	public boolean verifyValue(IValue value) throws DebugException;

-}

-

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
deleted file mode 100644
index fe484e5..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.eclipse.debug.core.model;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.DebugException;

-

-/**

- * A variable represents a visible data structure in a stack frame

- * or value.

- * Each variable has a value which may in turn contain more variables.

- * A variable may support value modification.

- * <p>

- * An implementation may choose to re-use or discard

- * variables on iterative thread suspensions. Clients

- * cannot assume that variables are identical or equal across

- * iterative thread suspensions and must check for equality on iterative

- * suspensions if they wish to re-use the objects.

- * </p>

- * <p>

- * An implementation that preserves equality

- * across iterative suspensions may display more desirable behavior in

- * some clients. For example, if variables are preserved

- * while stepping, a UI client would be able to update the UI incrementally,

- * rather than collapse and redraw the entire list or tree.

- * </p>

- * <p>

- * Clients may implement this interface.

- * </p>

- * @see IValue

- * @see IStackFrame

- * @see IValueModification

- */

-public interface IVariable extends IDebugElement, IValueModification {

-	/**

-	 * Returns the value of this variable.

-	 * 

-	 * @return this variable's value

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public IValue getValue() throws DebugException;

-	/**

-	 * Returns the name of this variable. Name format is debug model

-	 * specific, and should be specified by a debug model.

-	 *

-	 * @return this variable's name

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getName() throws DebugException;	

-	/**

-	 * Returns a description of the type of data this variable is

-	 * declared to reference. Note that the declared type of a

-	 * variable and the concrete type of its value are not neccessarily

-	 * the same.

-	 *

-	 * @return the declared type of this variable

-	 * @exception DebugException if this method fails.  Reasons include:

-	 * <ul><li>Failure communicating with the VM.  The DebugException's

-	 * status code contains the underlying exception responsible for

-	 * the failure.</li>

-	 */

-	public String getReferenceTypeName() throws DebugException;

-	

-	/** 

-	 * Returns whether this variable's value has changed since the last suspend event. 

-	 * Implementations may choose whether the last suspend event is the last suspend 

-	 * event in this variable's debug target, or within the thread(s) in which this variable 

-	 * is visible. 

-	 * <p>

-	 * Implementations that choose not to implement this function should always

-	 * return <code>false</code>.

-	 * </p>

-	 * 

-	 * @return whether this variable's value has changed since the last suspend event 

-	 * @exception DebugException if an exception occurrs determining if this variable's 

-	 *   value has changed since the last suspend event 

-	 */ 

-	public boolean hasValueChanged() throws DebugException; 

-

-	

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
deleted file mode 100644
index 88122c0..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
deleted file mode 100644
index adb722b..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Eclipse Debug Platform [org.eclipse.debug.core.model]</title>

-</head>

-

-<body bgcolor="#FFFFFF">

-

-<p>Defines interfaces for a debug model elements, source lookup, and launching.</p>

-

-<h2>Package Specification</h2>

-

-<p>This package defines classes and interfaces known as the &quot;debug model&quot; which support

-an extensible set of debug architectures and languages. The debug model is a set of interfaces

-representing common artifacts in debuggable programs. The debug plug-in itself does not provide

-any implementations of a debug model. It is intended that third parties providing an integrated

-set of development tools for a specific language will also implement a debug model for that language,

-using an underlying debug architecture of their choice. For example, Java Tooling provides an

-implementation of a debug model based on the standard Java Platform Debug Architecture (JPDA).</p>

-

-<h4>The Debug Model</h4>

-

-<p>A client implements a debug model by

-providing an implementation of the interfaces defined in this package. (There is no explicit

-extension point that represents a debug model). Each debug model provides one or more

-launch configuration types capable of initiating a debug session.</p>

-

-<p>The common elements defined by the debug model are: 

-

-<ul>

-  <li>Debug Target - A debug target represents a debuggable program - for example, a virtual

-    machine or a process.</li>

-  <li>Thread - A debug target may contain one or more threads.</li>

-  <li>Stack Frame - A suspended thread may contain one or more stack frames.</li>

-  <li>Variable - A stack frame may contain variables.</li>

-  <li>Value - Each variable has an associated value, and a value may contain more variables (to

-  	represent complex data structures and objects).</li>

-  <li>Register Group - A stack frame may (optionally) be associated with one or more register

-    groups.</li>

-  <li>Register - A register group contains one or more registers.</li>

-  <li>Memory Blocks - A debug target may (optionally) support the retrieval of

-    arbitrary contiguos segments of memory.</li>

-  <li>Breakpoint - Breakpoints suspend the execution of a program.</li>

-  <li>Expression -  An expression is a snippet of code that can be evaluated to

-  	produce a value.</li>

-</ul>

-

-<p>A debug model implementation is responsible for firing debug events. A debug event

-corresponds to an event in a program being debugged - for example the creation or

-termination of a thread.</p>

-

-<h4>Breakpoints</h4>

-

-<p>Breakpoints are used to suspend the execution of a program being debugged. There are

-many kinds of breakpoints - line breakpoints, conditional line breakpoints, hit count

-breakpoints, exception breakpoints, etc. The kinds of breakpoints supported by each debug

-architecture, and the information required to create those breakpoints

-is dictated by each debug architecture. The debug platform supports an extensible

-set of breakpoint via the breakpoints extension point.</p>

-

-<p>The debug platform provides a breakpoint manager that maintains the collection of all

-registered breakpoints. Clients add and remove breakpoints via this manager. Breakpoints are

-implemented by instances of IBreakpoint. Each breakpoint object has an associated marker,

-which provides persistence and presentation in editors. The debug platform defines a generic

-breakpoint and line breakpoint, as well as their corresponding marker definitions. Breakpoint

-creation is a client responsibility - that is, defining the attributes of a breakpoint and

-the resource to associate a breakpoin marker with.</p>

-

-<p>Breakpoint creation is a client responsibility, as the location in which a breakpoint may

-be placed, and the attributes that a debug target requires to install a breakpoint is

-specific to each debug architecture.</p>

-

-<h5>Persistence</h5>

-

-<p>Breakpoints are persisted via their underlying marker. Breakpoint markers defined

-with the <b>persisted</b> attribute as <b>false</b> will not be persisted. Breakpoints

-are restored at workspace startup time by the breakpoint manager - that is, breakpoint objects

-are created for all persisted markers which are a subtype of the root breakpoint marker

-and are added to the breakpoint manager. To allow for selective persistence

-of breakpoints (of the same kind), the IBreakpoint interface and root breakpoint

-implementation define a &quot;persisted&quot; attribute. If this value is set to false,

-the breakpoint will not be persisted across workspace invocations.</p>

-

-<h5>Change Notification</h5>

-

-<p>As breakpoint markers are modified (created, removed, and changed), resource deltas

-are created by the platform. The breakpoint manager translates pertinent resource deltas

-into breakpoint change notifications (breakpoint added/removed/changed messages). Interested

-listeners may register with the breakpoint manager. The breakpoint manager only fires change

-notifications for registered breakpoints. This simplifies breakpoint processing for clients,

-as resource delta traversal and analysis is not required. Debug targets that support breakpoints

-should register for breakpoint change notifications.</p>

-

-</body>

-</html>

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
deleted file mode 100644
index c8e7d76..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Eclipse Debug Platform</title>

-</head>

-

-<body bgcolor="#FFFFFF">

-

-<p>Provides support for launching programs, breakpoint management, expression management,

-and debug events.</p>

-

-<h2>Package Specification</h2>

-

-<p>This package provides classes and interfaces to support facilities common

-among many debug architectures: launching programs, breakpoint management,

-expression management, and debug events. An extensible

-set of debug architectures and languages are supported by the definition of a &quot;debug

-model&quot; - a set of interfaces representing common artifacts in debuggable programs, which

-are defined in <b>org.eclipse.debug.core.model</b>.

-The debug plug-in itself does not provide any implementations of a debug model. It is

-intended that third parties providing an integrated set of development tools for a

-specific language will also implement a debug model for that language, using an underlying

-debug architecture of their choice. For example, Java Tooling provides an implementation

-of a debug model based on the standard Java Platform Debug Architecture (JPDA).</p>

-

-<h4>The Managers</h4>

-

-<p>The debug platform defines and provides an implementation of the following managers:

-<ul>

- <li>Launch Manager - The launch manager maintains the set of registered launches - that is,

- 	a collection of programs that have been launched in debuggable or non-debuggable (run) mode.

- 	Each launch maintains its associated debug targets and system processes. A launch that

- 	represents a debuggable program may specify an associated source locator used to locate

- 	source elements associated with stack frames for a particular debug session. Clients must

- 	provide implementations of source locators, which are generally tied to the manner in which

- 	a program is launched.</li>

- <li>Breakpoint Manager - The breakpoint manager maintains, persists, and restores the collection

-    of all registered breakpoints in the workspace. As well, it provides change notification for

-    breakpoints.</li>

- <li>Expression Manager - The expression manager maintains a collection of registered expressions.

-    Expressions are not automatically persisted, but a client could persist its own expressions

-    if required.</li>

-</ul>

-</p>

-

-<h4>Launch Configurations</h4>

-

-<p>A launch configuration is a persistable description of how to launch an application.

- Each launch configuration is an instance of a type of launch configuration - for example,

- a Java Application. The debug plug-in defines a launch configuration type extension point

- such that clients may define launch configurations specific to their debug architecture.

- A launch configuration is simply a set of attributes describing how to launch a program.

- The actual launching of an application is performed

- by an associated implementation of a launch configuration delegate, which is specifed by each launch configuration

- type extension.</p>

-<p>A launch configuration may be stored as a file in the worksapce (and shared in a repository via

- standard team mechanisms), or may be stored locally, essentially making the launch configuration

- private for a single user.</p>

-

-

-</body>

-</html>

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
deleted file mode 100644
index 9db6e3f..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
+++ /dev/null
@@ -1,581 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.text.MessageFormat;

-import java.util.ArrayList;

-import java.util.Enumeration;

-import java.util.HashMap;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Vector;

-

-import org.eclipse.core.resources.IMarker;

-import org.eclipse.core.resources.IMarkerDelta;

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IResource;

-import org.eclipse.core.resources.IResourceChangeEvent;

-import org.eclipse.core.resources.IResourceChangeListener;

-import org.eclipse.core.resources.IResourceDelta;

-import org.eclipse.core.resources.IResourceDeltaVisitor;

-import org.eclipse.core.resources.IWorkspace;

-import org.eclipse.core.resources.IWorkspaceRoot;

-import org.eclipse.core.resources.IWorkspaceRunnable;

-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.IProgressMonitor;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.IBreakpointListener;

-import org.eclipse.debug.core.IBreakpointManager;

-import org.eclipse.debug.core.model.IBreakpoint;

-

-/**

- * The breakpoint manager manages all registered breakpoints

- * for the debug plugin. It is instantiated by the debug plugin at startup.

- *

- * @see IBreakpointManager

- */

-public class BreakpointManager implements IBreakpointManager, IResourceChangeListener {

-	

-	/**

-	 * Constants for breakpoint add/remove/change updates

-	 */

-	private final static int ADDED = 0;

-	private final static int REMOVED = 1;

-	private final static int CHANGED = 2;

-	

-	/**

-	 * String constants corresponding to XML extension keys

-	 */

-	private final static String CLASS = "class"; //$NON-NLS-1$

-	

-	/**

-	 * Attribute name for the <code>"markerType"</code> attribute of

-	 * a breakpoint extension.

-	 */

-	private static final String MARKER_TYPE= "markerType";	 //$NON-NLS-1$	

-

-	/**

-	 * A collection of breakpoints registered with this manager.

-	 */

-	private Vector fBreakpoints= null;

-	

-	/**

-	 * A table of breakpoint extension points, keyed by

-	 * marker type

-	 * key: a marker type

-	 * value: the breakpoint extension which corresponds to that marker type

-	 */

-	private HashMap fBreakpointExtensions;

-	

-	/**

-	 * Collection of markers that associates markers to breakpoints

-	 * key: a marker

-	 * value: the breakpoint which contains that marker

-	 */	

-	private HashMap fMarkersToBreakpoints;

-

-	/**

-	 * Collection of breakpoint listeners.

-	 */

-	private ListenerList fBreakpointListeners= new ListenerList(6);

-

-	/**

-	 * Singleton resource delta visitor which handles marker

-	 * additions, changes, and removals.

-	 */

-	private static BreakpointManagerVisitor fgVisitor;

-

-	/**

-	 * Constructs a new breakpoint manager.

-	 */

-	public BreakpointManager() {

-		fMarkersToBreakpoints= new HashMap(10);	

-		fBreakpointExtensions = new HashMap(15);	

-	}

-

-	/**

-	 * Registers this manager as a resource change listener and

-	 * initializes the collection of defined breakpoint extensions.

-	 * 

-	 * This method should only be called on initial startup of 

-	 * the debug plugin.

-	 */

-	public void startup() throws CoreException {

-		initBreakpointExtensions();

-		deleteNonPersistedBreakpoints(ResourcesPlugin.getWorkspace().getRoot());

-		getWorkspace().addResourceChangeListener(this);

-	}

-	

-	/**

-	 * Loads all the breakpoints on the given resource.

-	 * 

-	 * @param resource the resource which contains the breakpoints

-	 */

-	private void loadBreakpoints(IResource resource) throws CoreException {

-		IMarker[] markers= resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);

-		for (int i = 0; i < markers.length; i++) {

-			IMarker marker= markers[i];

-			try {

-				createBreakpoint(marker);

-			} catch (DebugException e) {

-				DebugPlugin.log(e);

-			}

-		}

-	}

-	

-	/**

-	 * Delete any non-persisted/invalid breakpoint markers. This is done

-	 * at startup rather than shutdown, since the changes made at

-	 * shutdown are not persisted as the workspace state has already

-	 * been saved. See bug 7683.

-	 */

-	protected void deleteNonPersistedBreakpoints(IResource resource) throws CoreException {

-		IMarker[] markers= resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);

-		final List delete = new ArrayList();

-		for (int i = 0; i < markers.length; i++) {

-			IMarker marker= markers[i];

-			// ensure the marker has a valid model identifier attribute

-			// and delete the breakpoint if not

-			String modelId = marker.getAttribute(IBreakpoint.ID, null);

-			if (modelId == null) {

-				// marker with old/invalid format - delete

-				delete.add(marker);

-			} else if (!marker.getAttribute(IBreakpoint.PERSISTED, true)) {

-				// the breakpoint is marked as not to be persisted,

-				// schedule for deletion

-				delete.add(marker);

-			}

-		}

-		// delete any markers that are not to be restored

-		if (!delete.isEmpty()) {

-			IWorkspaceRunnable wr = new IWorkspaceRunnable() {

-				public void run(IProgressMonitor pm) throws CoreException {

-					ResourcesPlugin.getWorkspace().deleteMarkers((IMarker[])delete.toArray(new IMarker[delete.size()]));

-				}

-			};

-			fork(wr);

-		}		

-	}

-	

-	/**

-	 * Removes this manager as a resource change listener

-	 * and removes all breakpoint listeners.

-	 */

-	public void shutdown() {

-		getWorkspace().removeResourceChangeListener(this);

-		fBreakpointListeners.removeAll();

-	}

-

-	/**

-	 * Find the defined breakpoint extensions and cache them for use in recreating

-	 * breakpoints from markers.

-	 */

-	private void initBreakpointExtensions() {

-		IExtensionPoint ep= DebugPlugin.getDefault().getDescriptor().getExtensionPoint(DebugPlugin.EXTENSION_POINT_BREAKPOINTS);

-		IConfigurationElement[] elements = ep.getConfigurationElements();

-		for (int i= 0; i < elements.length; i++) {

-			fBreakpointExtensions.put(elements[i].getAttribute(MARKER_TYPE), elements[i]);

-		}

-		

-	}

-

-	/**

-	 * Convenience method to get the workspace

-	 */

-	private IWorkspace getWorkspace() {

-		return ResourcesPlugin.getWorkspace();

-	}

-

-	/**

-	 * @see IBreakpointManager#getBreakpoint(IMarker)

-	 */

-	public IBreakpoint getBreakpoint(IMarker marker) {

-		// ensure that breakpoints are initialized

-		getBreakpoints0();

-		return (IBreakpoint)fMarkersToBreakpoints.get(marker);

-	}

-

-	/**

-	 * @see IBreakpointManager#getBreakpoints()

-	 */

-	public IBreakpoint[] getBreakpoints() {

-		Vector breakpoints= getBreakpoints0();

-		IBreakpoint[] temp= new IBreakpoint[breakpoints.size()];

-		breakpoints.copyInto(temp);

-		return temp;

-	}

-	

-	/**

-	 * The BreakpointManager waits to load the breakpoints

-	 * of the workspace until a request is made to retrieve the 

-	 * breakpoints.

-	 */

-	private Vector getBreakpoints0() {

-		if (fBreakpoints == null) {

-			initializeBreakpoints();

-		}

-		return fBreakpoints;

-	}

-	

-	

-	

-	/**

-	 * @see IBreakpointManager#getBreakpoints(String)

-	 */

-	public IBreakpoint[] getBreakpoints(String modelIdentifier) {

-		Vector allBreakpoints= getBreakpoints0();

-		ArrayList temp= new ArrayList(allBreakpoints.size());

-		Iterator breakpoints= allBreakpoints.iterator();

-		while (breakpoints.hasNext()) {

-			IBreakpoint breakpoint= (IBreakpoint) breakpoints.next();

-			String id= breakpoint.getModelIdentifier();

-			if (id != null && id.equals(modelIdentifier)) {

-				temp.add(breakpoint);

-			}

-		}

-		return (IBreakpoint[]) temp.toArray(new IBreakpoint[temp.size()]);

-	}

-

-	/**

-	 * Loads the list of breakpoints from the breakpoint markers in the

-	 * workspace.

-	 */

-	private void initializeBreakpoints() {

-		setBreakpoints(new Vector(10));

-		IWorkspaceRoot root= getWorkspace().getRoot();

-		try {

-			loadBreakpoints(root);	

-		} catch (CoreException ce) {

-			DebugPlugin.log(ce);

-			setBreakpoints(new Vector(0));

-		} 

-	}

-	

-	/**

-	 * @see IBreakpointManager#isRegistered(IBreakpoint)

-	 */

-	public boolean isRegistered(IBreakpoint breakpoint) {

-		return getBreakpoints0().contains(breakpoint);

-	}

-

-	

-	/**

-	 * @see IBreakpointManager#removeBreakpoint(IBreakpoint, boolean)

-	 */

-	public void removeBreakpoint(IBreakpoint breakpoint, boolean delete) throws CoreException {

-		if (getBreakpoints0().remove(breakpoint)) {

-			fMarkersToBreakpoints.remove(breakpoint.getMarker());

-			fireUpdate(breakpoint, null, REMOVED);

-			if (delete) {

-				breakpoint.delete();

-			} else {

-				// if the breakpoint is being removed from the manager

-				// because the project is closing, the breakpoint should

-				// remain as registered, otherwise, the breakpoint should

-				// be marked as deregistered

-				IMarker marker = breakpoint.getMarker();

-				if (marker.exists()) {

-					IProject project = breakpoint.getMarker().getResource().getProject();

-					if (project == null || project.isOpen()) {

-						breakpoint.setRegistered(false);

-					}

-				}

-			}

-		}

-	}

-	

-	/**

-	 * Create a breakpoint for the given marker. The created breakpoint

-	 * is of the type specified in the breakpoint extension associated

-	 * with the given marker type.

-	 * 

-	 * @return a breakpoint on this marker

-	 * @exception DebugException if breakpoint creation fails. Reasons for 

-	 *  failure include:

-	 * <ol>

-	 * <li>The breakpoint manager cannot determine what kind of breakpoint

-	 *     to instantiate for the given marker type</li>

-	 * <li>A lower level exception occurred while accessing the given marker</li>

-	 * </ol>

-	 */

-	private IBreakpoint createBreakpoint(IMarker marker) throws DebugException {

-		IBreakpoint breakpoint= (IBreakpoint) fMarkersToBreakpoints.get(marker);

-		if (breakpoint != null) {

-			return breakpoint;

-		}

-		try {

-			IConfigurationElement config = (IConfigurationElement)fBreakpointExtensions.get(marker.getType());

-			if (config == null) {

-				throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(), 

-					DebugException.CONFIGURATION_INVALID, MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Missing_breakpoint_definition"), new String[] {marker.getType()}), null)); //$NON-NLS-1$

-			}

-			breakpoint = (IBreakpoint)config.createExecutableExtension(CLASS);

-			breakpoint.setMarker(marker);

-			if (breakpoint.isRegistered()) {

-				addBreakpoint(breakpoint);

-			}

-			return breakpoint;		

-		} catch (CoreException e) {

-			throw new DebugException(e.getStatus());

-		}

-	}	

-

-	/**

-	 * @see IBreakpointManager#addBreakpoint(IBreakpoint)

-	 */

-	public void addBreakpoint(IBreakpoint breakpoint) throws CoreException {

-		if (!getBreakpoints0().contains(breakpoint)) {

-			verifyBreakpoint(breakpoint);

-			// set the registered property before adding to the collection

-			// such that a change notification is not fired

-			breakpoint.setRegistered(true);

-			getBreakpoints0().add(breakpoint);

-			fMarkersToBreakpoints.put(breakpoint.getMarker(), breakpoint);

-			fireUpdate(breakpoint, null, ADDED);

-		}			

-	}

-	

-	/**

-	 * @see IBreakpointManager#fireBreakpointChanged(IBreakpoint)

-	 */

-	public void fireBreakpointChanged(IBreakpoint breakpoint) {

-		if (getBreakpoints0().contains(breakpoint)) {

-			fireUpdate(breakpoint, null, CHANGED);

-		}

-	}

-

-	/**

-	 * Verifies that the breakpoint marker has the minimal required attributes,

-	 * and throws a debug exception if not.

-	 */

-	private void verifyBreakpoint(IBreakpoint breakpoint) throws DebugException {

-		try {

-			String id= breakpoint.getModelIdentifier();

-			if (id == null) {

-				throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(), 

-					DebugException.CONFIGURATION_INVALID, DebugCoreMessages.getString("BreakpointManager.Missing_model_identifier"), null)); //$NON-NLS-1$

-			}

-		} catch (CoreException e) {

-			throw new DebugException(e.getStatus());

-		}

-	}

-

-	/**

-	 * A resource has changed. Traverses the delta for breakpoint changes.

-	 */

-	public void resourceChanged(IResourceChangeEvent event) {

-		if (!isRestored()) {

-			// if breakpoints have not been restored, deltas

-			// should not be processed (we are unable to restore

-			// breakpoints in a resource callback, as that might

-			// cause the resource tree to be modififed, which is

-			// not allowed during notification).

-			// @see bug 9327

-			return;

-		}

-		IResourceDelta delta= event.getDelta();

-		if (delta != null) {

-			try {

-				if (fgVisitor == null) {

-					fgVisitor= new BreakpointManagerVisitor();

-				}

-				delta.accept(fgVisitor);

-			} catch (CoreException ce) {

-				DebugPlugin.log(ce);

-			}

-		}

-	}

-	

-	/**

-	 * Returns whether breakpoints have been restored

-	 * since the workbench was started.

-	 * 

-	 * @return whether breakpoints have been restored

-	 * since the workbench was started

-	 */

-	protected boolean isRestored() {

-		return fBreakpoints != null;

-	}

-

-	/**

-	 * A project has been opened or closed.  Updates the breakpoints for

-	 * that project

-	 */

-	private void handleProjectResourceOpenStateChange(IResource project) {

-		if (!project.isAccessible()) {

-			//closed

-			Enumeration breakpoints= getBreakpoints0().elements();

-			while (breakpoints.hasMoreElements()) {

-				IBreakpoint breakpoint= (IBreakpoint) breakpoints.nextElement();

-				IResource markerResource= breakpoint.getMarker().getResource();

-				if (project.getFullPath().isPrefixOf(markerResource.getFullPath())) {

-					try {

-						removeBreakpoint(breakpoint, false);

-					} catch (CoreException e) {

-						DebugPlugin.log(e);

-					}

-				}

-			}

-			return;

-		} else {

-			try {

-				loadBreakpoints(project);

-			} catch (CoreException e) {

-				DebugPlugin.log(e);

-			}

-		}

-	}

-

-	/**

-	 * Visitor for handling resource deltas

-	 */

-	class BreakpointManagerVisitor implements IResourceDeltaVisitor {

-		/**

-		 * @see IResourceDeltaVisitor#visit(IResourceDelta)

-		 */

-		public boolean visit(IResourceDelta delta) {

-			if (delta == null) {

-				return false;

-			}

-			if (0 != (delta.getFlags() & IResourceDelta.OPEN)) {

-				handleProjectResourceOpenStateChange(delta.getResource());

-				return false;

-			}

-			IMarkerDelta[] markerDeltas= delta.getMarkerDeltas();

-			for (int i= 0; i < markerDeltas.length; i++) {

-				IMarkerDelta markerDelta= markerDeltas[i];

-				if (markerDelta.isSubtypeOf(IBreakpoint.BREAKPOINT_MARKER)) {

-					switch (markerDelta.getKind()) {

-						case IResourceDelta.ADDED :

-							handleAddBreakpoint(delta, markerDelta.getMarker(), markerDelta);

-							break;

-						case IResourceDelta.REMOVED :

-							handleRemoveBreakpoint(markerDelta.getMarker(), markerDelta);

-							break;

-						case IResourceDelta.CHANGED :

-							handleChangeBreakpoint(markerDelta.getMarker(), markerDelta);

-							break;

-					}

-				}

-			}

-

-			return true;

-		}		

-

-		/**

-		 * Wrapper for handling adds

-		 */

-		protected void handleAddBreakpoint(IResourceDelta rDelta, final IMarker marker, IMarkerDelta mDelta) {

-			if (0 != (rDelta.getFlags() & IResourceDelta.MOVED_FROM)) {

-				// This breakpoint has actually been moved - already removed

-				// from the Breakpoint manager during the remove callback

-				// Delete the marker associated with the new resource

-				IWorkspaceRunnable wRunnable= new IWorkspaceRunnable() {

-					public void run(IProgressMonitor monitor) {

-						try {

-							marker.delete();

-						} catch (CoreException ce) {

-							DebugPlugin.log(ce);

-						}

-					}

-				};

-				fork(wRunnable);

-			} else {

-				// do nothing - we do not add until explicitly added

-			}

-		}

-		

-		/**

-		 * Wrapper for handling removes

-		 */

-		protected void handleRemoveBreakpoint(IMarker marker, IMarkerDelta delta) {

-			IBreakpoint breakpoint= getBreakpoint(marker);

-			if (breakpoint != null) {

-				try {

-					removeBreakpoint(breakpoint, false);

-				} catch (CoreException e) {

-					DebugPlugin.log(e);

-				}

-			}

-		}

-

-		/**

-		 * Wrapper for handling changes

-		 */

-		protected void handleChangeBreakpoint(IMarker marker, IMarkerDelta delta) {

-			final IBreakpoint breakpoint= getBreakpoint(marker);

-			if (breakpoint != null && isRegistered(breakpoint)) {

-				fireUpdate(breakpoint, delta, CHANGED);

-			}

-		}

-	}

-

-	/**

-	 * @see IBreakpointManager#addBreakpointListener(IBreakpointListener)

-	 */

-	public void addBreakpointListener(IBreakpointListener listener) {

-		fBreakpointListeners.add(listener);

-	}

-

-	/**

-	 * @see IBreakpointManager#removeBreakpointListener(IBreakpointListener)

-	 */

-	public void removeBreakpointListener(IBreakpointListener listener) {

-		fBreakpointListeners.remove(listener);

-	}

-	

-	/**

-	 * Notifies listeners of the add/remove/change

-	 */

-	private void fireUpdate(IBreakpoint breakpoint, IMarkerDelta delta, int update) {

-		Object[] copiedListeners= fBreakpointListeners.getListeners();

-		for (int i= 0; i < copiedListeners.length; i++) {

-			IBreakpointListener listener = (IBreakpointListener)copiedListeners[i];

-			switch (update) {

-				case ADDED:

-					listener.breakpointAdded(breakpoint);

-					break;

-				case REMOVED:

-					listener.breakpointRemoved(breakpoint, delta);

-					break;

-				case CHANGED:

-					listener.breakpointChanged(breakpoint, delta);		

-					break;

-			}

-		}

-	}

-

-	protected void setBreakpoints(Vector breakpoints) {

-		fBreakpoints = breakpoints;

-	}

-	

-	protected void fork(final IWorkspaceRunnable wRunnable) {

-		Runnable runnable= new Runnable() {

-			public void run() {

-				try {

-					getWorkspace().run(wRunnable, null);

-				} catch (CoreException ce) {

-					DebugPlugin.log(ce);

-				}

-			}

-		};

-		new Thread(runnable).start();

-	}		

-

-	/**

-	 * @see IBreakpointManager#hasBreakpoints()

-	 */

-	public boolean hasBreakpoints() {

-		return !getBreakpoints0().isEmpty();

-	}

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java
deleted file mode 100644
index 4953856..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-package org.eclipse.debug.internal.core;

-

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-public class DebugCoreMessages {

-

-	private static final String RESOURCE_BUNDLE= "org.eclipse.debug.internal.core.DebugCoreMessages";//$NON-NLS-1$

-

-	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);

-

-	private DebugCoreMessages() {

-	}

-

-	public static String getString(String key) {

-		try {

-			return fgResourceBundle.getString(key);

-		} catch (MissingResourceException e) {

-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$

-		}

-	}

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties
deleted file mode 100644
index 2ba828f..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-#########################################

-# (c) Copyright IBM Corp. 2000, 2001.

-# All Rights Reserved.

-#########################################

-Breakpoint.no_associated_marker=Breakpoint does not have an associated marker.

-

-BreakpointManager.Missing_breakpoint_definition=Missing breakpoint definition for marker type {0}

-BreakpointManager.Missing_model_identifier=Breakpoint missing debug model identifier

-InputStreamMonitor.label=Input Stream Monitor

-OutputStreamMonitor.label=Output Stream Monitor

-ProcessMonitor.label=Process Monitor

-RuntimeProcess.terminate_failed=Terminate failed

-Launch.terminate_failed=Terminate failed

-LaunchConfiguration.Failed_to_delete_launch_configuration._1=Failed to delete launch configuration.

-LaunchConfigurationInfo.Invalid_launch_configuration_XML._10=Invalid launch configuration XML.

-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_boolean._3=Attribute {0} is not of type boolean.

-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_int._2=Attribute {0} is not of type int.

-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.lang.String._1=Attribute {0} is not of type java.lang.String.

-LaunchConfigurationWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1={0} occurred generating launch configuration XML.

-Invalid_launch_configuration_index._18=Invalid launch configuration index.

-LaunchManager.{0}_occurred_while_reading_launch_configuration_index._11={0} occurred while reading launch configuration index.

-LaunchManager.{0}_occurred_generating_launch_configuration_index._7={0} occurred generating launch configuration index.

-LaunchManager.Launch_configuration_does_not_exist._6=Launch configuration does not exist.

-LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1={0} occurred while reading launch configuration file.

-DebugEvent.illegal_kind=kind is not one of the allowed constants, see IDebugEventConstants

-DebugEvent.illegal_detail=detail is not one of the allowed constants, see IDebugEventConstants

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java
deleted file mode 100644
index 7fe23da..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.util.ArrayList;

-import java.util.Iterator;

-import java.util.Vector;

-

-import org.eclipse.debug.core.DebugEvent;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.IDebugEventSetListener;

-import org.eclipse.debug.core.IExpressionListener;

-import org.eclipse.debug.core.IExpressionManager;

-import org.eclipse.debug.core.model.IExpression;

-

-/**

- * The expression manager manages all registered expressions

- * for the debug plugin. It is instantiated by the debug plugin

- * at startup.

- * 

- * [XXX: expression persistence not yet implemented]

- *

- * @see IExpressionManager

- */

-public class ExpressionManager implements IExpressionManager, IDebugEventSetListener {

-	

-	/**

-	 * Collection of registered expressions.

-	 */

-	private Vector fExpressions = new Vector(10);

-	

-	/**

-	 * List of expression listeners

-	 */

-	private ListenerList fListeners = new ListenerList(2);

-	

-	/**

-	 * @see IExpressionManager#addExpression(IExpression, String)

-	 */

-	public void addExpression(IExpression expression) {

-		if (getExpressions0().indexOf(expression) == -1) {

-			getExpressions0().add(expression);

-			fireExpressionAdded(expression);

-		}

-	}

-

-	/**

-	 * @see IExpressionManager#getExpressions()

-	 */

-	public IExpression[] getExpressions() {

-		Vector expressions = getExpressions0();

-		IExpression[] temp= new IExpression[expressions.size()];

-		expressions.copyInto(temp);

-		return temp;

-	}

-

-	/**

-	 * @see IExpressionManager#getExpressions(String)

-	 */

-	public IExpression[] getExpressions(String modelIdentifier) {

-		Vector expressions = getExpressions0();

-		ArrayList temp= new ArrayList(expressions.size());

-		Iterator iter= expressions.iterator();

-		while (iter.hasNext()) {

-			IExpression expression= (IExpression) iter.next();

-			String id= expression.getModelIdentifier();

-			if (id != null && id.equals(modelIdentifier)) {

-				temp.add(expression);

-			}

-		}

-		return (IExpression[]) temp.toArray(new IExpression[temp.size()]);

-	}

-

-	/**

-	 * @see IExpressionManager#removeExpression(IExpression)

-	 */

-	public void removeExpression(IExpression expression) {

-		if (getExpressions0().indexOf(expression) >= 0) {

-			getExpressions0().remove(expression);

-			expression.dispose();

-			fireExpressionRemoved(expression);

-		}

-	}

-

-	/**

-	 * @see IExpressionManager#addExpressionListener(IExpressionListener)

-	 */

-	public void addExpressionListener(IExpressionListener listener) {

-		fListeners.add(listener);

-	}

-

-	/**

-	 * @see IExpressionManager#removeExpressionListener(IExpressionListener)

-	 */

-	public void removeExpressionListener(IExpressionListener listener) {

-		fListeners.remove(listener);

-	}

-	

-	/**

-	 * Called be the debug plug-in when starting up.

-	 */

-	public void startup() {

-		DebugPlugin.getDefault().addDebugEventListener(this);

-	}

-	

-	/**

-	 * Called by the debug plug-in when shutting down.

-	 */

-	public void shutdown() {

-		DebugPlugin.getDefault().removeDebugEventListener(this);

-	}

-

-	/**

-	 * Returns the list of registered expressions as

-	 * a vector.

-	 * 

-	 * @return vector of registered expressions

-	 */

-	protected Vector getExpressions0() {

-		return fExpressions;

-	}

-	

-	/**

-	 * @see IDebugEventListener#handleDebugEvent(DebugEvent)

-	 */

-	public void handleDebugEvents(DebugEvent[] events) {

-		for (int i = 0; i < events.length; i++) {

-			DebugEvent event = events[i];

-			if (event.getSource() instanceof IExpression) {

-				switch (event.getKind()) {

-					case DebugEvent.CHANGE:

-						fireExpressionChanged((IExpression)event.getSource());

-						break;

-					case DebugEvent.TERMINATE:

-						removeExpression((IExpression)event.getSource());

-						break;

-					default:

-						break;

-				}

-			} 

-		}

-	}

-	

-	/**

-	 * Notifies listeners that the given expression has been

-	 * added.

-	 * 

-	 * @param expression the newly added expression

-	 */

-	protected void fireExpressionAdded(IExpression expression) {

-		Object[] listeners = fListeners.getListeners();

-		for (int i = 0; i < listeners.length; i++) {

-			((IExpressionListener)listeners[i]).expressionAdded(expression);

-		}

-	}

-	

-	/**

-	 * Notifies listeners that the given expression has been

-	 * removed.

-	 * 

-	 * @param expression the removed expression

-	 */

-	protected void fireExpressionRemoved(IExpression expression) {

-		Object[] listeners = fListeners.getListeners();

-		for (int i = 0; i < listeners.length; i++) {

-			((IExpressionListener)listeners[i]).expressionRemoved(expression);

-		}

-	}	

-	

-	/**

-	 * Notifies listeners that the given expression has changed.

-	 * 

-	 * @param expression the changed expression

-	 */

-	protected void fireExpressionChanged(IExpression expression) {

-		Object[] listeners = fListeners.getListeners();

-		for (int i = 0; i < listeners.length; i++) {

-			((IExpressionListener)listeners[i]).expressionChanged(expression);

-		}

-	}		

-

-	/**

-	 * @see IExpressionManager#hasExpressions()

-	 */

-	public boolean hasExpressions() {

-		return !getExpressions0().isEmpty();

-	}

-

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java
deleted file mode 100644
index 6abddc3..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.IOException;

-import java.io.OutputStream;

-import java.util.Vector;

-

-import org.eclipse.debug.core.DebugPlugin;

-

-/**

- * Writes to the input stream of a system process, 

- * queueing output if the stream is blocked.

- * 

- * The input stream monitor writes to system in via

- * an output stream.

- */

-public class InputStreamMonitor {

-	

-	/**

-	 * The stream which is being written to (connected to system in).

-	 */

-	private OutputStream fStream;

-	/**

-	 * The queue of output.

-	 */

-	private Vector fQueue;

-	/**

-	 * The thread which writes to the stream.

-	 */

-	private Thread fThread;

-	/**

-	 * A lock for ensuring that writes to the queue are contiguous

-	 */

-	private Object fLock;

-	

-	/**

-	 * Creates an input stream monitor which writes

-	 * to system in via the given output stream.

-	 */

-	public InputStreamMonitor(OutputStream stream) {

-		fStream= stream;

-		fQueue= new Vector();

-		fLock= new Object();

-	}

-	

-	/**

-	 * Appends the given text to the stream, or

-	 * queues the text to be written at a later time

-	 * if the stream is blocked.

-	 */

-	public void write(String text) {

-		synchronized(fLock) {

-			fQueue.add(text);

-			fLock.notifyAll();

-		}

-	}

-

-	/**

-	 * Starts a thread which writes the stream.

-	 */

-	public void startMonitoring() {

-		if (fThread == null) {

-			fThread= new Thread(new Runnable() {

-				public void run() {

-					write();

-				}

-			}, DebugCoreMessages.getString("InputStreamMonitor.label")); //$NON-NLS-1$

-			fThread.start();

-		}

-	}

-	

-	/**

-	 * Close all communications between this

-	 * monitor and the underlying stream.

-	 */

-	public void close() {

-		if (fThread != null) {

-			Thread thread= fThread;

-			fThread= null;

-			thread.interrupt(); 

-		}

-	}

-	

-	/**

-	 * Continuously writes to the stream.

-	 */

-	protected void write() {

-		while (fThread != null) {

-			writeNext();

-		}	

-	}

-	

-	/**

-	 * Write the text in the queue to the stream.

-	 */

-	protected void writeNext() {

-		while (!fQueue.isEmpty()) {

-			String text = (String)fQueue.firstElement();

-			fQueue.removeElementAt(0);

-			try {

-				if (fStream != null) {

-					fStream.write(text.getBytes());

-					fStream.flush();

-				}

-			} catch (IOException e) {

-				DebugPlugin.log(e);

-			}

-		}

-		try {

-			synchronized(fLock) {

-				fLock.wait();

-			}

-		} catch (InterruptedException e) {

-		}

-	}

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java
deleted file mode 100644
index 6bdd542..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java
+++ /dev/null
@@ -1,465 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.io.IOException;

-import java.io.StringReader;

-import java.io.StringWriter;

-import java.util.List;

-import java.util.Map;

-

-import javax.xml.parsers.DocumentBuilder;

-import javax.xml.parsers.DocumentBuilderFactory;

-import javax.xml.parsers.ParserConfigurationException;

-import org.apache.xerces.dom.DocumentImpl;

-import org.apache.xml.serialize.Method;

-import org.apache.xml.serialize.OutputFormat;

-import org.apache.xml.serialize.Serializer;

-import org.apache.xml.serialize.SerializerFactory;

-import org.eclipse.core.resources.IContainer;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.resources.IResource;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IPath;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.PlatformObject;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.ILaunch;

-import org.eclipse.debug.core.ILaunchConfiguration;

-import org.eclipse.debug.core.ILaunchConfigurationType;

-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

-import org.eclipse.debug.core.Launch;

-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;

-import org.eclipse.debug.core.model.IPersistableSourceLocator;

-import org.w3c.dom.Document;

-import org.w3c.dom.Element;

-import org.xml.sax.InputSource;

-import org.xml.sax.SAXException;

-

-/**

- * Launch configuration handle.

- * 

- * @see ILaunchConfiguration

- */

-public class LaunchConfiguration extends PlatformObject implements ILaunchConfiguration {

-	

-	/**

-	 * Location this configuration is stored in. This 

-	 * is the key for a launch configuration handle.

-	 */

-	private IPath fLocation;

-	

-	/**

-	 * Constructs a launch configuration in the given location.

-	 * 

-	 * @param location path to where this launch configuration's

-	 *  underlying file is located

-	 */

-	protected LaunchConfiguration(IPath location) {

-		setLocation(location);

-	}

-	

-	/**

-	 * Constructs a launch configuration from the given

-	 * memento.

-	 * 

-	 * @param memento launch configuration memento

-	 * @exception CoreException if the memento is invalid or

-	 * 	an exception occurrs reading the memento

-	 */

-	protected LaunchConfiguration(String memento) throws CoreException {

-		Exception ex = null;

-		try {

-			Element root = null;

-			DocumentBuilder parser =

-				DocumentBuilderFactory.newInstance().newDocumentBuilder();

-			StringReader reader = new StringReader(memento);

-			InputSource source = new InputSource(reader);

-			root = parser.parse(source).getDocumentElement();

-			

-			String localString = root.getAttribute("local");

-			String path = root.getAttribute("path");

-

-			String message = null;				

-			if (path == null) {

-				message = "Invalid launch configuration memento: missing path attribute.";

-			} else if (localString == null) {

-				message = "Invalid launch configuration memento: missing local attribute.";

-			}

-			if (message != null) {

-				IStatus s = newStatus(message, DebugException.INTERNAL_ERROR, null);

-				throw new CoreException(s);

-			}

-			

-			IPath location = null;

-			boolean local = (Boolean.valueOf(localString)).booleanValue();

-			if (local) {

-				location = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH.append(path);

-			} else {

-				location = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(path);

-			}

-			setLocation(location);

-			return;

-		} catch (ParserConfigurationException e) {

-			ex = e;			

-		} catch (SAXException e) {

-			ex = e;

-		} catch (IOException e) {

-			ex = e;

-		}

-		IStatus s = newStatus("Exception occurred parsing memento.", DebugException.INTERNAL_ERROR, ex);

-		throw new CoreException(s);

-	}

-	

-	/**

-	 * Creates and returns a new error status based on 

-	 * the given mesasge, code, and exception.

-	 * 

-	 * @param message error message

-	 * @param code error code

-	 * @param e exception or <code>null</code>

-	 * @return status

-	 */

-	protected IStatus newStatus(String message, int code, Throwable e) {

-		return new Status(IStatus.ERROR, DebugPlugin.PLUGIN_ID, code, message, e);

-	}

-	

-	/**

-	 * @see ILaunchConfiguration#launch(String, IProgressMonitor)

-	 */

-	public ILaunch launch(String mode, IProgressMonitor monitor) throws CoreException {

-		ILaunch launch = new Launch(this, mode, null);

-		getLaunchManager().addLaunch(launch);

-		getDelegate().launch(this, mode, launch, monitor);

-		if (monitor != null && monitor.isCanceled()) {

-			getLaunchManager().removeLaunch(launch);

-		} else {

-			initializeSourceLocator(launch);

-		}

-		return launch;

-	}

-	

-	/**

-	 * Set the source locator to use with the launch, if specified 

-	 * by this configuration.

-	 * 

-	 * @param launch the launch on which to set the source locator

-	 */

-	protected void initializeSourceLocator(ILaunch launch) throws CoreException {

-		if (launch.getSourceLocator() == null) {

-			String type = getAttribute(ATTR_SOURCE_LOCATOR_ID, (String)null);

-			if (type != null) {

-				IPersistableSourceLocator locator = getLaunchManager().newSourceLocator(type);

-				String memento = getAttribute(ATTR_SOURCE_LOCATOR_MEMENTO, (String)null);

-				if (memento == null) {

-					locator.initializeDefaults(this);

-				} else {

-					locator.initiatlizeFromMemento(memento);

-				}

-				launch.setSourceLocator(locator);

-			}

-		}

-	}

-

-	/**

-	 * @see ILaunchConfiguration#supportsMode(String)

-	 */

-	public boolean supportsMode(String mode) throws CoreException {

-		return getType().supportsMode(mode);

-	}

-

-	/**

-	 * A configuration's name is that of the last segment

-	 * in it's location (subtract the ".launch" extension).

-	 * 

-	 * @see ILaunchConfiguration#getName()

-	 */

-	public String getName() {

-		return getLastLocationSegment();

-	}

-	

-	private String getLastLocationSegment() {

-		String name = getLocation().lastSegment();

-		name = name.substring(0, name.length() - (LAUNCH_CONFIGURATION_FILE_EXTENSION.length() + 1));

-		return name;

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getLocation()

-	 */

-	public IPath getLocation() {

-		return fLocation;

-	}

-

-	/**

-	 * Sets the location of this configuration's underlying

-	 * file.

-	 * 

-	 * @param location the location of this configuration's underlying

-	 *  file

-	 */

-	private void setLocation(IPath location) {

-		fLocation = location;

-	}

-

-	/**

-	 * @see ILaunchConfiguration#exists()

-	 */

-	public boolean exists() {

-		IFile file = getFile();

-		if (file == null) {

-			return getLocation().toFile().exists();

-		} else {

-			return file.exists();

-		}

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getAttribute(String, int)

-	 */

-	public int getAttribute(String attributeName, int defaultValue) throws CoreException {

-		return getInfo().getIntAttribute(attributeName, defaultValue);

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getAttribute(String, String)

-	 */

-	public String getAttribute(String attributeName, String defaultValue) throws CoreException {

-		return getInfo().getStringAttribute(attributeName, defaultValue);

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getAttribute(String, boolean)

-	 */

-	public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException {

-		return getInfo().getBooleanAttribute(attributeName, defaultValue);

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getAttribute(String, List)

-	 */

-	public List getAttribute(String attributeName, List defaultValue) throws CoreException {

-		return getInfo().getListAttribute(attributeName, defaultValue);

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getAttribute(String, Map)

-	 */

-	public Map getAttribute(String attributeName, Map defaultValue) throws CoreException {

-		return getInfo().getMapAttribute(attributeName, defaultValue);

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getType()

-	 */

-	public ILaunchConfigurationType getType() throws CoreException {

-		return getInfo().getType();

-	}

-

-	/**

-	 * @see ILaunchConfiguration#isLocal()

-	 */

-	public boolean isLocal() {

-		return  getFile() == null;

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getWorkingCopy()

-	 */

-	public ILaunchConfigurationWorkingCopy getWorkingCopy() throws CoreException {

-		return new LaunchConfigurationWorkingCopy(this);

-	}

-	

-	/**

-	 * @see ILaunchConfiguration#copy(String name)

-	 */

-	public ILaunchConfigurationWorkingCopy copy(String name) throws CoreException {

-		ILaunchConfigurationWorkingCopy copy = new LaunchConfigurationWorkingCopy(this, name);

-		return copy;

-	}	

-

-	/**

-	 * @see ILaunchConfiguration#isWorkingCopy()

-	 */

-	public boolean isWorkingCopy() {

-		return false;

-	}

-

-	/**

-	 * @see ILaunchConfiguration#delete()

-	 */

-	public void delete() throws CoreException {

-		if (exists()) {

-			if (isLocal()) {

-				if (!(getLocation().toFile().delete())) {

-					throw new DebugException(

-						new Status(Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-						 DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfiguration.Failed_to_delete_launch_configuration._1"), null) //$NON-NLS-1$

-					);

-				}

-				// manually update the launch manager cache since there

-				// will be no resource delta

-				getLaunchManager().launchConfigurationDeleted(this);

-			} else {

-				// delete the resource using IFile API such that

-				// resource deltas are fired.

-				IResource file = getFile();

-				if (file != null) {

-					file.delete(true, null);

-				} else {

-					// Error - the exists test passed, but could not locate file 

-				}

-			}

-		}

-	}

-	

-	/**

-	 * Returns the info object containing the attributes

-	 * of this configuration

-	 * 

-	 * @return info for this handle

-	 * @exception CoreException if unable to retrieve the

-	 *  info object

-	 */

-	protected LaunchConfigurationInfo getInfo() throws CoreException {

-		return getLaunchManager().getInfo(this);

-	}

-	

-	/**

-	 * Returns the launch configuration delegate for this

-	 * launch configuration.

-	 * 

-	 * @return launch configuration delegate

-	 * @exception CoreException if the delegate was unable

-	 *  to be created

-	 */

-	protected ILaunchConfigurationDelegate getDelegate() throws CoreException {

-		return ((LaunchConfigurationType)getType()).getDelegate();

-	}

-	

-	/**

-	 * Returns the launch manager

-	 * 

-	 * @return launch manager

-	 */

-	protected LaunchManager getLaunchManager() {

-		return (LaunchManager)DebugPlugin.getDefault().getLaunchManager();

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getMemento()

-	 */

-	public String getMemento() throws CoreException {

-		IPath relativePath = null;

-		if (isLocal()) {

-			IPath rootPath = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;

-			IPath configPath = getLocation();

-			relativePath = configPath.removeFirstSegments(rootPath.segmentCount());

-		} else {

-			relativePath = getFile().getFullPath();

-		}

-		relativePath = relativePath.setDevice(null);

-		

-		Document doc = new DocumentImpl();

-		Element node = doc.createElement("launchConfiguration");

-		node.setAttribute("local", (new Boolean(isLocal())).toString());

-		node.setAttribute("path", relativePath.toString());

-		

-		// produce a String output

-		StringWriter writer = new StringWriter();

-		OutputFormat format = new OutputFormat();

-		format.setIndenting(true);

-		Serializer serializer =

-			SerializerFactory.getSerializerFactory(Method.XML).makeSerializer(

-				writer,

-				format);

-		

-		try {

-			serializer.asDOMSerializer().serialize(node);

-		} catch (IOException e) {

-			IStatus status = newStatus("Exception occurred creating launch configuration memento.", DebugException.INTERNAL_ERROR,  e);

-			throw new CoreException(status);

-		}

-		return writer.toString();

-	}

-

-	/**

-	 * @see ILaunchConfiguration#getFile()

-	 */	

-	public IFile getFile() {

-		return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(getLocation());

-	}

-

-	/**

-	 * @see ILaunchConfiguration#contentsEqual(ILaunchConfiguration)

-	 */

-	public boolean contentsEqual(ILaunchConfiguration object) {

-		try {

-			if (object instanceof LaunchConfiguration) {

-				LaunchConfiguration otherConfig = (LaunchConfiguration) object;

-				return getName().equals(otherConfig.getName())

-				 	 && getType().equals(otherConfig.getType())

-				 	 && getLocation().equals(otherConfig.getLocation())

-					 && getInfo().equals(otherConfig.getInfo());

-			}

-			return false;

-		} catch (CoreException ce) {

-			return false;

-		}

-	}

-

-	/**

-	 * Returns whether this configuration is equal to the

-	 * given configuration. Two configurations are equal if

-	 * they are stored in the same location (and neither one

-	 * is a working copy).

-	 * 

-	 * @return whether this configuration is equal to the

-	 *  given configuration

-	 * @see Object#equals(Object)

-	 */

-	public boolean equals(Object object) {

-		if (object instanceof ILaunchConfiguration) {

-			if (isWorkingCopy()) {

-				return this == object;

-			} 

-			ILaunchConfiguration config = (ILaunchConfiguration) object;

-			if (!config.isWorkingCopy()) {

-				return config.getLocation().equals(getLocation());

-			}

-		}

-		return false;

-	}

-	

-	/**

-	 * @see Object#hashCode()

-	 */

-	public int hashCode() {

-		return getLocation().hashCode();

-	}

-	

-	/**

-	 * Returns the container this launch configuration is 

-	 * stored in, or <code>null</code> if this launch configuration

-	 * is stored locally.

-	 * 

-	 * @return the container this launch configuration is 

-	 * stored in, or <code>null</code> if this launch configuration

-	 * is stored locally

-	 */

-	protected IContainer getContainer() {

-		IFile file = getFile();

-		if (file != null) {

-			return file.getParent();

-		}

-		return null;

-	}

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java
deleted file mode 100644
index 41d5bc4..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java
+++ /dev/null
@@ -1,501 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.io.IOException;

-import java.io.StringWriter;

-import java.text.MessageFormat;

-import java.util.ArrayList;

-import java.util.HashMap;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Map;

-

-import org.apache.xerces.dom.DocumentImpl;

-import org.apache.xml.serialize.Method;

-import org.apache.xml.serialize.OutputFormat;

-import org.apache.xml.serialize.Serializer;

-import org.apache.xml.serialize.SerializerFactory;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.ILaunchConfigurationType;

-import org.w3c.dom.Document;

-import org.w3c.dom.Element;

-import org.w3c.dom.Node;

-import org.w3c.dom.NodeList;

- 

-/**

- * The information associated with a launch configuration

- * handle.

- */

-public class LaunchConfigurationInfo {

-

-	/**

-	 * This configurations attribute table.

-	 * Keys are <code>String</code>s and values

-	 * are one of <code>String</code>, <code>Integer</code>,

-	 * or <code>Boolean</code>.

-	 */

-	private HashMap fAttributes;

-	

-	/**

-	 * This launch configuration's type

-	 */

-	private ILaunchConfigurationType fType;

-	

-	/**

-	 * Constructs a new empty info

-	 */

-	protected LaunchConfigurationInfo() {

-		setAttributeTable(new HashMap(10));

-	}

-	

-	/**

-	 * Returns this configuration's attribute table.

-	 * 

-	 * @return attribute table

-	 */

-	private HashMap getAttributeTable() {

-		return fAttributes;

-	}

-

-	/**

-	 * Sets this configuration's attribute table.

-	 * 

-	 * @param table attribute table

-	 */	

-	private void setAttributeTable(HashMap table) {

-		fAttributes = table;

-	}

-	

-	/**

-	 * Returns the <code>String</code> attribute with the

-	 * given key or the given default value if undefined.

-	 * 

-	 * @return attribute specified by given key or the defaultValue

-	 *  if undefined

-	 * @exception if the attribute with the given key exists

-	 *  but is not a <code>String</code>

-	 */

-	protected String getStringAttribute(String key, String defaultValue) throws CoreException {

-		Object attr = getAttributeTable().get(key);

-		if (attr != null) {

-			if (attr instanceof String) {

-				return (String)attr;

-			} else {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.lang.String._1"), new String[] {key}), null //$NON-NLS-1$

-					)

-				);

-			}

-		}

-		return defaultValue;

-	}

-	

-	/**

-	 * Returns the <code>int</code> attribute with the

-	 * given key or the given default value if undefined.

-	 * 

-	 * @return attribute specified by given key or the defaultValue

-	 *  if undefined

-	 * @exception if the attribute with the given key exists

-	 *  but is not an <code>int</code>

-	 */

-	protected int getIntAttribute(String key, int defaultValue) throws CoreException {

-		Object attr = getAttributeTable().get(key);

-		if (attr != null) {

-			if (attr instanceof Integer) {

-				return ((Integer)attr).intValue();

-			} else {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_int._2"), new String[] {key}), null //$NON-NLS-1$

-					)

-				);

-			}

-		}

-		return defaultValue;

-	}

-	

-	/**

-	 * Returns the <code>boolean</code> attribute with the

-	 * given key or the given default value if undefined.

-	 * 

-	 * @return attribute specified by given key or the defaultValue

-	 *  if undefined

-	 * @exception if the attribute with the given key exists

-	 *  but is not a <code>boolean</code>

-	 */

-	protected boolean getBooleanAttribute(String key, boolean defaultValue) throws CoreException {

-		Object attr = getAttributeTable().get(key);

-		if (attr != null) {

-			if (attr instanceof Boolean) {

-				return ((Boolean)attr).booleanValue();

-			} else {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_boolean._3"), new String[] {key}), null //$NON-NLS-1$

-					)

-				);

-			}

-		}

-		return defaultValue;

-	}

-	

-	/**

-	 * Returns the <code>java.util.List</code> attribute with the

-	 * given key or the given default value if undefined.

-	 * 

-	 * @return attribute specified by given key or the defaultValue

-	 *  if undefined

-	 * @exception if the attribute with the given key exists

-	 *  but is not a <code>java.util.List</code>

-	 */

-	protected List getListAttribute(String key, List defaultValue) throws CoreException {

-		Object attr = getAttributeTable().get(key);

-		if (attr != null) {

-			if (attr instanceof List) {

-				return (List)attr;

-			} else {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.List._1"), new String[] {key}), null //$NON-NLS-1$

-					)

-				);

-			}

-		}

-		return defaultValue;

-	}

-	

-	/**

-	 * Returns the <code>java.util.Map</code> attribute with the

-	 * given key or the given default value if undefined.

-	 * 

-	 * @return attribute specified by given key or the defaultValue

-	 *  if undefined

-	 * @exception if the attribute with the given key exists

-	 *  but is not a <code>java.util.Map</code>

-	 */

-	protected Map getMapAttribute(String key, Map defaultValue) throws CoreException {

-		Object attr = getAttributeTable().get(key);

-		if (attr != null) {

-			if (attr instanceof Map) {

-				return (Map)attr;

-			} else {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.Map._1"), new String[] {key}), null //$NON-NLS-1$

-					)

-				);

-			}

-		}

-		return defaultValue;

-	}

-	

-	/** 

-	 * Sets this configuration's type.

-	 * 

-	 * @param type launch configuration type

-	 */

-	protected void setType(ILaunchConfigurationType type) {

-		fType = type;

-	}

-	

-	/** 

-	 * Returns this configuration's type.

-	 * 

-	 * @return launch configuration type

-	 */

-	protected ILaunchConfigurationType getType() {

-		return fType;

-	}	

-	

-	

-	/**

-	 * Returns a copy of this info object

-	 * 

-	 * @return copy of this info

-	 */

-	protected LaunchConfigurationInfo getCopy() {

-		LaunchConfigurationInfo copy = new LaunchConfigurationInfo();

-		copy.setType(getType());

-		copy.setAttributeTable((HashMap)getAttributeTable().clone());

-		return copy;

-	}

-	

-	/**

-	 * Sets the given attribute to the given value. Only

-	 * working copy's should use this API.

-	 * 

-	 * @param key attribute key

-	 * @param value attribuet value

-	 */

-	protected void setAttribute(String key, Object value) {

-		if (value == null) {

-			getAttributeTable().remove(key);

-		} else {

-			getAttributeTable().put(key, value);

-		}

-	}

-	

-	/**

-	 * Returns the content of this info as XML

-	 * 

-	 * @return the content of this info as XML

-	 * @exception IOException if an exception occurs creating the XML

-	 */

-	protected String getAsXML() throws IOException {

-

-		Document doc = new DocumentImpl();

-		Element configRootElement = doc.createElement("launchConfiguration"); //$NON-NLS-1$

-		doc.appendChild(configRootElement);

-		

-		configRootElement.setAttribute("type", getType().getIdentifier()); //$NON-NLS-1$

-		

-		Iterator keys = getAttributeTable().keySet().iterator();

-		while (keys.hasNext()) {

-			String key = (String)keys.next();

-			Object value = getAttributeTable().get(key);

-			if (value == null) {

-				continue;

-			}

-			Element element = null;

-			String valueString = null;

-			if (value instanceof String) {

-				valueString = (String)value;

-				element = createKeyValueElement(doc, "stringAttribute", key, valueString); //$NON-NLS-1$

-			} else if (value instanceof Integer) {

-				valueString = ((Integer)value).toString();

-				element = createKeyValueElement(doc, "intAttribute", key, valueString); //$NON-NLS-1$

-			} else if (value instanceof Boolean) {

-				valueString = ((Boolean)value).toString();

-				element = createKeyValueElement(doc, "booleanAttribute", key, valueString); //$NON-NLS-1$

-			} else if (value instanceof List) {				

-				element = createListElement(doc, "listAttribute", key, (List)value); //$NON-NLS-1$

-			} else if (value instanceof Map) {				

-				element = createMapElement(doc, "mapAttribute", key, (Map)value); //$NON-NLS-1$

-			}			

-			configRootElement.appendChild(element);

-		}

-

-		// produce a String output

-		StringWriter writer = new StringWriter();

-		OutputFormat format = new OutputFormat();

-		format.setIndenting(true);

-		Serializer serializer =

-			SerializerFactory.getSerializerFactory(Method.XML).makeSerializer(

-				writer,

-				format);

-		serializer.asDOMSerializer().serialize(doc);

-		return writer.toString();

-			

-	}

-	

-	/**

-	 * Helper method that creates a 'key value' element of the specified type with the 

-	 * specified attribute values.

-	 */

-	protected Element createKeyValueElement(Document doc, String elementType, String key, String value) {

-		Element element = doc.createElement(elementType);

-		element.setAttribute("key", key);

-		element.setAttribute("value", value);

-		return element;

-	}

-	

-	protected Element createListElement(Document doc, String elementType, String listKey, List list) {

-		Element listElement = doc.createElement(elementType);

-		listElement.setAttribute("key", listKey);

-		Iterator iterator = list.iterator();

-		while (iterator.hasNext()) {

-			String value = (String) iterator.next();

-			Element element = doc.createElement("listEntry");

-			element.setAttribute("value", value);

-			listElement.appendChild(element);

-		}		

-		return listElement;

-	}

-	

-	protected Element createMapElement(Document doc, String elementType, String mapKey, Map map) {

-		Element mapElement = doc.createElement(elementType);

-		mapElement.setAttribute("key", mapKey);

-		Iterator iterator = map.keySet().iterator();

-		while (iterator.hasNext()) {

-			String key = (String) iterator.next();

-			String value = (String) map.get(key);

-			Element element = doc.createElement("mapEntry");

-			element.setAttribute("key", key);

-			element.setAttribute("value", value);

-			mapElement.appendChild(element);

-		}		

-		return mapElement;		

-	}

-	

-	protected void initializeFromXML(Element root) throws CoreException {

-		if (!root.getNodeName().equalsIgnoreCase("launchConfiguration")) { //$NON-NLS-1$

-			throw getInvalidFormatDebugException();

-		}

-		

-		// read type

-		String id = root.getAttribute("type"); //$NON-NLS-1$

-		if (id == null) {

-			throw getInvalidFormatDebugException();

-		} else {

-			ILaunchConfigurationType type = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(id);

-			if (type == null) {

-				throw getInvalidFormatDebugException();

-			}

-			setType(type);

-		}

-		

-		NodeList list = root.getChildNodes();

-		int length = list.getLength();

-		for (int i = 0; i < length; ++i) {

-			Node node = list.item(i);

-			short type = node.getNodeType();

-			if (type == Node.ELEMENT_NODE) {

-				Element element = (Element) node;

-				String nodeName = element.getNodeName();

-				

-				if (nodeName.equalsIgnoreCase("stringAttribute")) { //$NON-NLS-1$

-					setStringAttribute(element);

-				} else if (nodeName.equalsIgnoreCase("intAttribute")) { //$NON-NLS-1$

-					setIntegerAttribute(element);

-				} else if (nodeName.equalsIgnoreCase("booleanAttribute"))  { //$NON-NLS-1$

-					setBooleanAttribute(element);

-				} else if (nodeName.equalsIgnoreCase("listAttribute")) {   //$NON-NLS-1$

-					setListAttribute(element);					

-				} else if (nodeName.equalsIgnoreCase("mapAttribute")) {    //$NON-NLS-1$

-					setMapAttribute(element);										

-				}

-			}

-		}

-	}	

-	

-	protected void setStringAttribute(Element element) throws CoreException {

-		String key = getKeyAttribute(element);

-		String value = getValueAttribute(element);

-		setAttribute(key, value);

-	}

-	

-	protected void setIntegerAttribute(Element element) throws CoreException {

-		String key = getKeyAttribute(element);

-		String value = getValueAttribute(element);

-		setAttribute(key, new Integer(value));

-	}

-	

-	protected void setBooleanAttribute(Element element) throws CoreException {

-		String key = getKeyAttribute(element);

-		String value = getValueAttribute(element);

-		setAttribute(key, new Boolean(value));

-	}

-	

-	protected void setListAttribute(Element element) throws CoreException {

-		String listKey = element.getAttribute("key");  //$NON-NLS-1$

-		NodeList nodeList = element.getChildNodes();

-		int entryCount = nodeList.getLength();

-		List list = new ArrayList(entryCount);

-		for (int i = 0; i < entryCount; i++) {

-			Node node = nodeList.item(i);

-			short type = node.getNodeType();

-			if (type == Node.ELEMENT_NODE) {

-				Element subElement = (Element) node;

-				String nodeName = subElement.getNodeName();				

-				if (!nodeName.equalsIgnoreCase("listEntry")) { //$NON-NLS-1$

-					throw getInvalidFormatDebugException();

-				}

-				String value = getValueAttribute(subElement);

-				list.add(value);

-			}

-		}

-		setAttribute(listKey, list);

-	}

-		

-	protected void setMapAttribute(Element element) throws CoreException {

-		String mapKey = element.getAttribute("key");  //$NON-NLS-1$

-		NodeList nodeList = element.getChildNodes();

-		int entryCount = nodeList.getLength();

-		Map map = new HashMap(entryCount);

-		for (int i = 0; i < entryCount; i++) {

-			Node node = nodeList.item(i);

-			short type = node.getNodeType();

-			if (type == Node.ELEMENT_NODE) {

-				Element subElement = (Element) node;

-				String nodeName = subElement.getNodeName();				

-				if (!nodeName.equalsIgnoreCase("mapEntry")) { //$NON-NLS-1$

-					throw getInvalidFormatDebugException();

-				}

-				String key = getKeyAttribute(subElement);

-				String value = getValueAttribute(subElement);

-				map.put(key, value);

-			}

-		}

-		setAttribute(mapKey, map);

-	}

-		

-	protected String getKeyAttribute(Element element) throws CoreException {

-		String key = element.getAttribute("key");   //$NON-NLS-1$

-		if (key == null) {

-			throw getInvalidFormatDebugException();

-		}

-		return key;

-	}

-	

-	protected String getValueAttribute(Element element) throws CoreException {

-		String value = element.getAttribute("value");   //$NON-NLS-1$

-		if (value == null) {

-			throw getInvalidFormatDebugException();

-		}

-		return value;

-	}

-	

-	protected DebugException getInvalidFormatDebugException() {

-		return 

-			new DebugException(

-				new Status(

-				 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfigurationInfo.Invalid_launch_configuration_XML._10"), null //$NON-NLS-1$

-				)

-			);

-	}

-	

-	/**

-	 * Two <code>LaunchConfigurationInfo</code> objects are equal if and only if they have the

-	 * same type and they have the same set of attributes with the same values.

-	 * 

-	 * @see Object#equals(Object)

-	 */

-	public boolean equals(Object obj) {

-		

-		// Make sure it's a LaunchConfigurationInfo object

-		if (!(obj instanceof LaunchConfigurationInfo)) {

-			return false;

-		}

-		

-		// Make sure the types are the same

-		LaunchConfigurationInfo other = (LaunchConfigurationInfo) obj;

-		if (!fType.getIdentifier().equals(other.getType().getIdentifier())) {

-			return false;

-		}

-		

-		// Make sure the attributes are the same

-		if (!fAttributes.equals(other.getAttributeTable())) {

-			return false;

-		}

-		

-		// They're equal

-		return true;

-	}

-	

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java
deleted file mode 100644
index ecd2c2b..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.util.HashSet;

-import java.util.Set;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.resources.IContainer;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IConfigurationElement;

-import org.eclipse.debug.core.ILaunchConfigurationType;

-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;

-

-/**

- * A launch configuration type wrappers a configuration

- * element for a <code>launchConfigurationType</code>

- * extension.

- */

-public class LaunchConfigurationType implements ILaunchConfigurationType {

-	

-	/**

-	 * The configuration element of the extension.

-	 */

-	private IConfigurationElement fElement;

-	

-	/**

-	 * Modes this type supports.

-	 */

-	private Set fModes;

-	

-	/**

-	 * The delegate for launch configurations of this type.

-	 * Delegates are instantiated lazily as required.

-	 */

-	private ILaunchConfigurationDelegate fDelegate;

-	

-	/**

-	 * Constructs a new launch configuration type on the

-	 * given configuration element.

-	 * 

-	 * @param element configuration element

-	 */

-	protected LaunchConfigurationType(IConfigurationElement element) {

-		setConfigurationElement(element);

-	}

-	

-	/**

-	 * Sets this type's configuration element.

-	 * 

-	 * @param element this type's configuration element

-	 */

-	private void setConfigurationElement(IConfigurationElement element) {

-		fElement = element;

-	}

-	

-	/**

-	 * Returns this type's configuration element.

-	 * 

-	 * @return this type's configuration element

-	 */

-	protected IConfigurationElement getConfigurationElement() {

-		return fElement;

-	}	

-

-

-	/**

-	 * @see ILaunchConfigurationType#supportsMode(String)

-	 */

-	public boolean supportsMode(String mode) {

-		return getModes().contains(mode);

-	}

-

-	/**

-	 * Returns the set of modes specified in the configuration data.

-	 * 

-	 * @return the set of modes specified in the configuration data

-	 */

-	protected Set getModes() {

-		if (fModes == null) {

-			String modes= getConfigurationElement().getAttribute("modes"); //$NON-NLS-1$

-			if (modes == null) {

-				return new HashSet(0);

-			}

-			StringTokenizer tokenizer= new StringTokenizer(modes, ","); //$NON-NLS-1$

-			fModes = new HashSet(tokenizer.countTokens());

-			while (tokenizer.hasMoreTokens()) {

-				fModes.add(tokenizer.nextToken().trim());

-			}

-		}

-		return fModes;

-	}

-	

-	/**

-	 * @see ILaunchConfigurationType#getName()

-	 */

-	public String getName() {

-		return getConfigurationElement().getAttribute("name"); //$NON-NLS-1$

-	}

-

-	/**

-	 * @see ILaunchConfigurationType#getIdentifier()

-	 */

-	public String getIdentifier() {

-		return getConfigurationElement().getAttribute("id"); //$NON-NLS-1$

-	}

-

-	/*

-	 * @see ILaunchConfigurationType#newInstance(IContainer, String)

-	 */

-	public ILaunchConfigurationWorkingCopy newInstance(

-		IContainer container,

-		String name)

-		throws CoreException {

-			return new LaunchConfigurationWorkingCopy(container, name, this);

-	}

-	

-	/**

-	 * Returns the launch configuration delegate for launch

-	 * configurations of this type. The first time this method

-	 * is called, the delegate is instantiated.

-	 * 

-	 * @return launch configuration delegate

-	 * @exception CoreException if unable to instantiate the

-	 *  delegate

-	 */

-	public ILaunchConfigurationDelegate getDelegate() throws CoreException {

-		if (fDelegate == null) {

-			fDelegate = (ILaunchConfigurationDelegate)getConfigurationElement().createExecutableExtension("delegate"); //$NON-NLS-1$

-		}

-		return fDelegate;

-	}

-

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java
deleted file mode 100644
index 2961954..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java
+++ /dev/null
@@ -1,490 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.io.ByteArrayInputStream;

-import java.io.File;

-import java.io.FileOutputStream;

-import java.io.IOException;

-import java.text.MessageFormat;

-import java.util.List;

-import java.util.Map;

-

-import org.eclipse.core.resources.IContainer;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.resources.IFolder;

-import org.eclipse.core.resources.IWorkspaceRunnable;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IPath;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.ILaunchConfiguration;

-import org.eclipse.debug.core.ILaunchConfigurationType;

-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

-

-/**

- * A working copy launch configuration

- */

-public class LaunchConfigurationWorkingCopy extends LaunchConfiguration implements ILaunchConfigurationWorkingCopy {

-	

-	/**

-	 * Handle of original launch configuration this

-	 * working copy is based on

-	 */

-	private LaunchConfiguration fOriginal;

-	

-	/**

-	 * Working copy of attributes.

-	 */

-	private LaunchConfigurationInfo fInfo;

-	

-	/**

-	 * Whether this working copy has been modified since

-	 * it was created

-	 */

-	private boolean fDirty = false;

-	

-	/**

-	 * The name for this configuration.

-	 */

-	private String fName;

-	

-	/**

-	 * Indicates whether this working copy has been explicitly renamed.

-	 */

-	private boolean fRenamed = false;

-	

-	/**

-	 * Suppress change notification until created

-	 */

-	private boolean fSuppressChange = true;

-	

-	/**

-	 * The container this working copy will be

-	 * stored in when saved.

-	 */

-	private IContainer fContainer;

-

-	/**

-	 * Constructs a working copy of the specified launch 

-	 * configuration.

-	 * 

-	 * @param original launch configuration to make

-	 *  a working copy of

-	 * @exception CoreException if unable to initialize this

-	 *  working copy's attributes based on the original configuration

-	 */

-	protected LaunchConfigurationWorkingCopy(LaunchConfiguration original) throws CoreException {

-		super(original.getLocation());

-		setName(original.getName());

-		copyFrom(original);

-		setOriginal(original);

-		fSuppressChange = false;

-	}

-	

-	/**

-	 * Constructs a copy of the specified launch 

-	 * configuration, with the given (new) name.

-	 * 

-	 * @param original launch configuration to make

-	 *  a working copy of

-	 * @param name the new name for the copy of the launch

-	 *  configuration

-	 * @exception CoreException if unable to initialize this

-	 *  working copy's attributes based on the original configuration

-	 */

-	protected LaunchConfigurationWorkingCopy(LaunchConfiguration original, String name) throws CoreException {

-		super(original.getLocation());

-		copyFrom(original);

-		setName(name);

-		fSuppressChange = false;

-	}

-	

-	/**

-	 * Constructs a new working copy to be created in the specified

-	 * location.

-	 * 

-	 * @param container the container that the configuration will be created in

-	 *  or <code>null</code> if to be local

-	 * @param name the name of the new launch configuration

-	 * @param type the type of this working copy

-	 */

-	protected LaunchConfigurationWorkingCopy(IContainer container, String name, ILaunchConfigurationType type) {

-		super((IPath)null);

-		setName(name);

-		setInfo(new LaunchConfigurationInfo());

-		getInfo().setType(type);

-		setContainer(container);

-		fSuppressChange = false;

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#isDirty()

-	 */

-	public boolean isDirty() {

-		return fDirty;

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#doSave()

-	 */

-	public ILaunchConfiguration doSave() throws CoreException {

-		if (isDirty()) {

-			IWorkspaceRunnable wr = new IWorkspaceRunnable() {

-				public void run(IProgressMonitor pm) throws CoreException {

-					// write the new file

-					LaunchConfigurationWorkingCopy.this.writeNewFile();

-					// delete the old file if this is not a new configuration

-					// or the file was renamed/moved

-					if (!LaunchConfigurationWorkingCopy.this.isNew()) {

-						if (LaunchConfigurationWorkingCopy.this.isMoved()) {

-							LaunchConfigurationWorkingCopy.this.getOriginal().delete();

-						}

-					}

-					resetDirty();

-				}

-			};

-			

-			ResourcesPlugin.getWorkspace().run(wr, null);

-		}

-		

-		return new LaunchConfiguration(getLocation());		

-	}

-	

-	/**

-	 * Writes the new configuration information to a file.

-	 * 

-	 * @exception CoreException if writing the file fails

-	 */

-	protected void writeNewFile() throws CoreException {

-		String xml = null;

-		try {

-			xml = getInfo().getAsXML();

-		} catch (IOException e) {

-			throw new DebugException(

-				new Status(

-				 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1"), new String[]{e.toString()}), null //$NON-NLS-1$

-				)

-			);					

-		}

-		

-		if (isLocal()) {

-			// use java.io to update configuration file

-			try {

-				boolean added = false;

-				File file = getLocation().toFile();

-				File dir = getLocation().removeLastSegments(1).toFile();

-				dir.mkdirs();

-				if (!file.exists()) {

-					added = true;

-					file.createNewFile();

-				}

-				FileOutputStream stream = new FileOutputStream(file);

-				stream.write(xml.getBytes("UTF8"));

-				stream.close();

-				if (added) {

-					getLaunchManager().launchConfigurationAdded(new LaunchConfiguration(getLocation()));

-				} else {

-					getLaunchManager().launchConfigurationChanged(new LaunchConfiguration(getLocation()));

-				}

-			} catch (IOException e) {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1"), new String[]{e.toString()}), null //$NON-NLS-1$

-					)

-				);				

-			}

-		} else {

-			// use resource API to update configuration file

-			IFile file = getFile();

-			IContainer dir = file.getParent();

-			if (!dir.exists()) {

-				throw new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, "Specified container for launch configuration does not exist.", null

-					)

-				);				

-			}

-			ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes());

-			if (!file.exists()) {

-				file.create(stream, false, null);

-				//getLaunchManager().launchConfigurationAdded(new LaunchConfiguration(getLocation()));

-			} else {

-				file.setContents(stream, false, false, null);

-				//getLaunchManager().launchConfigurationChanged(new LaunchConfiguration(getLocation()));

-			}

-		}		

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#setAttribute(String, int)

-	 */

-	public void setAttribute(String attributeName, int value) {

-		getInfo().setAttribute(attributeName, new Integer(value));

-		setDirty();

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#setAttribute(String, String)

-	 */

-	public void setAttribute(String attributeName, String value) {

-		getInfo().setAttribute(attributeName, value);

-		setDirty();

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#setAttribute(String, boolean)

-	 */

-	public void setAttribute(String attributeName, boolean value) {

-		getInfo().setAttribute(attributeName, new Boolean(value));

-		setDirty();	

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#setAttribute(String, List)

-	 */

-	public void setAttribute(String attributeName, List value) {

-		getInfo().setAttribute(attributeName, value);

-		setDirty();

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#setAttribute(String, Map)

-	 */

-	public void setAttribute(String attributeName, Map value) {

-		getInfo().setAttribute(attributeName, value);

-		setDirty();

-	}

-

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#getOriginal()

-	 */

-	public ILaunchConfiguration getOriginal() {

-		return fOriginal;

-	}

-	

-	/**

-	 * Sets the launch configuration this working copy

-	 * is based on. Initializes the attributes of this

-	 * working copy to the current values of the given

-	 * configuration.

-	 * 

-	 * @param originl the launch configuration this working

-	 *  copy is based on.

-	 * @exception CoreException if unable to initialize this

-	 *  working copy based on the original's current attribute

-	 *  set

-	 */

-	private void copyFrom(LaunchConfiguration original) throws CoreException {

-		LaunchConfigurationInfo info = original.getInfo();

-		setInfo(info.getCopy());

-		setContainer(original.getContainer());

-		resetDirty();

-	}

-	

-	/**

-	 * Sets the launch configuration this working copy

-	 * is based on.

-	 * 

-	 * @param originl the launch configuration this working

-	 *  copy is based on.

-	 */

-	private void setOriginal(LaunchConfiguration original) {

-		fOriginal = original;

-	}	

-	

-	/**

-	 * Sets the working copy info object for this working copy.

-	 * 

-	 * @param info a copy of attributes from this working copy's

-	 * 	original launch configuration

-	 */

-	protected void setInfo(LaunchConfigurationInfo info) {

-		fInfo = info;

-	}

-

-	/**

-	 * @see ILaunchConfiguration#isWorkingCopy()

-	 */

-	public boolean isWorkingCopy() {

-		return true;

-	}

-	

-	/**

-	 * A working copy keeps a local info object that is not

-	 * cached with the launch manager.

-	 * 

-	 * @see LaunchConfiguration#getInfo()

-	 */

-	protected LaunchConfigurationInfo getInfo() {

-		return fInfo;

-	}

-	

-	/**

-	 * Sets this working copy's state to dirty.

-	 * Notifies listeners that this working copy has

-	 * changed.

-	 */

-	private void setDirty() {

-		fDirty = true;

-		if (!suppressChangeNotification()) {

-			getLaunchManager().notifyChanged(this);

-		}	

-	}

-	

-	/**

-	 * Sets this working copy's state to not dirty.

-	 */

-	private void resetDirty() {

-		fDirty = false;

-	}	

-		

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#rename(String)

-	 */

-	public void rename(String name) {

-		if (!getName().equals(name)) {

-			setName(name);

-			fRenamed = isNew() || !(getOriginal().getName().equals(name));

-		}

-	}

-

-	/**

-	 * Sets the new name for this configuration.

-	 * 

-	 * @param name the new name for this configuration

-	 */

-	private void setName(String name) {

-		fName = name;

-		setDirty();

-	}

-	

-	/**

-	 * @see ILaunchConfiguration#getName()

-	 */

-	public String getName() {

-		return fName;

-	}

-	

-	/**

-	 * @see ILaunchConfiguration#isLocal()

-	 */

-	public boolean isLocal() {

-		return getContainer() == null;

-	}	

-	

-	/**

-	 * Returns the location this launch configuration will reside at

-	 * when saved.

-	 * 

-	 * @see ILaunchConfiguration#getLocation()

-	 */

-	public IPath getLocation() {

-		if (isMoved()) {

-			IPath path = null;

-			if (isLocal()) {

-				path = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;

-			} else {

-				path = getContainer().getLocation();

-			}

-			path = path.append(getName() + "." + LAUNCH_CONFIGURATION_FILE_EXTENSION); //$NON-NLS-1$

-			return path;

-		} else {

-			return getOriginal().getLocation();

-		}

-	}

-	

-	/**

-	 * Returns whether this working copy is new, or is a

-	 * working copy of another launch configuration.

-	 * 

-	 * @return whether this working copy is new, or is a

-	 *  working copy of another launch configuration

-	 */

-	protected boolean isNew() {

-		return getOriginal() == null;

-	}

-	

-	/**

-	 * Returns whether this working copy is new or if its

-	 * location has changed from that of its original.

-	 * 

-	 * @return whether this working copy is new or if its

-	 * location has changed from that of its original

-	 */

-	protected boolean isMoved() {

-		if (isNew() || fRenamed) {

-			return true;

-		}

-		IContainer newContainer = getContainer();

-		IContainer originalContainer = ((LaunchConfiguration)getOriginal()).getContainer();

-		if (newContainer == originalContainer) {

-			return false;

-		}

-		if (newContainer == null) {

-			return !originalContainer.equals(newContainer);

-		} else {

-			return !newContainer.equals(originalContainer);

-		}

-	}		

-	

-	/**

-	 * A working copy cannot generate a memento.

-	 * 

-	 * @see ILaunchConfiguration#getMemento()

-	 */

-	public String getMemento() {

-		return null;

-	}	

-	

-	/**

-	 * Returns whether change notification should be

-	 * suppressed

-	 */

-	protected boolean suppressChangeNotification() {

-		return fSuppressChange;

-	}

-	

-	/**

-	 * @see ILaunchConfigurationWorkingCopy#setContainer(IContainer)

-	 */

-	public void setContainer(IContainer container) {

-		if (container == fContainer) {

-			return;

-		}

-		if (container != null) {

-			if (container.equals(fContainer)) {

-				return;

-			}

-		} else {

-			if (fContainer.equals(container)) {

-				return;

-			}

-		}

-		fContainer = container;

-		setDirty();

-	}

-	

-	/**

-	 * Returns the container this working copy will be

-	 * stored in when saved, or <code>null</code> if

-	 * this working copy is local.

-	 * 

-	 * @return the container this working copy will be

-	 *  stored in when saved, or <code>null</code> if

-	 *  this working copy is local

-	 */

-	protected IContainer getContainer() {

-		return fContainer;

-	}	

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java
deleted file mode 100644
index beb8238..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java
+++ /dev/null
@@ -1,1372 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

-import java.io.FileInputStream;

-import java.io.FileNotFoundException;

-import java.io.FileOutputStream;

-import java.io.FilenameFilter;

-import java.io.IOException;

-import java.io.InputStream;

-import java.io.StringWriter;

-import java.text.MessageFormat;

-import java.util.ArrayList;

-import java.util.Arrays;

-import java.util.HashMap;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Map;

-import java.util.Vector;

-

-import javax.xml.parsers.DocumentBuilder;

-import javax.xml.parsers.DocumentBuilderFactory;

-import javax.xml.parsers.ParserConfigurationException;

-import org.apache.xerces.dom.DocumentImpl;

-import org.apache.xml.serialize.Method;

-import org.apache.xml.serialize.OutputFormat;

-import org.apache.xml.serialize.Serializer;

-import org.apache.xml.serialize.SerializerFactory;

-import org.eclipse.core.resources.IContainer;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IResource;

-import org.eclipse.core.resources.IResourceChangeEvent;

-import org.eclipse.core.resources.IResourceChangeListener;

-import org.eclipse.core.resources.IResourceDelta;

-import org.eclipse.core.resources.IResourceDeltaVisitor;

-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.IPath;

-import org.eclipse.core.runtime.IPluginDescriptor;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Path;

-import org.eclipse.core.runtime.QualifiedName;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.ILaunch;

-import org.eclipse.debug.core.ILaunchConfiguration;

-import org.eclipse.debug.core.ILaunchConfigurationListener;

-import org.eclipse.debug.core.ILaunchConfigurationType;

-import org.eclipse.debug.core.ILaunchListener;

-import org.eclipse.debug.core.ILaunchManager;

-import org.eclipse.debug.core.ILauncher;

-import org.eclipse.debug.core.model.IDebugTarget;

-import org.eclipse.debug.core.model.IPersistableSourceLocator;

-import org.eclipse.debug.core.model.IProcess;

-import org.w3c.dom.Document;

-import org.w3c.dom.Element;

-import org.w3c.dom.Node;

-import org.w3c.dom.NodeList;

-import org.xml.sax.InputSource;

-import org.xml.sax.SAXException;

-

-/**

- * Manages launch configurations, launch configuration types, and registered launches.

- *

- * @see ILaunchManager

- */

-public class LaunchManager implements ILaunchManager, IResourceChangeListener {

-	

-	/**

-	 * Collection of defined launch configuration type

-	 * extensions.

-	 */

-	private List fLaunchConfigurationTypes = new ArrayList(5);

-	

-	/**

-	 * Table of default launch configuration types keyed by file extension.

-	 */

-	private HashMap fDefaultLaunchConfigurationTypes = new HashMap(5);

-	

-	/**

-	 * Table of lists of launch configuration types keyed by file extension.

-	 */

-	private HashMap fLaunchConfigurationTypesByFileExtension = new HashMap(5);

-	

-	/**

-	 * Launch configuration cache. Keys are <code>LaunchConfiguration</code>,

-	 * values are <code>LaunchConfigurationInfo</code>.

-	 */

-	private HashMap fLaunchConfigurations = new HashMap(10);

-	

-	/**

-	 * A cache of launch configuration names currently in the workspace.

-	 */

-	private String[] fSortedConfigNames = null;

-	

-	/**

-	 * Collection of all launch configurations in the workspace.

-	 * <code>List</code> of <code>ILaunchConfiguration</code>.

-	 */

-	private List fLaunchConfigurationIndex = null;

-	

-	/**

-	 * Constant for use as local name part of <code>QualifiedName</code>

-	 * for persisting the default launcher.

-	 */

-	private static final String DEFAULT_LAUNCHER= "launcher"; //$NON-NLS-1$

-	

-	/**

-	 * Constant for use as local name part of <code>QualifiedName</code>

-	 * for persisting the default launch configuration type.

-	 */

-	private static final String DEFAULT_CONFIG_TYPE = "defaultLaunchConfigurationType"; //$NON-NLS-1$

-	

-	/**

-	 * Constant for use as local name part of <code>QualifiedName</code>

-	 * for persisting the default launch configuration.

-	 */

-	private static final String DEFAULT_LAUNCH_CONFIGURATION= "default_launch_configuration"; //$NON-NLS-1$

-	

-	/**

-	 * Constant used for reading and writing the default config type to metadata.

-	 */ 

-	private static final QualifiedName fgQualNameDefaultConfigType = new QualifiedName(DebugPlugin.PLUGIN_ID, DEFAULT_CONFIG_TYPE);

-	

-	/**

-	 * Types of notifications

-	 */

-	public static final int ADDED = 0;

-	public static final int REMOVED= 1;

-	public static final int CHANGED= 2;

-

-	/**

-	 * Collection of launches

-	 */

-	private Vector fLaunches= new Vector(10);

-

-	/**

-	 * Collection of listeners

-	 */

-	private ListenerList fListeners= new ListenerList(5);

-	

-	/**

-	 * Visitor used to process resource deltas,

-	 * to update launch configuration index.

-	 */

-	private IResourceDeltaVisitor fgVisitor;

-	

-	/**

-	 * Launch configuration listeners

-	 */

-	private ListenerList fLaunchConfigurationListeners = new ListenerList(5);

-	

-	/**

-	 * Table of source locator extensions. Keys

-	 * are identifiers, and values are associated

-	 * configuration elements.

-	 */

-	private Map fSourceLocators = new HashMap(10);

-	

-	/**

-	 * Path to the local directory where local launch configurations

-	 * are stored with the workspace.

-	 */

-	protected static final IPath LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH =

-		DebugPlugin.getDefault().getStateLocation().append(".launches"); //$NON-NLS-1$

-		

-	/**

-	 * @see ILaunchManager#addLaunchListener(ILaunchListener)

-	 */

-	public void addLaunchListener(ILaunchListener listener) {

-		fListeners.add(listener);

-	}

-

-	/**

-	 * Returns a collection of all launch configuration handles in 

-	 * the workspace. This collection is initialized lazily.

-	 * 

-	 * @return all launch configuration handles

-	 */

-	private List getAllLaunchConfigurations() throws CoreException {

-		if (fLaunchConfigurationIndex == null) {

-			fLaunchConfigurationIndex = new ArrayList(20);

-			fLaunchConfigurationIndex.addAll(findLocalLaunchConfigurations());

-			fLaunchConfigurationIndex.addAll(findLaunchConfigurations(ResourcesPlugin.getWorkspace().getRoot()));

-		}

-		return fLaunchConfigurationIndex;

-	}

-	

-	/**

-	 * @see ILaunchManager#deregisterLaunch(ILaunch)

-	 */

-	public void deregisterLaunch(ILaunch launch) {

-		removeLaunch(launch);

-	}

-	

-	/**

-	 * @see ILaunchManager#removeLaunch(ILaunch)

-	 */

-	public void removeLaunch(ILaunch launch) {

-		if (launch == null) {

-			return;

-		}

-		fLaunches.remove(launch);

-		fireUpdate(launch, REMOVED);

-	}	

-

-	/**

-	 * @see ILaunchManager#findLaunch(IProcess)

-	 */

-	public ILaunch findLaunch(IProcess process) {

-		synchronized (fLaunches) {

-			for (int i= 0; i < fLaunches.size(); i++) {

-				ILaunch l= (ILaunch) fLaunches.elementAt(i);

-				IProcess[] ps= l.getProcesses();

-				for (int j= 0; j < ps.length; j++) {

-					if (ps[j].equals(process)) {

-							return l;

-					}

-				}

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * @see ILaunchManager#findLaunch(IDebugTarget)

-	 */

-	public ILaunch findLaunch(IDebugTarget target) {

-		synchronized (fLaunches) {

-			for (int i= 0; i < fLaunches.size(); i++) {

-				ILaunch l= (ILaunch) fLaunches.elementAt(i);

-				IDebugTarget[] targets = l.getDebugTargets();

-				for (int j = 0; j < targets.length; j++) {

-					if (target.equals(targets[j])) {

-						return l;

-					}

-				}

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * Fires notification to the listeners that a launch has been (de)registered.

-	 */

-	public void fireUpdate(ILaunch launch, int update) {

-		Object[] copiedListeners= fListeners.getListeners();

-		for (int i= 0; i < copiedListeners.length; i++) {

-			ILaunchListener listener = (ILaunchListener)copiedListeners[i];

-			switch (update) {

-				case ADDED:

-					listener.launchAdded(launch);

-					break;

-				case REMOVED:

-					listener.launchRemoved(launch);

-					break;

-				case CHANGED:

-					listener.launchChanged(launch);

-					break;

-			}

-		}

-	}

-

-	/**

-	 * @see ILaunchManager#getDebugTargets()

-	 */

-	public IDebugTarget[] getDebugTargets() {

-		List allTargets= new ArrayList(fLaunches.size());

-		if (fLaunches.size() > 0) {

-			Iterator e= fLaunches.iterator();

-			while (e.hasNext()) {

-				IDebugTarget[] targets= ((ILaunch) e.next()).getDebugTargets();

-				for (int i = 0; i < targets.length; i++) {

-					allTargets.add(targets[i]);

-				}

-			}

-		}

-		return (IDebugTarget[])allTargets.toArray(new IDebugTarget[allTargets.size()]);

-	}

-

-	/**

-	 * @see ILaunchManager#getDefaultLauncher(IProject)

-	 */

-	public ILauncher getDefaultLauncher(IProject project) throws CoreException {

-		ILauncher launcher= null;

-		if ((project != null) && project.isOpen()) {

-			String launcherID = project.getPersistentProperty(new QualifiedName(DebugPlugin.PLUGIN_ID, DEFAULT_LAUNCHER));

-			if (launcherID != null) {

-				launcher= getLauncher(launcherID);

-			}

-		}

-		return launcher;

-	}

-	

-	/**

-	 * @see ILaunchManager#getDefaultLaunchConfigurationType(IResource)

-	 */

-	public ILaunchConfigurationType getDefaultLaunchConfigurationType(IResource resource, boolean considerResourceOnly) {

-		

-		try {

-			// First check on the resource itself

-			String defaultConfigTypeID = resource.getPersistentProperty(fgQualNameDefaultConfigType);

-			if (defaultConfigTypeID != null) {

-				ILaunchConfigurationType type = getLaunchConfigurationType(defaultConfigTypeID);

-				if (type != null) {

-					return type;

-				}

-			} else  if (considerResourceOnly) {

-				return null;

-			}

-			

-			// Next work up the resource's containment chain looking for a resource that

-			// specifies a default config type

-			IResource candidateResource = resource.getParent();

-			while (!(candidateResource instanceof IWorkspaceRoot)) {

-				defaultConfigTypeID = candidateResource.getPersistentProperty(fgQualNameDefaultConfigType);

-				if (defaultConfigTypeID != null) {

-					return getLaunchConfigurationType(defaultConfigTypeID);

-				}

-				candidateResource = candidateResource.getParent();

-			}

-		} catch (CoreException ce) {

-			DebugPlugin.log(ce);

-		}

-			

-		// Otherwise, return the default associated with the resource's file extension

-		return getDefaultLaunchConfigurationType(resource.getFileExtension());

-	}

-	

-	/**

-	 * @see ILaunchManager#getDefaultLaunchConfigurationType(String)

-	 */

-	public ILaunchConfigurationType getDefaultLaunchConfigurationType(String fileExtension) {

-		return (ILaunchConfigurationType) fDefaultLaunchConfigurationTypes.get(fileExtension);		

-	}

-	

-	/**

-	 * @see ILaunchManager#getAllRegisteredFileExtensions()

-	 */

-	public String[] getAllRegisteredFileExtensions() {

-		Object[] objectArray = fLaunchConfigurationTypesByFileExtension.keySet().toArray();

-		String[] stringArray = new String[objectArray.length];

-		for (int i = 0; i < objectArray.length; i++) {

-			stringArray[i] = (String) objectArray[i];

-		}

-		return stringArray;

-	}

-	

-	/**

-	 * @see ILaunchManager#getAllLaunchConfigurationTypesFor(String)

-	 */

-	public ILaunchConfigurationType[] getAllLaunchConfigurationTypesFor(String fileExtension) {

-		Object[] objectArray = ((List)fLaunchConfigurationTypesByFileExtension.get(fileExtension)).toArray();

-		ILaunchConfigurationType[] configTypeArray = new ILaunchConfigurationType[objectArray.length];

-		for (int i = 0; i < objectArray.length; i++) {

-			configTypeArray[i] = (ILaunchConfigurationType) objectArray[i];

-		}

-		return configTypeArray;

-	}

-		

-	/**

-	 * Returns the launcher with the given id, or <code>null</code>.

-	 */

-	public ILauncher getLauncher(String id) {

-		ILauncher[] launchers= getLaunchers();

-		for (int i= 0; i < launchers.length; i++) {

-			if (launchers[i].getIdentifier().equals(id)) {

-				return launchers[i];

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * @see ILaunchManager#getLaunchers()

-	 */

-	public ILauncher[] getLaunchers() {

-		return DebugPlugin.getDefault().getLaunchers();

-	}

-	

-	/**

-	 * @see ILaunchManager#getLaunchers(String)

-	 */

-	public ILauncher[] getLaunchers(String mode) {

-		ILauncher[] launchers = getLaunchers();

-		ArrayList list = new ArrayList();

-		for (int i = 0; i < launchers.length; i++) {

-			if (launchers[i].getModes().contains(mode)) {

-				list.add(launchers[i]);

-			}

-		}

-		return (ILauncher[])list.toArray(new ILauncher[list.size()]);

-	}

-

-	/**

-	 * @see ILaunchManager#getLaunches()

-	 */

-	public ILaunch[] getLaunches() {

-		return (ILaunch[])fLaunches.toArray(new ILaunch[fLaunches.size()]);

-	}

-

-	/**

-	 * @see ILaunchManager#getProcesses()

-	 */

-	public IProcess[] getProcesses() {

-		List allProcesses= new ArrayList(fLaunches.size());

-		Iterator e= fLaunches.iterator();

-		while (e.hasNext()) {

-			IProcess[] processes= ((ILaunch) e.next()).getProcesses();

-			for (int i= 0; i < processes.length; i++) {

-				allProcesses.add(processes[i]);

-			}

-		}

-		return (IProcess[])allProcesses.toArray(new IProcess[allProcesses.size()]);

-	}

-

-	/**

-	 * @see ILaunchManager#registerLaunch(ILaunch)

-	 */

-	public void registerLaunch(ILaunch launch) {

-		addLaunch(launch);

-	}

-	

-	/**

-	 * @see ILaunchManager#addLaunch(ILaunch)

-	 */

-	public void addLaunch(ILaunch launch) {

-		if (fLaunches.contains(launch)) {

-			return;

-		}

-		

-		fLaunches.add(launch);

-		fireUpdate(launch, ADDED);

-	}	

-	

-	/**

-	 * @see ILaunchManager#removeLaunchListener(ILaunchListener)

-	 */

-	public void removeLaunchListener(ILaunchListener listener) {

-		fListeners.remove(listener);

-	}

-

-	/**

-	 * @see ILaunchManager#setDefaultLauncher(IProject, ILauncher)

-	 */

-	public void setDefaultLauncher(IProject resource, ILauncher launcher) throws CoreException {

-		String id = null;

-		if (launcher != null) {

-			id = launcher.getIdentifier();

-		}

-		resource.setPersistentProperty(new QualifiedName(DebugPlugin.PLUGIN_ID, DEFAULT_LAUNCHER), id);

-	}

-	

-	/**

-	 * @see ILaunchManager#setDefaultLaunchConfigurationType(IResource, String)

-	 */

-	public void setDefaultLaunchConfigurationType(IResource resource, String configTypeID) throws CoreException {		

-		resource.setPersistentProperty(fgQualNameDefaultConfigType, configTypeID);

-	}

-	

-	/**

-	 * @see ILaunchManager#setDefaultLaunchConfigurationType(String, String)

-	 */

-	public void setDefaultLaunchConfigurationType(String fileExtension, String configTypeID) {

-		fDefaultLaunchConfigurationTypes.put(fileExtension, getLaunchConfigurationType(configTypeID));

-	}

-	

-	/**

-	 * @see ILaunchManager#setDefaultLaunchConfiguration(IResource, ILaunchConfiguration)

-	 */

-	public void setDefaultLaunchConfiguration(IResource resource, ILaunchConfiguration config) throws CoreException {

-		String memento = config.getMemento();

-		resource.setPersistentProperty(new QualifiedName(DEFAULT_LAUNCH_CONFIGURATION, config.getType().getIdentifier()), memento);

-		setDefaultLaunchConfigurationType(resource, config.getType().getIdentifier());

-	}

-	

-	/**

-	 * @see ILaunchManager#getDefaultLaunchConfiguration(IResource, String)

-	 */

-	public ILaunchConfiguration getDefaultLaunchConfiguration(IResource resource, String configTypeID) throws CoreException {

-		String memento = resource.getPersistentProperty(new QualifiedName(DEFAULT_LAUNCH_CONFIGURATION, configTypeID));

-		if (memento != null) {

-			ILaunchConfiguration config = getLaunchConfiguration(memento);

-			if (config.exists()) {

-				return config;

-			}	

-		}

-		return null;													  	

-	}

-	

-	/**

-	 * Return a LaunchConfigurationInfo object initialized from XML contained in

-	 * the specified stream.  Simply pass out any exceptions encountered so that

-	 * caller can deal with them.  This is important since caller may need access to the

-	 * actual exception.

-	 */

-	protected LaunchConfigurationInfo createInfoFromXML(InputStream stream) throws CoreException,

-																			 ParserConfigurationException,

-																			 IOException,

-																			 SAXException {

-		Element root = null;

-		DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();

-		root = parser.parse(new InputSource(stream)).getDocumentElement();

-		LaunchConfigurationInfo info = new LaunchConfigurationInfo();

-		info.initializeFromXML(root);

-		return info;

-	}

-

-	/**

-	 * Terminates/Disconnects any active debug targets/processes.

-	 * Clears launch configuration types.

-	 */

-	public void shutdown() throws CoreException {

-		fListeners.removeAll();

-		ILaunch[] launches = getLaunches();

-		for (int i= 0; i < launches.length; i++) {

-			ILaunch launch= launches[i];

-			try {

-				launch.terminate();

-			} catch (DebugException e) {

-				DebugPlugin.log(e);

-			}

-		}

-		

-		// persist the mapping of file extensions to default config types

-		IPath path = DebugPlugin.getDefault().getStateLocation().append(".defaultlaunchconfigs"); //$NON-NLS-1$

-		persistDefaultConfigTypeMap(path);

-		

-		fLaunchConfigurationTypes.clear();

-		getAllLaunchConfigurations().clear();

-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);

-	}

-	

-	/**

-	 * Creates launch configuration types for each defined extension.

-	 * 

-	 * @exception CoreException if an exception occurs processing

-	 *  the extensions

-	 */

-	public void startup() throws CoreException {

-		IPluginDescriptor descriptor= DebugPlugin.getDefault().getDescriptor();

-		IExtensionPoint extensionPoint= descriptor.getExtensionPoint(DebugPlugin.EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPES);

-		IConfigurationElement[] infos= extensionPoint.getConfigurationElements();

-		for (int i= 0; i < infos.length; i++) {

-			IConfigurationElement configurationElement = infos[i];

-			LaunchConfigurationType configType = new LaunchConfigurationType(configurationElement); 			

-			fLaunchConfigurationTypes.add(configType);

-			addFileExtensions(configurationElement, configType);

-		}		

-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this);

-

-		// restore the user-specified mapping of file extensions to default config types

-		IPath defaultConfigMapPath = DebugPlugin.getDefault().getStateLocation().append(".defaultlaunchconfigs"); //$NON-NLS-1$

-		restoreDefaultConfigTypeMap(defaultConfigMapPath);

-		

-		initializeSourceLocators();

-	}

-	

-	/**

-	 * For the given configuration element, retrieve all file extensions it has registered, 

-	 * and for each one that claims to be the default, add the config type as the default 

-	 * config type for the file extension.

-	 */

-	protected void addFileExtensions(IConfigurationElement configElement, LaunchConfigurationType configType) {

-		IConfigurationElement[] children = configElement.getChildren("fileExtension");

-		for (int i = 0; i < children.length; i++) {

-			IConfigurationElement fileExtensionElement = children[i];

-			String fileExtension = fileExtensionElement.getAttribute("extension");

-			String defaultValue = fileExtensionElement.getAttribute("default");

-			addOneFileExtension(fileExtension, defaultValue, configType);

-		}

-	}

-	

-	/**

-	 * Populate internal data structures for the given config type and its file extension.

-	 */

-	protected void addOneFileExtension(String fileExtension, String defaultValue, LaunchConfigurationType configType) {

-		List configTypeList = (List)fLaunchConfigurationTypesByFileExtension.get(fileExtension);

-		if (configTypeList == null) {

-			configTypeList = new ArrayList(5);

-			fLaunchConfigurationTypesByFileExtension.put(fileExtension, configTypeList);

-		}

-		configTypeList.add(configType);

-		

-		if (defaultValue.equalsIgnoreCase("true")) {

-			fDefaultLaunchConfigurationTypes.put(fileExtension, configType);

-		}

-	}

-	

-	/**

-	 * Load the user-specified mapping of file extensions to default config types.

-	 */

-	protected void restoreDefaultConfigTypeMap(IPath path) throws CoreException {

-		InputStream stream = null;

-		try {

-			File file = path.toFile();

-			if (!file.exists()) {

-				// no map to restore

-				return;

-			}

-			stream = new FileInputStream(file);

-			Element root = null;

-			DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();

-			root = parser.parse(new InputSource(stream)).getDocumentElement();

-			updateDefaultConfigTypesFromXML(root);

-		} catch (FileNotFoundException e) {

-			throw new DebugException(

-				new Status(Status.ERROR, DebugPlugin.getDefault().getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred while reading default configuration type map", new String[]{e.toString()}), e) 

-			);					

-		} catch (SAXException e) {

-			throw new DebugException(

-				new Status(Status.ERROR, DebugPlugin.getDefault().getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred while reading default configuration type map", new String[]{e.toString()}), e) 

-			);

-		} catch (ParserConfigurationException e) {

-			throw new DebugException(

-				new Status(Status.ERROR, DebugPlugin.getDefault().getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred while reading default configuration type map", new String[]{e.toString()}), e) 

-			);		

-		} catch (IOException e) {

-			throw new DebugException(

-				new Status(Status.ERROR, DebugPlugin.getDefault().getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred while reading default configuration type map", new String[]{e.toString()}), e) 

-			);										

-		} finally {

-			if (stream != null) {

-				try {

-					stream.close();

-				} catch (IOException e) {

-					throw new DebugException(

-						new Status(Status.ERROR, DebugPlugin.getDefault().getDefault().getDescriptor().getUniqueIdentifier(),

-						 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred while reading default configuration type map", new String[]{e.toString()}), e) 

-					);																	

-				}

-			}

-		}			

-	}

-	

-	/**

-	 * Update the table of default config types based on the entries underneath the specified root node.

-	 */

-	protected void updateDefaultConfigTypesFromXML(Element root) throws CoreException {

-		DebugException invalidFormat = 

-			new DebugException(

-				new Status(

-				 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, "Invalid default configuration type map", null 

-				)

-			);		

-			

-		if (!root.getNodeName().equalsIgnoreCase("defaultLaunchConfigTypes")) { //$NON-NLS-1$

-			throw invalidFormat;

-		}

-		

-		// read each default configuration 

-		NodeList list = root.getChildNodes();

-		int length = list.getLength();

-		for (int i = 0; i < length; ++i) {

-			Node node = list.item(i);

-			short type = node.getNodeType();

-			if (type == Node.ELEMENT_NODE) {

-				Element entry = (Element) node;

-				String nodeName = entry.getNodeName();

-				if (!nodeName.equalsIgnoreCase("defaultLaunchConfigType")) { //$NON-NLS-1$

-					throw invalidFormat;

-				}

-				String fileExtension = entry.getAttribute("fileExtension"); //$NON-NLS-1$

-				if (fileExtension == null) {

-					throw invalidFormat;

-				}

-				// Make sure the file extension was registered by some config type

-				List configList = (List) fLaunchConfigurationTypesByFileExtension.get(fileExtension);

-				if (configList == null) {

-					continue;

-				}

-				String defaultConfigTypeID = entry.getAttribute("launchConfigTypeID"); //$NON-NLS-1$

-				if (defaultConfigTypeID == null) {

-					throw invalidFormat;					

-				}

-				ILaunchConfigurationType configType = getLaunchConfigurationType(defaultConfigTypeID);

-				// Make sure the config type has been registered

-				if (configType == null) {

-					continue;

-				}

-				fDefaultLaunchConfigurationTypes.put(fileExtension, configType);

-			}

-		}		

-	}

-	

-	/**

-	 * Persists the mapping of file extensions to default configuration types in a file at the 

-	 * specified path.

-	 */

-	protected void persistDefaultConfigTypeMap(IPath path) throws CoreException {

-		String xml = null;

-		try {

-			xml = getDefaultConfigTypesAsXML();

-		} catch (IOException e) {

-			throw new DebugException(

-				new Status(

-				 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred generating default launch configuration map file", new String[]{e.toString()}), null //$NON-NLS-1$

-				)

-			);					

-		}

-		

-		try {

-			File file = path.toFile();

-			if (!file.exists()) {

-				file.createNewFile();

-			}

-			FileOutputStream stream = new FileOutputStream(file);

-			stream.write(xml.getBytes());

-			stream.close();

-		} catch (IOException e) {

-			throw new DebugException(

-				new Status(

-				 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred generating default launch configuration map file", new String[]{e.toString()}), null //$NON-NLS-1$

-				)

-			);				

-		}		

-	}

-	

-	/**

-	 * Convert the map of file extensions to default config types into an String of XML.

-	 */

-	protected String getDefaultConfigTypesAsXML() throws IOException {

-		Document doc = new DocumentImpl();

-		Element configRootElement = doc.createElement("defaultLaunchConfigTypes"); //$NON-NLS-1$

-		doc.appendChild(configRootElement);

-		

-		Iterator iterator = fDefaultLaunchConfigurationTypes.keySet().iterator();

-		while (iterator.hasNext()) {

-			String fileExtension = (String) iterator.next();

-			ILaunchConfigurationType configType = getDefaultLaunchConfigurationType(fileExtension);

-			Element element = doc.createElement("defaultLaunchConfigType"); //$NON-NLS-1$

-			element.setAttribute("fileExtension", fileExtension); //$NON-NLS-1$

-			element.setAttribute("launchConfigTypeID", configType.getIdentifier()); //$NON-NLS-1$

-			configRootElement.appendChild(element);

-		}

-

-		// produce a String output

-		StringWriter writer = new StringWriter();

-		OutputFormat format = new OutputFormat();

-		format.setIndenting(true);

-		Serializer serializer =

-			SerializerFactory.getSerializerFactory(Method.XML).makeSerializer(

-				writer,

-				format);

-		serializer.asDOMSerializer().serialize(doc);

-		return writer.toString();					

-	}

-	

-	/**

-	 * Returns the info object for the specified launch configuration.

-	 * If the configuration exists, but is not yet in the cache,

-	 * an info object is built and added to the cache.

-	 * 

-	 * @exception CoreException if an exception occurs building

-	 *  the info object

-	 * @exception DebugException if the config does not exist

-	 */

-	protected LaunchConfigurationInfo getInfo(ILaunchConfiguration config) throws CoreException {

-		LaunchConfigurationInfo info = (LaunchConfigurationInfo)fLaunchConfigurations.get(config);

-		if (info == null) {

-			if (config.exists()) {

-				InputStream stream = null;

-				try {

-					if (config.isLocal()) {

-						IPath path = config.getLocation();

-						File file = path.toFile();				

-						stream = new FileInputStream(file);

-					} else {

-						IFile file = ((LaunchConfiguration) config).getFile();

-						stream = file.getContents();

-					}

-					info = createInfoFromXML(stream);

-					fLaunchConfigurations.put(config, info);

-				} catch (FileNotFoundException e) {

-					throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					

-				} catch (SAXException e) {

-					throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					

-				} catch (ParserConfigurationException e) {

-					throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					

-				} catch (IOException e) {

-					throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					

-				} finally {

-					if (stream != null) {

-						try {

-							stream.close();

-						} catch (IOException e) {

-							throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					

-						}

-					}

-				}

-		

-			} else {

-				throw createDebugException(DebugCoreMessages.getString("LaunchManager.Launch_configuration_does_not_exist._6"), null); //$NON-NLS-1$

-			}

-		}

-		return info;

-	}	

-	

-	/**

-	 * Return an instance of DebugException containing the specified message and Throwable.

-	 */

-	protected DebugException createDebugException(String message, Throwable throwable) {

-		return new DebugException(

-					new Status(

-					 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-					 DebugException.REQUEST_FAILED, message, throwable 

-					)

-				);

-	}

-	

-	/**

-	 * Removes the given launch configuration from the cache of configurations.

-	 * When a local configuration is deleted, this method is called, as there will

-	 * be no resource delta generated to auto-update the cache.

-	 * 

-	 * @param configuration the configuration to remove

-	 */

-	private void removeInfo(ILaunchConfiguration configuration) {

-		fLaunchConfigurations.remove(configuration);

-	}

-	

-	/**

-	 * @see ILaunchManager#getLaunchConfigurations()

-	 */

-	public ILaunchConfiguration[] getLaunchConfigurations() throws CoreException {

-		List allConfigs = getAllLaunchConfigurations();

-		return (ILaunchConfiguration[])allConfigs.toArray(new ILaunchConfiguration[allConfigs.size()]);

-	}	

-	

-	/**

-	 * @see ILaunchManager#getLaunchConfigurations(ILaunchConfigurationType)

-	 */

-	public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException {

-		Iterator iter = getAllLaunchConfigurations().iterator();

-		List configs = new ArrayList();

-		while (iter.hasNext()) {

-			ILaunchConfiguration config = (ILaunchConfiguration)iter.next();

-			if (config.getType().equals(type)) {

-				configs.add(config);

-			}

-		}

-		return (ILaunchConfiguration[])configs.toArray(new ILaunchConfiguration[configs.size()]);

-	}

-	

-	/**

-	 * Returns all launch configurations that are stored as resources

-	 * in the given project.

-	 * 

-	 * @param project a project

-	 * @return collection of launch configurations that are stored as resources

-	 *  in the given project

-	 */

-	protected List getLaunchConfigurations(IProject project) throws CoreException {

-		Iterator iter = getAllLaunchConfigurations().iterator();

-		List configs = new ArrayList();

-		while (iter.hasNext()) {

-			ILaunchConfiguration config = (ILaunchConfiguration)iter.next();

-			IFile file = config.getFile();

-			if (file != null && file.getProject().equals(project)) {

-				configs.add(config);

-			}

-		}

-		return configs;

-	}	

-	

-	/**

-	 * Returns all launch configurations that are stored locally.

-	 * 

-	 * @return collection of launch configurations stored lcoally

-	 */

-	protected List getLocalLaunchConfigurations() throws CoreException {

-		Iterator iter = getAllLaunchConfigurations().iterator();

-		List configs = new ArrayList();

-		while (iter.hasNext()) {

-			ILaunchConfiguration config = (ILaunchConfiguration)iter.next();

-			if (config.isLocal()) {

-				configs.add(config);

-			}

-		}

-		return configs;

-	}		

-	

-	/**

-	 * @see ILaunchManager#getLaunchConfiguration(IFile)

-	 */

-	public ILaunchConfiguration getLaunchConfiguration(IFile file) {

-		return new LaunchConfiguration(file.getLocation());

-	}

-	

-	/**

-	 * @see ILaunchManager#getLaunchConfiguration(String)

-	 */

-	public ILaunchConfiguration getLaunchConfiguration(String memento) throws CoreException {

-		return new LaunchConfiguration(memento);

-	}

-	

-	/**

-	 * @see ILaunchManager#getLaunchConfigurationTypes()

-	 */

-	public ILaunchConfigurationType[] getLaunchConfigurationTypes() {

-		return (ILaunchConfigurationType[])fLaunchConfigurationTypes.toArray(new ILaunchConfigurationType[fLaunchConfigurationTypes.size()]);

-	}

-	

-	/**

-	 * @see ILaunchManager#getLaunchConfigurationType(String)

-	 */

-	public ILaunchConfigurationType getLaunchConfigurationType(String id) {

-		Iterator iter = fLaunchConfigurationTypes.iterator();

-		while (iter.hasNext()) {

-			ILaunchConfigurationType type = (ILaunchConfigurationType)iter.next();

-			if (type.getIdentifier().equals(id)) {

-				return type;

-			}

-		}

-		return null;

-	}	

-	

-	/**

-	 * Notifies the launch manager that a launch configuration

-	 * has been deleted. The configuration is removed from the

-	 * cache of info's and from the index of configurations by

-	 * project, and listeners are notified.

-	 * 

-	 * @param config the launch configuration that was deleted

-	 */

-	protected void launchConfigurationDeleted(ILaunchConfiguration config) throws CoreException {

-		removeInfo(config);

-		getAllLaunchConfigurations().remove(config);

-		if (fLaunchConfigurationListeners.size() > 0) {

-			Object[] listeners = fLaunchConfigurationListeners.getListeners();

-			for (int i = 0; i < listeners.length; i++) {

-				ILaunchConfigurationListener listener = (ILaunchConfigurationListener)listeners[i];

-				listener.launchConfigurationRemoved(config);

-			}

-		}

-		clearConfigNameCache();			

-	}

-	

-	/**

-	 * Notifies the launch manager that a launch configuration

-	 * has been added. The configuration is added to the index of

-	 * configurations by project, and listeners are notified.

-	 * 

-	 * @param config the launch configuration that was added

-	 */

-	protected void launchConfigurationAdded(ILaunchConfiguration config) throws CoreException {

-		List allConfigs = getAllLaunchConfigurations();

-		if (!allConfigs.contains(config)) {

-			allConfigs.add(config);

-		}

-		if (fLaunchConfigurationListeners.size() > 0) {

-			Object[] listeners = fLaunchConfigurationListeners.getListeners();

-			for (int i = 0; i < listeners.length; i++) {

-				ILaunchConfigurationListener listener = (ILaunchConfigurationListener)listeners[i];

-				listener.launchConfigurationAdded(config);

-			}

-		}

-		clearConfigNameCache();			

-	}

-	

-	/**

-	 * Notifies the launch manager that a launch configuration

-	 * has been changed. The configuration is removed from the

-	 * cache of info objects such that the new attributes will

-	 * be updated on the next access. Listeners are notified of

-	 * the change.

-	 * 

-	 * @param config the launch configuration that was changed

-	 */

-	protected void launchConfigurationChanged(ILaunchConfiguration config) {

-		removeInfo(config);

-		notifyChanged(config);

-		clearConfigNameCache();								

-	}

-	

-	/**

-	 * Notifies listeners that the given launch configuration

-	 * has changed.

-	 * 

-	 * @param configuration the changed launch configuration

-	 */

-	protected void notifyChanged(ILaunchConfiguration configuration) {

-		if (fLaunchConfigurationListeners.size() > 0) {

-			Object[] listeners = fLaunchConfigurationListeners.getListeners();

-			for (int i = 0; i < listeners.length; i++) {

-				ILaunchConfigurationListener listener = (ILaunchConfigurationListener)listeners[i];

-				listener.launchConfigurationChanged(configuration);

-			}

-		}		

-	}

-	

-	/**

-	 * @see ILaunchManager#isExistingLaunchConfigurationName(String)

-	 */

-	public boolean isExistingLaunchConfigurationName(String name) throws CoreException {

-		String[] sortedConfigNames = getAllSortedConfigNames();

-		int index = Arrays.binarySearch(sortedConfigNames, name);

-		if (index < 0) {

-			return false;

-		} 

-		return true;

-	}

-	

-	/**

-	 * Return a sorted array of the names of all <code>ILaunchConfiguration</code>s in 

-	 * the workspace.  These are cached, and cache is cleared when a new config is added,

-	 * deleted or changed.

-	 */

-	protected String[] getAllSortedConfigNames() throws CoreException {

-		if (fSortedConfigNames == null) {

-			ILaunchConfiguration[] configs = getLaunchConfigurations();

-			fSortedConfigNames = new String[configs.length];

-			for (int i = 0; i < configs.length; i++) {

-				fSortedConfigNames[i] = configs[i].getName();

-			}

-			Arrays.sort(fSortedConfigNames);

-		}

-		return fSortedConfigNames;

-	}

-	

-	/**

-	 * The launch config name cache is cleared when a config is added, deleted or changed.

-	 */

-	protected void clearConfigNameCache() {

-		fSortedConfigNames = null;

-	}

-		

-	/**

-	 * Finds and returns all local launch configurations.

-	 *

-	 * @return all local launch configurations

-	 * @exception CoreException if there is a lower level

-	 *  IO exception

-	 */

-	protected List findLocalLaunchConfigurations() throws CoreException {

-		IPath containerPath = LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;

-		List configs = new ArrayList(10);

-		final File directory = containerPath.toFile();

-		if (directory.isDirectory()) {

-			FilenameFilter filter = new FilenameFilter() {

-				public boolean accept(File dir, String name) {

-					return dir.equals(directory) && name.endsWith(ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION);

-				}

-			};

-			File[] files = directory.listFiles(filter);

-			for (int i = 0; i < files.length; i++) {

-				try {

-					LaunchConfiguration config = new LaunchConfiguration(new Path(files[i].getCanonicalPath()));

-					configs.add(config);

-				} catch (IOException e) {

-					throw new CoreException(

-						new Status(

-						 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-						 DebugException.REQUEST_FAILED, MessageFormat.format("{0} occurred while re-building local launch configuration index.", new String[]{e.toString()}), null

-						));

-				}

-			}

-		}

-		return configs;

-	}

-	

-	/**

-	 * Finds and returns all launch configurations in the given

-	 * container (and subcontainers)

-	 * 

-	 * @param container the container to search

-	 * @exception CoreException an exception occurs traversing

-	 *  the container.

-	 * @return all launch configurations in the given container

-	 */

-	protected List findLaunchConfigurations(IContainer container) throws CoreException {

-		List list = new ArrayList(10);

-		if (container instanceof IProject && !((IProject)container).isOpen()) {

-			return list;

-		}

-		searchForFiles(container, ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION, list);

-		Iterator iter = list.iterator();

-		List configs = new ArrayList(list.size());

-		while (iter.hasNext()) {

-			IFile file = (IFile)iter.next();

-			configs.add(getLaunchConfiguration(file));

-		}

-		return configs;

-	}

-	

-	/**

-	 * Recursively searches the given container for files with the given

-	 * extension.

-	 * 

-	 * @param container the container to search in

-	 * @param extension the file extension being searched for

-	 * @param list the list to add the matching files to

-	 * @exception CoreException if an exception occurs traversing

-	 *  the container

-	 */

-	protected void searchForFiles(IContainer container, String extension, List list) throws CoreException {

-		IResource[] members = container.members();

-		for (int i = 0; i < members.length; i++) {

-			if (members[i] instanceof IContainer) {

-				if (members[i] instanceof IProject && !((IProject)members[i]) .isOpen()) {

-					continue;

-				}

-				searchForFiles((IContainer)members[i], extension, list);

-			} else if (members[i] instanceof IFile) {

-				IFile file = (IFile)members[i];

-				if (ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION.equalsIgnoreCase(file.getFileExtension())) {

-					list.add(file);

-				}

-			}

-		}

-	}

-	

-	/**

-	 * Traverses the delta looking for added/removed/changed launch

-	 * configuration files.

-	 * 

-	 * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)

-	 */

-	public void resourceChanged(IResourceChangeEvent event) {

-		IResourceDelta delta= event.getDelta();

-		if (delta != null) {

-			try {

-				if (fgVisitor == null) {

-					fgVisitor= new LaunchManagerVisitor();

-				}

-				delta.accept(fgVisitor);

-			} catch (CoreException e) {

-				DebugPlugin.log(e);

-			}

-		}		

-	}

-

-	/**

-	 * Returns XML that can be used to persist the specified

-	 * launch configurations.

-	 * 

-	 * @param configs list of configurations

-	 * @return XML

-	 * @exception IOException if an exception occurs creating the XML

-	 */

-	protected String getConfigsAsXML(List configs) throws IOException, CoreException {

-

-		Document doc = new DocumentImpl();

-		Element configRootElement = doc.createElement("launchConfigurations"); //$NON-NLS-1$

-		doc.appendChild(configRootElement);

-		

-		for (int i = 0; i < configs.size(); i++) {

-			ILaunchConfiguration lc = (ILaunchConfiguration)configs.get(i);

-			String memento = lc.getMemento();

-			Element element = doc.createElement("launchConfiguration"); //$NON-NLS-1$

-			element.setAttribute("memento", memento); //$NON-NLS-1$

-			configRootElement.appendChild(element);

-		}

-

-		// produce a String output

-		StringWriter writer = new StringWriter();

-		OutputFormat format = new OutputFormat();

-		format.setIndenting(true);

-		Serializer serializer =

-			SerializerFactory.getSerializerFactory(Method.XML).makeSerializer(

-				writer,

-				format);

-		serializer.asDOMSerializer().serialize(doc);

-		return writer.toString();

-			

-	}

-	

-	/**

-	 * Returns the launch configurations specified by the given

-	 * XML document.

-	 * 

-	 * @param root XML document

-	 * @return list of launch configurations

-	 * @exception IOException if an exception occurs reading the XML

-	 */	

-	protected List getConfigsFromXML(Element root) throws CoreException {

-		DebugException invalidFormat = 

-			new DebugException(

-				new Status(

-				 Status.ERROR, DebugPlugin.getDefault().getDescriptor().getUniqueIdentifier(),

-				 DebugException.REQUEST_FAILED, DebugCoreMessages.getString("Invalid_launch_configuration_index._18"), null //$NON-NLS-1$

-				)

-			);		

-			

-		if (!root.getNodeName().equalsIgnoreCase("launchConfigurations")) { //$NON-NLS-1$

-			throw invalidFormat;

-		}

-		

-		// read each launch configuration 

-		List configs = new ArrayList(4);	

-		NodeList list = root.getChildNodes();

-		int length = list.getLength();

-		for (int i = 0; i < length; ++i) {

-			Node node = list.item(i);

-			short type = node.getNodeType();

-			if (type == Node.ELEMENT_NODE) {

-				Element entry = (Element) node;

-				String nodeName = entry.getNodeName();

-				if (!nodeName.equals("launchConfiguration")) { //$NON-NLS-1$

-					throw invalidFormat;

-				}

-				String memento = entry.getAttribute("memento"); //$NON-NLS-1$

-				if (memento == null) {

-					throw invalidFormat;

-				}

-				configs.add(getLaunchConfiguration(memento));

-			}

-		}

-		return configs;

-	}		

-	

-	/**

-	 * The specified project has just opened - add all launch

-	 * configs in the project to the index of all configs.

-	 * 

-	 * @param project the project that has been opened

-	 * @exception CoreException if reading the index fails

-	 */

-	protected void projectOpened(IProject project) throws CoreException {

-		List configs = findLaunchConfigurations(project);

-		if (!configs.isEmpty()) {

-			List allList = getAllLaunchConfigurations();

-			Iterator iterator = configs.iterator();

-			while (iterator.hasNext()) {

-				ILaunchConfiguration config = (ILaunchConfiguration) iterator.next();

-				if (!allList.contains(config)) {

-					allList.add(config);

-				}

-			}			

-		}

-	}

-	

-	/**

-	 * The specified project has just closed - remove its

-	 * launch configurations from the cached index.

-	 * 

-	 * @param project the project that has been closed

-	 * @exception CoreException if writing the index fails

-	 */

-	protected void projectClosed(IProject project) throws CoreException {

-		List configs = getLaunchConfigurations(project);

-		if (!configs.isEmpty()) {

-			getAllLaunchConfigurations().removeAll(configs);

-		}

-	}	

-	

-	/**

-	 * Visitor for handling resource deltas.

-	 */

-	class LaunchManagerVisitor implements IResourceDeltaVisitor {

-		/**

-		 * @see IResourceDeltaVisitor#visit(IResourceDelta)

-		 */

-		public boolean visit(IResourceDelta delta) {

-			if (delta == null) {

-				return false;

-			}

-			if (0 != (delta.getFlags() & IResourceDelta.OPEN)) {

-				if (delta.getResource() instanceof IProject) {

-					IProject project = (IProject)delta.getResource();

-					try {

-						if (project.isOpen()) {

-							LaunchManager.this.projectOpened(project);

-						} else { 

-						    LaunchManager.this.projectClosed(project);

-						}

-					} catch (CoreException e) {

-						DebugPlugin.log(e);

-					}

-				}

-				return false;

-			}

-			IResource resource = delta.getResource();

-			if (resource instanceof IFile) {

-				IFile file = (IFile)resource;

-				if (ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION.equals(file.getFileExtension())) {

-					IPath configPath = ResourcesPlugin.getWorkspace().getRoot().getLocation();

-					configPath = configPath.append(file.getFullPath());

-					ILaunchConfiguration handle = new LaunchConfiguration(configPath);

-					try {

-						switch (delta.getKind()) {						

-							case IResourceDelta.ADDED :

-								LaunchManager.this.launchConfigurationAdded(handle);

-								break;

-							case IResourceDelta.REMOVED :

-								LaunchManager.this.launchConfigurationDeleted(handle);

-								break;

-							case IResourceDelta.CHANGED :

-								LaunchManager.this.launchConfigurationChanged(handle);

-								break;

-						}					

-					} catch (CoreException e) {

-						DebugPlugin.log(e);

-					}

-				}

-				return false;

-			} else if (resource instanceof IContainer) {

-				return true;

-			}

-			return true;

-		}		

-	}

-	

-	/**

-	 * @see ILaunchManager#addLaunchConfigurationListener(ILaunchConfigurationListener)

-	 */

-	public void addLaunchConfigurationListener(ILaunchConfigurationListener listener) {

-		fLaunchConfigurationListeners.add(listener);

-	}

-

-	/**

-	 * @see ILaunchManager#removeLaunchConfigurationListener(ILaunchConfigurationListener)

-	 */

-	public void removeLaunchConfigurationListener(ILaunchConfigurationListener listener) {

-		fLaunchConfigurationListeners.remove(listener);

-	}

-

-	/**

-	 * Register source locators.

-	 * 

-	 * @exception CoreException if an exception occurrs reading

-	 *  the extensions

-	 */

-	private void initializeSourceLocators() throws CoreException {

-		IPluginDescriptor descriptor= DebugPlugin.getDefault().getDescriptor();

-		IExtensionPoint extensionPoint= descriptor.getExtensionPoint(DebugPlugin.EXTENSION_POINT_SOURCE_LOCATORS);

-		IConfigurationElement[] infos= extensionPoint.getConfigurationElements();

-		for (int i= 0; i < infos.length; i++) {

-			IConfigurationElement configurationElement = infos[i];

-			String id = configurationElement.getAttribute("id"); //$NON-NLS-1$			

-			if (id != null) {

-				fSourceLocators.put(id,configurationElement);

-			} else {

-				// invalid status handler

-				IStatus s = new Status(IStatus.ERROR, DebugPlugin.PLUGIN_ID, DebugException.INTERNAL_ERROR,

-				MessageFormat.format("Invalid source locator extentsion defined by plug-in '{0}': 'id' not specified.", new String[] {configurationElement.getDeclaringExtension().getDeclaringPluginDescriptor().getUniqueIdentifier()} ), null); 

-				DebugPlugin.getDefault().log(s);

-			}

-		}			

-	}

-	

-	/**

-	 * @see ILaunchManager#newSourceLocator(String)

-	 */

-	public IPersistableSourceLocator newSourceLocator(String identifier) throws CoreException {

-		IConfigurationElement config = (IConfigurationElement)fSourceLocators.get(identifier);

-		if (config == null) {

-			throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.PLUGIN_ID, DebugException.INTERNAL_ERROR,

-				MessageFormat.format("Source locator does not exist: {0}", new String[] {identifier} ), null));

-		} else {

-			return (IPersistableSourceLocator)config.createExecutableExtension("class");

-		}

-		

-	}

-

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/Launcher.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/Launcher.java
deleted file mode 100644
index 297a625..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/Launcher.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.util.HashSet;

-import java.util.Set;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IConfigurationElement;

-import org.eclipse.debug.core.ILauncher;

-import org.eclipse.debug.core.model.ILauncherDelegate;

-

-/**

- * A handle to a launcher extension that instantiates the actual

- * extension lazily.

- */

-public class Launcher implements ILauncher {

-	

-	/**

-	 * The configuration element that defines this launcher handle

-	 */

-	private IConfigurationElement fConfigElement = null;

-	

-	/**

-	 * The underlying launcher, which is <code>null</code> until

-	 * it needs to be instantiated.

-	 */

-	private ILauncherDelegate fDelegate = null;

-	

-	/**

-	 * Cache of the modes this launcher supports

-	 */

-	private Set fModes;

-	

-	/**

-	 * Constructs a handle for a launcher extension.

-	 */

-	public Launcher(IConfigurationElement element) {

-		fConfigElement = element;

-	}

-	

-	/**

-	 * @see ILauncher#getIdentifier()

-	 */

-	public String getIdentifier() {

-		return fConfigElement.getAttribute("id"); //$NON-NLS-1$

-	}

-	

-	/**

-	 * Returns the set of modes specified in the configuration data.

-	 * The set contains "mode" constants defined in <code>ILaunchManager</code>

-	 */

-	public Set getModes() {

-		if (fModes == null) {

-			String modes= fConfigElement.getAttribute("modes"); //$NON-NLS-1$

-			if (modes == null) {

-				return new HashSet(0);

-			}

-			StringTokenizer tokenizer= new StringTokenizer(modes, ","); //$NON-NLS-1$

-			fModes = new HashSet(tokenizer.countTokens());

-			while (tokenizer.hasMoreTokens()) {

-				fModes.add(tokenizer.nextToken().trim());

-			}

-		}

-		return fModes;

-	}

-	

-	/**

-	 * @see ILauncher#getLabel()

-	 */

-	public String getLabel() {

-		return fConfigElement.getAttribute("label"); //$NON-NLS-1$

-	}

-	

-	/**

-	 * @see ILauncher#getPerspectiveIdentifier()

-	 */

-	public String getPerspectiveIdentifier() {

-		return fConfigElement.getAttribute("perspective"); //$NON-NLS-1$

-	}

-

-	/**

-	 * Returns the launcher for this handle, instantiating it if required.

-	 */

-	public ILauncherDelegate getDelegate() {

-		if (fDelegate == null) {

-			try {

-				fDelegate = (ILauncherDelegate)fConfigElement.createExecutableExtension("class"); //$NON-NLS-1$

-			} catch (CoreException e) {

-				//status logged in the #createExecutableExtension code

-			}

-		}	

-		return fDelegate;

-	}

-		

-	/**

-	 * @see ILauncher#launch(Object[], String)

-	 */

-	public boolean launch(Object[] elements, String mode) {

-		return getDelegate().launch(elements, mode, this);

-	}

-		

-	/**

-	 * Returns the configuration element for this extension

-	 */

-	public IConfigurationElement getConfigurationElement() {

-		return fConfigElement;

-	}

-	

-	/**

-	 * @see ILauncher#getIconPath()

-	 */

-	public String getIconPath() {

-		return fConfigElement.getAttribute("icon"); //$NON-NLS-1$

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java
deleted file mode 100644
index f664e02..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * Local version of org.eclipse.jface.util.ListenerList (modified)s

- */

-public class ListenerList {

-	/**

-	 * The current number of listeners.

-	 * Maintains invariant: 0 <= fSize <= listeners.length.

-	 */

-	private int fSize;

-

-	/**

-	 * The list of listeners.  Initially <code>null</code> but initialized

-	 * to an array of size capacity the first time a listener is added.

-	 * Maintains invariant: listeners != null if and only if fSize != 0

-	 */

-	private Object[] fListeners= null;

-

-	/**

-	 * The empty array singleton instance, returned by getListeners()

-	 * when size == 0.

-	 */

-	private static final Object[] EmptyArray= new Object[0];

-

-	/**

-	 * Creates a listener list with the given initial capacity.

-	 *

-	 * @param capacity the number of listeners which this list can initially accept 

-	 *    without growing its internal representation; must be at least 1

-	 */

-	public ListenerList(int capacity) {

-		if (capacity < 1) {

-			throw new IllegalArgumentException();

-		}

-		fListeners= new Object[capacity];

-		fSize= 0;

-	}

-

-	/**

-	 * Adds a listener to the list.

-	 * Has no effect if an identical listener is already registered.

-	 *

-	 * @param listener a listener

-	 */

-	public synchronized void add(Object listener) {

-		if (listener == null) {

-			throw new IllegalArgumentException();

-		}

-		// check for duplicates using identity

-		for (int i= 0; i < fSize; ++i) {

-			if (fListeners[i] == listener) {

-				return;

-			}

-		}

-		// grow array if necessary

-		if (fSize == fListeners.length) {

-			Object[] temp= new Object[(fSize * 2) + 1];

-			System.arraycopy(fListeners, 0, temp, 0, fSize);

-			fListeners= temp;

-		}

-		fListeners[fSize++]= listener;

-	}

-

-	/**

-	 * Returns an array containing all the registered listeners.

-	 * The resulting array is unaffected by subsequent adds or removes.

-	 * If there are no listeners registered, the result is an empty array

-	 * singleton instance (no garbage is created).

-	 * Use this method when notifying listeners, so that any modifications

-	 * to the listener list during the notification will have no effect on the

-	 * notification itself.

-	 */

-	public synchronized Object[] getListeners() {

-		if (fSize == 0) {

-			return EmptyArray;

-		}

-		Object[] result= new Object[fSize];

-		System.arraycopy(fListeners, 0, result, 0, fSize);

-		return result;

-	}

-

-	/**

-	 * Removes a listener from the list.

-	 * Has no effect if an identical listener was not already registered.

-	 *

-	 * @param listener a listener

-	 */

-	public synchronized void remove(Object listener) {

-		if (listener == null) {

-			throw new IllegalArgumentException();

-		}

-

-		for (int i= 0; i < fSize; ++i) {

-			if (fListeners[i] == listener) {

-				if (--fSize == 0) {

-					fListeners= new Object[1];

-				} else {

-					if (i < fSize) {

-						fListeners[i]= fListeners[fSize];

-					}

-					fListeners[fSize]= null;

-				}

-				return;

-			}

-		}

-	}

-

-	/**

-	 * Removes all the listeners from the list.

-	 */

-	public void removeAll() {

-		fListeners= new Object[0];

-		fSize= 0;

-	}

-

-	/**

-	 * Returns the number of registered listeners

-	 *

-	 * @return the number of registered listeners

-	 */

-	public int size() {

-		return fSize;

-	}

-}

-

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java
deleted file mode 100644
index 7013aff..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.IOException;

-import java.io.InputStream;

-

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.IStreamListener;

-import org.eclipse.debug.core.model.IStreamMonitor;

-

-/**

- * Monitors the output stream of a system process and notifies 

- * listeners of additions to the stream.

- * 

- * The output stream monitor reads system out (or err) via

- * and input stream.

- */

-public class OutputStreamMonitor implements IStreamMonitor {

-	/**

-	 * The stream being monitored (connected system out or err).

-	 */

-	private InputStream fStream;

-

-	/**

-	 * A collection of listeners

-	 */

-	private ListenerList fListeners= new ListenerList(1);

-

-	/**

-	 * The local copy of the stream contents

-	 */

-	private StringBuffer fContents;

-

-	/**

-	 * The thread which reads from the stream

-	 */

-	private Thread fThread;

-

-	/**

-	 * The size of the read buffer

-	 */

-	private static final int BUFFER_SIZE= 8192;

-

-	/**

-	 * Whether or not this monitor has been killed.

-	 * When the monitor is killed, it stops reading

-	 * from the stream immediately.

-	 */

-	private boolean fKilled= false;

-	/**

-	 * Creates an output stream monitor on the

-	 * given stream (connected to system out or err).

-	 */

-	public OutputStreamMonitor(InputStream stream) {

-		fStream= stream;

-		fContents= new StringBuffer();

-	}

-

-	/**

-	 * @see IStreamMonitor#addListener(IStreamListener)

-	 */

-	public void addListener(IStreamListener listener) {

-		fListeners.add(listener);

-	}

-

-	/**

-	 * Causes the monitor to close all

-	 * communications between it and the

-	 * underlying stream by waiting for the thread to terminate.

-	 */

-	protected void close() {

-		if (fThread != null) {

-			Thread thread= fThread;

-			fThread= null;

-			try {

-				thread.join();

-			} catch (InterruptedException ie) {

-			}

-			fListeners.removeAll();

-		}

-	}

-

-	/**

-	 * Notifies the listeners that text has

-	 * been appended to the stream.

-	 */

-	private void fireStreamAppended(String text) {

-		if (text == null)

-			return;

-		Object[] copiedListeners= fListeners.getListeners();

-		for (int i= 0; i < copiedListeners.length; i++) {

-			 ((IStreamListener) copiedListeners[i]).streamAppended(text, this);

-		}

-	}

-

-	/**

-	 * @see IStreamMonitor#getContents()

-	 */

-	public String getContents() {

-		return fContents.toString();

-	}

-

-	/**

-	 * Continually reads from the stream.

-	 * <p>

-	 * This method, along with the <code>startReading</code>

-	 * method is used to allow <code>OutputStreamMonitor</code>

-	 * to implement <code>Runnable</code> without publicly

-	 * exposing a <code>run</code> method.

-	 */

-	private void read() {

-		byte[] bytes= new byte[BUFFER_SIZE];

-		int read = 0;

-		while (read >= 0) {

-			try {

-				if (fKilled) {

-					break;

-				}

-				read= fStream.read(bytes);

-				if (read > 0) {

-					String text= new String(bytes, 0, read);

-					fContents.append(text);

-					fireStreamAppended(text);

-				}

-			} catch (IOException ioe) {

-				DebugPlugin.log(ioe);

-				return;

-			}

-		}

-	}

-	

-	protected void kill() {

-		fKilled= true;

-		if (fStream != null) {

-			try {

-				fStream.close();

-			} catch(IOException e) {

-				DebugPlugin.log(e);

-			}

-		}

-	}

-

-	/**

-	 * @see IStreamMonitor#removeListener(IStreamListener)

-	 */

-	public void removeListener(IStreamListener listener) {

-		fListeners.remove(listener);

-	}

-

-	/**

-	 * Starts a thread which reads from the stream

-	 */

-	protected void startMonitoring() {

-		if (fThread == null) {

-			fThread= new Thread(new Runnable() {

-				public void run() {

-					read();

-				}

-			}, DebugCoreMessages.getString("OutputStreamMonitor.label")); //$NON-NLS-1$

-			fThread.start();

-		}

-	}

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ProcessMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ProcessMonitor.java
deleted file mode 100644
index 81f2f0b..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ProcessMonitor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-/**

- * Monitors a system process, wiating for it to terminate, and

- * then notifies the associated runtime process.

- */

-public class ProcessMonitor {

-	/**

-	 * The underlying <code>java.lang.Process</code> being monitored.

-	 */

-	protected Process fOSProcess;	

-	/**

-	 * The <code>IProcess</code> which will be informed when this

-	 * monitor detects that the underlying process has terminated.

-	 */

-	protected RuntimeProcess fProcess;

-

-	/**

-	 * The <code>Thread</code> which is monitoring the underlying process.

-	 */

-	protected Thread fThread;

-	/**

-	 * Creates a new process monitor and starts monitoring the process

-	 * for termination.

-	 */

-	public ProcessMonitor(RuntimeProcess process) {

-		fProcess= process;

-		fOSProcess= process.getSystemProcess();

-		startMonitoring();

-	}

-

-	/**

-	 * Monitors the underlying process for termination. When the underlying

-	 * process terminates (or if the monitoring thread is interrupted),

-	 * inform the <code>IProcess</code> that it has terminated.

-	 */

-	private void monitorProcess() {

-		while (fOSProcess != null) {

-			try {

-				fOSProcess.waitFor();

-			} catch (InterruptedException ie) {

-			} finally {

-				fOSProcess = null;

-				fProcess.terminated();

-			}

-		}

-	}

-

-	/**

-	 * Starts monitoring the underlying process to determine

-	 * if it has terminated.

-	 */

-	private void startMonitoring() {

-		if (fThread == null) {

-			fThread= new Thread(new Runnable() {

-				public void run() {

-					monitorProcess();

-				}

-			}, DebugCoreMessages.getString("ProcessMonitor.label")); //$NON-NLS-1$

-			fThread.start();

-		}

-	}

-	

-	/**

-	 * Kills the monitoring thread.

-	 * 

-	 * This method is to be useful for dealing with the error

-	 * case of an underlying process which has not informed this

-	 * monitor of its termination.

-	 */

-	protected void killMonitoring() {

-		fThread.interrupt();

-	}

-}

diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/RuntimeProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/RuntimeProcess.java
deleted file mode 100644
index 1ab66ae..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/RuntimeProcess.java
+++ /dev/null
@@ -1,272 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.InputStream;

-import java.io.OutputStream;

-import java.util.HashMap;

-

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.PlatformObject;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.debug.core.DebugEvent;

-import org.eclipse.debug.core.DebugException;

-import org.eclipse.debug.core.DebugPlugin;

-import org.eclipse.debug.core.ILaunch;

-import org.eclipse.debug.core.model.IDebugElement;

-import org.eclipse.debug.core.model.IDebugTarget;

-import org.eclipse.debug.core.model.IProcess;

-import org.eclipse.debug.core.model.IStreamsProxy;

-

-

-/**

- * A runtime process is a wrapper for a non-debuggable

- * system process. The process will appear in the debug UI with

- * console and termination support. The process creates a streams

- * proxy for itself, and a process monitor that monitors the

- * underlying system process for terminataion.

- */

-public class RuntimeProcess extends PlatformObject implements IProcess {

-

-	private static final int MAX_WAIT_FOR_DEATH_ATTEMPTS = 10;

-	private static final int TIME_TO_WAIT_FOR_THREAD_DEATH = 500; // ms

-	

-	/**

-	 * The launch this process is contained in

-	 */

-	private ILaunch fLaunch;

-	

-	/**

-	 * The system process

-	 */

-	private Process fProcess;

-	

-	/**

-	 * The monitor which listens for this runtime process' system process

-	 * to terminate.

-	 */

-	private ProcessMonitor fMonitor;

-	

-	/**

-	 * The streams proxy for this process

-	 */

-	private StreamsProxy fStreamsProxy;

-

-	/**

-	 * The name of the process

-	 */

-	private String fName;

-

-	/**

-	 * Whether this process has been terminated

-	 */

-	private boolean fTerminated;

-	

-	/**

-	 * Table of client defined attributes

-	 */

-	private HashMap fAttributes;

-

-	/**

-	 * Constructs a RuntimeProcess on the given system process

-	 * with the given name, adding this process to the given

-	 * launch.

-	 */

-	public RuntimeProcess(ILaunch launch, Process process, String name) {

-		setLaunch(launch);

-		fProcess= process;

-		fName= name;

-		fTerminated= true;

-		try {

-			process.exitValue();

-		} catch (IllegalThreadStateException e) {

-			fTerminated= false;

-		}

-		fStreamsProxy = new StreamsProxy(this);

-		fMonitor = new ProcessMonitor(this);

-		launch.addProcess(this);

-		fireCreationEvent();

-	}

-

-	/**

-	 * @see ITerminate#canTerminate()

-	 */

-	public boolean canTerminate() {

-		return !fTerminated;

-	}

-

-	/**

-	 * Returns the error stream of the underlying system process (connected

-	 * to the standard error of the process).

-	 */

-	protected InputStream getErrorStream() {

-		return fProcess.getErrorStream();

-	}

-

-	/**

-	 * Returns the input stream of the underlying system process (connected

-	 * to the standard out of the process).

-	 */

-	protected InputStream getInputStream() {

-		return fProcess.getInputStream();

-	}

-

-	/**

-	 * Returns the output stream of the underlying system process (connected

-	 * to the standard in of the process).

-	 */

-	protected OutputStream getOutputStream() {

-		return fProcess.getOutputStream();

-	}

-	

-	/**

-	 * @see IProcess#getLabel()

-	 */

-	public String getLabel() {

-		return fName;

-	}

-	

-	/**

-	 * Sets the launch this process is contained in

-	 * 

-	 * @param launch the launch this process is contained in

-	 */

-	private void setLaunch(ILaunch launch) {

-		fLaunch = launch;

-	}

-

-	/**

-	 * @see IProcess#getLaunch()

-	 */

-	public ILaunch getLaunch() {

-		return fLaunch;

-	}

-

-	/**

-	 * Returns the underlying system process

-	 */

-	protected Process getSystemProcess() {

-		return fProcess;

-	}

-

-	/**

-	 * @see ITerminate#isTerminated()

-	 */

-	public boolean isTerminated() {

-		return fTerminated;

-	}

-

-	/**

-	 * @see ITerminate#terminate()

-	 */

-	public void terminate() throws DebugException {

-		if (!isTerminated()) {

-			fProcess.destroy();

-			fStreamsProxy.kill();

-			int attempts = 0;

-			while (attempts < MAX_WAIT_FOR_DEATH_ATTEMPTS) {

-				try {

-					if (fProcess != null) {

-						fProcess.exitValue(); // throws exception if process not exited

-					}

-					return;

-				} catch (IllegalThreadStateException ie) {

-				}

-				try {

-					Thread.sleep(TIME_TO_WAIT_FOR_THREAD_DEATH);

-				} catch (InterruptedException e) {

-				}

-				attempts++;

-			}

-			// clean-up

-			fMonitor.killMonitoring();

-			IStatus status = new Status(IStatus.ERROR, DebugPlugin.PLUGIN_ID, DebugException.TARGET_REQUEST_FAILED, DebugCoreMessages.getString("RuntimeProcess.terminate_failed"), null);		 //$NON-NLS-1$

-			throw new DebugException(status);

-		}

-	}

-

-	/**

-	 * Notification that the system process associated with this process

-	 * has terminated.

-	 */

-	protected void terminated() {

-		fStreamsProxy.close();

-		fTerminated= true;

-		fProcess= null;

-		fireTerminateEvent();

-	}

-		

-	/**

-	 * @see IProcess#getStreamsProxy()

-	 */

-	public IStreamsProxy getStreamsProxy() {

-		return fStreamsProxy;

-	}

-	

-	/**

-	 * Fire a debug event marking the creation of this element.

-	 */

-	private void fireCreationEvent() {

-		fireEvent(new DebugEvent(this, DebugEvent.CREATE));

-	}

-

-	/**

-	 * Fire a debug event

-	 */

-	private void fireEvent(DebugEvent event) {

-		DebugPlugin manager= DebugPlugin.getDefault();

-		if (manager != null) {

-			manager.fireDebugEventSet(new DebugEvent[]{event});

-		}

-	}

-

-	/**

-	 * Fire a debug event marking the termination of this process.

-	 */

-	private void fireTerminateEvent() {

-		fireEvent(new DebugEvent(this, DebugEvent.TERMINATE));

-	}

-

-	/**

-	 * @see IProcess#setAttribute(String, String)

-	 */

-	public void setAttribute(String key, String value) {

-		if (fAttributes == null) {

-			fAttributes = new HashMap(5);

-		}

-		fAttributes.put(key, value);

-	}

-	

-	/**

-	 * @see IProcess#getAttribute(String)

-	 */

-	public String getAttribute(String key) {

-		if (fAttributes == null) {

-			return null;

-		}

-		return (String)fAttributes.get(key);

-	}

-	

-	/**

-	 * @see IAdaptable#getAdapter(Class)

-	 */

-	public Object getAdapter(Class adapter) {

-		if (adapter.equals(IProcess.class)) {

-			return this;

-		}

-		if (adapter.equals(IDebugTarget.class)) {

-			ILaunch launch = getLaunch();

-			IDebugTarget[] targets = launch.getDebugTargets();

-			for (int i = 0; i < targets.length; i++) {

-				if (this.equals(targets[i].getProcess())) {

-					return targets[i];

-				}

-			}

-			return null;

-		}

-		return super.getAdapter(adapter);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java
deleted file mode 100644
index f9486bc..0000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.eclipse.debug.internal.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import org.eclipse.debug.core.model.IStreamMonitor;

-import org.eclipse.debug.core.model.IStreamsProxy;

-import java.io.IOException;

-

-public class StreamsProxy implements IStreamsProxy {

-	/**

-	 * The monitor for the output stream (connected to standard out of the process)

-	 */

-	private OutputStreamMonitor fOutputMonitor;

-	/**

-	 * The monitor for the error stream (connected to standard error of the process)

-	 */

-	private OutputStreamMonitor fErrorMonitor;

-	/**

-	 * The monitor for the input stream (connected to standard in of the process)

-	 */

-	private InputStreamMonitor fInputMonitor;

-	/**

-	 * Records the open/closed state of communications with

-	 * the underlying streams.

-	 */

-	private boolean fClosed= false;

-	/**

-	 * Creates a <code>StreamsProxy</code> on the streams

-	 * of the given <code>IProcess</code>.

-	 */

-	public StreamsProxy(RuntimeProcess process) {

-		if (process == null) {

-			return;

-		}

-		fOutputMonitor= new OutputStreamMonitor(process.getInputStream());

-		fErrorMonitor= new OutputStreamMonitor(process.getErrorStream());

-		fInputMonitor= new InputStreamMonitor(process.getOutputStream());

-		fOutputMonitor.startMonitoring();

-		fErrorMonitor.startMonitoring();

-		fInputMonitor.startMonitoring();

-	}

-

-	/**

-	 * Causes the proxy to close all

-	 * communications between it and the

-	 * underlying streams after all remaining data

-	 * in the streams is read.

-	 */

-	protected void close() {

-		fClosed= true;

-		fOutputMonitor.close();

-		fErrorMonitor.close();

-		fInputMonitor.close();

-	}

-

-	/**

-	 * Causes the proxy to close all

-	 * communications between it and the

-	 * underlying streams immediately.

-	 * Data remaining in the streams is lost.

-	 */	

-	protected void kill() {

-		fClosed= true;

-		fOutputMonitor.kill();

-		fErrorMonitor.kill();

-	}

-

-	/**

-	 * @see IStreamsProxy#getErrorStreamMonitor()

-	 */

-	public IStreamMonitor getErrorStreamMonitor() {

-		return fErrorMonitor;

-	}

-

-	/**

-	 * @see IStreamsProxy#getOutputStreamMonitor()

-	 */

-	public IStreamMonitor getOutputStreamMonitor() {

-		return fOutputMonitor;

-	}

-

-	/**

-	 * @see IStreamsProxy#write(String)

-	 */

-	public void write(String input) throws IOException {

-		if (!fClosed) {

-			fInputMonitor.write(input);

-		} else {

-			throw new IOException();

-		}

-	}

-

-}

diff --git a/org.eclipse.debug.core/doc/hglegal.htm b/org.eclipse.debug.core/doc/hglegal.htm
deleted file mode 100644
index d9e453f..0000000
--- a/org.eclipse.debug.core/doc/hglegal.htm
+++ /dev/null
@@ -1,13 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <title>Legal Notices</title>

-</head>

-<body>

-

-<h3>

-<a NAME="Notices"></a>Notices</h3>

-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.

-</body>

-</html>

diff --git a/org.eclipse.debug.core/doc/ngibmcpy.gif b/org.eclipse.debug.core/doc/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/org.eclipse.debug.core/doc/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core.html
deleted file mode 100644
index 75b44f3..0000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>README Debug User Interface Extension Points</title>

-</head>

-

-<body link="#0000FF" vlink="#800080">

-

-<h1 align="center">Eclipse Debug Platform</h1>

-

-<p>The debug platform plug-in, <b>org.eclipse.debug.core</b>,

-defines a model for language independent debugging. A set of common debug artifacts and

-actions are defined by interfaces, for which specific debug architectures may provide

-implementations. For example, some common artifacts are threads, stack frames, and

-variables; some common actions are terminate, suspend, step, and resume. A debug

-architecture, such as the Java Platform Debug Architecture (JPDA), can provide an implementation of the

-artifacts and actions. The debug plug-in also provides a facilities to support

-breakpoint management, expression management, and program launching.<br>

-</p>

-

-<hr>

-

-<h1>Extension Points</h1>

-

-<p>The following extension points are used to support and extend the debug infrastructure:

-

-<ul>

-  <li><a href="org_eclipse_debug_core_breakpoints.html">org.eclipse.debug.core.breakpoints</a></li>

-  <li><a href="org_eclipse_debug_core_launch_configuration_types.html">org.eclipse.debug.core.launchConfigurationTypes</a></li>

-  <li><a href="org_eclipse_debug_core_source_locators.html">org.eclipse.debug.core.sourceLocators</a></li>

-  <li><a href="org_eclipse_debug_core_status_handlers.html">org.eclipse.debug.core.statusHandlers</a></li>

-</ul>

-

-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corp. 2000, 2001. All Rights Reserved."

-border="0" width="195" height="12"></a></p>

-</body>

-</html>

diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core_breakpoints.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core_breakpoints.html
deleted file mode 100644
index e9e4db8..0000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core_breakpoints.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>README Breakpoints Extension Point</title>

-</head>

-

-<body link="#0000FF" vlink="#800080">

-

-<h1 align="center">Breakpoints</h1>

-

-<p><b><i>Identifier: </i></b>org.eclipse.debug.core.breakpoints </p>

-

-<p><b><i>Description: </i></b>This extension point provides a

-mechanism for defining new types of breakpoints.</p>

-

-<p><b><i>Configuration Markup:</i></b> </p>

-

-<pre>

-<tt>&nbsp;&nbsp; &lt;!ATTLIST breakpoint</tt> 

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; markerType&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>&gt;

-</pre>

-

-<ul>

- <li><code>id</code> specifies a unique identifier for this breakpoint type.</li>

- <li><code>markerType</code> specifies the fully qualified identifier (id) of

-  the corresponding marker definition for breakpoints of this type.</li>

- <li><code>class</code> specifies the fully qualified name of the java class

-  that implements <code>IBreakpoint</code>.</li>

-</ul>

-

-<p><b><i>Examples:</i></b> </p>

-

-<p>The following is an example of a launch configuration type extension point: </p>

-

-<pre>

-&lt;extension point="org.eclipse.debug.core.breakpoints"&gt;

-   &lt;breakpoint 

-      id="com.example.ExampleBreakpoint"

-      markerType="com.example.ExampleBreakpointMarker"

-      class="com.example.ExampleBreakpointImpl"&gt;

-   &lt;/breakpoint&gt;

-&lt;/extension&gt;

-</pre>

-

-<p>In the example above, the specified type of breakpoint is implemeted by the

-class "com.example.BreakpointImpl". There is an associated

-marker definition for "com.example.ExampleBreakpointMarker", defining

-the attributes of this breakpoint.

-</p>

-

-<p><b><i>API Information: </i></b>Value of the attribute <b>class</b> must be a fully

-qualified name of a Java class that implements the interface <b>

-org.eclipse.debug.core.model.IBreakpoint</b>.

-</p>

-

-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corp. 2000, 2001. All Rights Reserved."

-border="0" width="195" height="12"></a></p>

-</body>

-</html>

diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core_launch_configuration_types.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core_launch_configuration_types.html
deleted file mode 100644
index 1e7e63e..0000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core_launch_configuration_types.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>README Launch Configuration Types Extension Point</title>

-</head>

-

-<body link="#0000FF" vlink="#800080">

-

-<h1 align="center">Launch Configuration Types</h1>

-

-<p><b><i>Identifier: </i></b>org.eclipse.debug.core.launchConfigurationTypes </p>

-

-<p><b><i>Description: </i></b>This extension point provides a configurable

-mechanism for launching applications. Each launch configuration type has a name,

-supports one or more modes (run and or debug), and specifies a delegate

-responsible for the implementation of launching an application.</p>

-

-<p><b><i>Configuration Markup:</i></b> </p>

-

-<pre>

-<tt>&nbsp;&nbsp; &lt;!ELEMENT launchConfigurationType (fileExtension?)</tt>&gt;

-<tt>&nbsp;&nbsp; &lt;!ATTLIST launchConfigurationType</tt> 

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delegate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>&gt;

-</pre>

-

-<ul>

- <li><code>id</code> specifies a unique identifier for this launch configuration

-  type.</li>

- <li><code>delegate</code> specifies the fully qualified name of the java class

-  that implements <code>ILaunchConfigurationDelegate</code>. Launch configuration

-  instances of this type will delegate to instances of this class

-  to perform launching.</li>

- <li><code>modes</code> specifies a comma separated list of the modes this

-  type of launch configuration suports - <code>"run"</code> and/or <code>"debug"</code>.</li>

- <li><code>name</code> specifies a human readable name for this type

-  of launch configuration.</li>

-</ul>

-

-<pre>

-<tt>&nbsp;&nbsp; &lt;!ATTLIST fileExtension</tt> 

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extension CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default&nbsp;&nbsp; CDATA (true | false) #IMPLIED</tt>&gt;

-</pre>

-

-<ul>

- <li><code>extension</code> specifies a file extension that this launch configuration type

-  can be used for.</li>

- <li><code>default</code> specifies whether this launch configuration type should be

-  the default launch configuration type for the specified file extension. Defaults

-  to false if not specified.</li>

-</ul>

-

-<p><b><i>Examples:</i></b> </p>

-

-<p>The following is an example of a launch configuration type extension point: </p>

-

-<pre>

-&lt;extension point="org.eclipse.debug.core.launchConfigurationTypes"&gt;

-   &lt;launchConfigurationType 

-      id="com.example.ExampleIdentifier"

-      delegate="com.example.ExampleLaunchConfigurationDelegate"

-      modes="run, debug"

-      name="Example Application"

-      &lt;fileExtension

-         extension="txt"

-         default=true&gt;

-      &lt;fileExtension

-         extension="gif"

-         default=false&gt;

-   &lt;/launchConfigurationType&gt;

-&lt;/extension&gt;

-</pre>

-

-<p>In the example above, the specified type of launch configuration supports both run and debug modes.

-The launch configuartion is applicable to txt and gif files, and is the default launch configuration

-for txt files.

-</p>

-

-<p><b><i>API Information: </i></b>Value of the attribute <b>delegate</b> must be a fully

-qualified name of a Java class that implements the interface <b>

-org.eclipse.debug.core.model.ILaunchConfigurationDelegate</b>.

-</p>

-

-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corp. 2000, 2001. All Rights Reserved."

-border="0" width="195" height="12"></a></p>

-</body>

-</html>

diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core_source_locators.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core_source_locators.html
deleted file mode 100644
index 4a0e9cb..0000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core_source_locators.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>README Source Locators Extension Point</title>

-</head>

-

-<body link="#0000FF" vlink="#800080">

-

-<h1 align="center">Source Locators</h1>

-

-<p><b><i>Identifier: </i></b>org.eclipse.debug.core.sourceLocators</p>

-

-<p><b><i>Description: </i></b>This extension point provides a

- mechanism specifying a source locator to be used with a launch

- configuration.</p>

-

-<p><b><i>Configuration Markup:</i></b> </p>

-

-<pre>

-<tt>&nbsp;&nbsp; &lt;!ELEMENT sourceLocator</tt>&gt;

-<tt>&nbsp;&nbsp; &lt;!ATTLIST sourceLocator</tt> 

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>&gt;

-</pre>

-

-<ul>

- <li><code>id</code> specifies a unique identifier for this source locator.</li>

- <li><code>class</code> specifies the fully qualified name of the Java class

-   that implements <code>IPersistableSourceLocator</code>.</li>

- <li><code>name</code> a human readable name, describing the type of

-   this source locator.</li>

-</ul>

-

-<p><b><i>Examples:</i></b> </p>

-

-<p>The following is an example of a source locator extension point: </p>

-

-<pre>

-  &lt;extension point="org.eclipse.debug.core.sourceLocators"&gt;

-    &lt;sourceLocator 

-       id="com.example.ExampleIdentifier"

-       class="com.example.ExampleSourceLocator"

-       name="Example Source Locator"

-    &lt;/sourceLocator&gt;

-  &lt;/extension&gt;

-</pre>

-

-

-<p><b><i>API Information: </i></b>Value of the attribute <b>class</b> must be a fully

-qualified name of a Java class that implements the interface <b>

-org.eclipse.debug.core.model.IPersistableSourceLocator</b>.

-</p>

-

-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corp. 2000, 2001. All Rights Reserved."

-border="0" width="195" height="12"></a></p>

-</body>

-</html>

diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core_status_handlers.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core_status_handlers.html
deleted file mode 100644
index 0aaffba..0000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core_status_handlers.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>README Status Handlers Extension Point</title>

-</head>

-

-<body link="#0000FF" vlink="#800080">

-

-<h1 align="center">Status Handlers</h1>

-

-<p><b><i>Identifier: </i></b>org.eclipse.debug.core.statusHandlers</p>

-

-<p><b><i>Description: </i></b>This extension point provides a generic

- mechanism for separating the generation and resolutoin of an error.

- The interaction between the source of the error, and the resolution

- is client defined. It is a client reponsibility to lookup and delegate

- to status handlers when an error condition occurrs.</p>

-

-<p><b><i>Configuration Markup:</i></b> </p>

-

-<pre>

-<tt>&nbsp;&nbsp; &lt;!ELEMENT statusHandler</tt>&gt;

-<tt>&nbsp;&nbsp; &lt;!ATTLIST statusHandler</tt> 

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED</tt>&gt;

-</pre>

-

-<ul>

-  <li><code>id</code> specifies a unique identifier for this status handler.</li>

-  <li><code>class</code> specifies the fully qualified name of the java class

-    that implements <code>IStatusHandler</code>.</li>

-  <li><code>plugin</code> plug-in identifier that corresponds to the

-    plug-in of the status this handler is registered for (i.e.

-    <code>IStatus.getPlugin()</code>).</li>

-  <li><code>code</code> specifies the status code this handler

-    is registered for.</li>

-</ul>

-

-<p><b><i>Examples:</i></b> </p>

-

-<p>The following is an example of a status handler extension point: </p>

-

-<pre>

-  &lt;extension point="org.eclipse.debug.core.statusHandlers"&gt;

-    &lt;statusHandler 

-       id="com.example.ExampleIdentifier"

-       class="com.example.ExampleStatusHandler"

-       plugin="com.example.ExamplePluginId"

-       code="123"

-    &lt;/statusHandler&gt;

-  &lt;/extension&gt;

-</pre>

-

-<p>In the example above, the specified status handler will be registered

- to handle status objects with a plug-in identifier of <code>com.example.ExamplePluginId</code>

- and a status code of <code>123</code>.

-</p>

-

-<p><b><i>API Information: </i></b>Value of the attribute <b>class</b> must be a fully

-qualified name of a Java class that implements the interface <b>

-org.eclipse.debug.core.IStatusHandler</b>.

-</p>

-

-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corp. 2000, 2001. All Rights Reserved."

-border="0" width="195" height="12"></a></p>

-</body>

-</html>

diff --git a/org.eclipse.debug.core/plugin.properties b/org.eclipse.debug.core/plugin.properties
deleted file mode 100644
index 5c2cb23..0000000
--- a/org.eclipse.debug.core/plugin.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#########################################

-# (c) Copyright IBM Corp. 2000, 2001.

-# All Rights Reserved.

-#########################################

-

-pluginName=Debug Core

-launcherExtensionPointName=Launcher

-breakpointExtensionPointName=Breakpoint

-launchConfigurationTypeName=Launch Configuration Type

-statusHandlerExtensionPointName=Status Handler

-sourceLocatorsExtensionPointName=Source Locator
\ No newline at end of file
diff --git a/org.eclipse.debug.core/plugin.xml b/org.eclipse.debug.core/plugin.xml
deleted file mode 100644
index e3f0075..0000000
--- a/org.eclipse.debug.core/plugin.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!-- File written by PDE 1.0 -->

-<plugin

-   id="org.eclipse.debug.core"

-   name="%pluginName"

-   version="2.0.0"

-   provider-name="Object Technology International, Inc."

-   class="org.eclipse.debug.core.DebugPlugin">

-<!-- Required plugins -->

-<requires>

-   <import plugin="org.apache.xerces"/>

-   <import plugin="org.eclipse.core.resources"/>

-</requires>

-

-<!-- Runtime -->

-<runtime>

-   <library name="dtcore.jar">

-      <export name="*"/>

-   </library>

-</runtime>

-

-<!-- Extension points -->

-<extension-point id="launchers" name="%launcherExtensionPointName"/>

-<extension-point id="breakpoints" name="%breakpointExtensionPointName"/>

-<extension-point id="launchConfigurationTypes" name="%launchConfigurationTypeName"/>

-<extension-point id="statusHandlers" name="%statusHandlerExtensionPointName"/>

-<extension-point id="sourceLocators" name="%sourceLocatorsExtensionPointName"/>

-

-<!-- Extensions -->

-<extension id="breakpointMarker" point="org.eclipse.core.resources.markers">

-   <super type="org.eclipse.core.resources.marker"/>

-   <persistent value="true"/>

-   <attribute name="org.eclipse.debug.core.modelIdentifier"/>

-   <attribute name="org.eclipse.debug.core.enabled"/>

-   <attribute name="org.eclipse.debug.core.registered"/>

-   <attribute name="org.eclipse.debug.core.persisted"/>

-</extension>

-<extension id="lineBreakpointMarker" point="org.eclipse.core.resources.markers">

-   <super type="org.eclipse.debug.core.breakpointMarker"/>

-   <super type="org.eclipse.core.resources.textmarker"/>

-   <persistent value="true"/>

-</extension>

-</plugin>

diff --git a/org.eclipse.debug.core/scripts/exportplugin.xml b/org.eclipse.debug.core/scripts/exportplugin.xml
deleted file mode 100644
index 9f9b1e6..0000000
--- a/org.eclipse.debug.core/scripts/exportplugin.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- Export a jar of .class files for the org.eclipse.debug.core Eclipse plugin

-     along with other important plugin files to the "plugin-export" subdirectory

-     of the target Eclipse installation -->

-<project name="org.eclipse.debug.core" default="export" basedir="..">

-

-	<!-- Set the timestamp and important properties -->

-	<target name="init">

-		<tstamp/>

-		<property name="destdir" value="../../plugin-export" />

-		<property name="dest"  value="${destdir}/org.eclipse.debug.core" />

-	</target>

-

-	<!-- Create the jar of .class files, and copy other important files to export dir -->

-	<target name="export" depends="init">

-		<mkdir dir="${destdir}" />

-		<delete dir="${dest}" />

-		<mkdir dir="${dest}" />

-		<jar 

-			jarfile="${dest}/dtcore.jar"

-			basedir="bin"

-		/>

-		<!-- Create the source zip -->

-		<zip zipfile="${dest}/dtcoresrc.zip">

-			<fileset dir="core"/>

-		</zip>		

-		<copy file="plugin.xml" todir="${dest}"/>

-		<copy file="plugin.properties" todir="${dest}"/>

-		<copy file=".classpath" todir="${dest}"/>

-		<copy file=".options" todir="${dest}"/>

-	</target>

-	

-</project>