This commit was manufactured by cvs2svn to create tag 'v20071015'.

Sprout from master 2007-10-10 21:14:01 UTC Michael Rennie <mrennie> 'verified bugs'
Delete:
    org.eclipse.core.variables/.classpath
    org.eclipse.core.variables/.cvsignore
    org.eclipse.core.variables/.project
    org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.core.variables/.settings/org.eclipse.pde.prefs
    org.eclipse.core.variables/META-INF/MANIFEST.MF
    org.eclipse.core.variables/about.html
    org.eclipse.core.variables/build.properties
    org.eclipse.core.variables/component.xml
    org.eclipse.core.variables/plugin.properties
    org.eclipse.core.variables/plugin.xml
    org.eclipse.core.variables/schema/dynamicVariables.exsd
    org.eclipse.core.variables/schema/valueVariables.exsd
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ContributedValueVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java
    org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties
    org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java
    org.eclipse.core.variables/src/org/eclipse/core/variables/package.html
    org.eclipse.debug.examples.core/.classpath
    org.eclipse.debug.examples.core/.cvsignore
    org.eclipse.debug.examples.core/.project
    org.eclipse.debug.examples.core/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.debug.examples.core/META-INF/MANIFEST.MF
    org.eclipse.debug.examples.core/about.html
    org.eclipse.debug.examples.core/build.properties
    org.eclipse.debug.examples.core/pdavm/pda.pl
    org.eclipse.debug.examples.core/pdavm/tests/vmtest2.pda
    org.eclipse.debug.examples.core/pdavm/tests/vmtest3.pda
    org.eclipse.debug.examples.core/pdavm/tests/vmtest6.pda
    org.eclipse.debug.examples.core/pdavm/tests/vmtest8.pda
    org.eclipse.debug.examples.core/pdavm/tests/vmtests.pl
    org.eclipse.debug.examples.core/plugin.xml
    org.eclipse.debug.examples.core/samples/counter.pda
    org.eclipse.debug.examples.core/samples/drop.pda
    org.eclipse.debug.examples.core/samples/example.pda
    org.eclipse.debug.examples.core/samples/fibonacci.pda
    org.eclipse.debug.examples.core/samples/structures.pda
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/DebugCorePlugin.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDALineBreakpoint.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDARunToLineBreakpoint.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDAWatchpoint.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/launcher/PDALaunchDelegate.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/IPDAEventListener.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArray.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArrayEntry.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugElement.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugTarget.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackFrame.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackValue.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAThread.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAValue.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAVariable.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/WordStructureDelegate.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupDirector.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupParticipant.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourcePathComputerDelegate.java
    org.eclipse.debug.examples.ui/.classpath
    org.eclipse.debug.examples.ui/.cvsignore
    org.eclipse.debug.examples.ui/.project
    org.eclipse.debug.examples.ui/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.debug.examples.ui/META-INF/MANIFEST.MF
    org.eclipse.debug.examples.ui/about.html
    org.eclipse.debug.examples.ui/build.properties
    org.eclipse.debug.examples.ui/icons/full/dlcl16/pop.gif
    org.eclipse.debug.examples.ui/icons/full/dlcl16/push.gif
    org.eclipse.debug.examples.ui/icons/full/elcl16/pop.gif
    org.eclipse.debug.examples.ui/icons/full/elcl16/push.gif
    org.eclipse.debug.examples.ui/icons/full/obj16/pda.gif
    org.eclipse.debug.examples.ui/plugin.xml
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/DebugUIPlugin.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/AdapterFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/ModelProxyFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetContentProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetProxy.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDAThreadEventHandler.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDABreakpointAdapter.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAEditorAdapterFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDARunToLineAdapter.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/AnnotationHover.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistProcessor.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistant.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditor.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditorMessages.properties
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAScanner.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDASourceViewerConfiguration.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PopFrameActionDelegate.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/TextHover.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/WordFinder.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDALaunchShortcut.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDAMainTab.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDATabGroup.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/presentation/PDAModelPresentation.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/DataStackView.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopAction.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushAction.java
    org.eclipse.ui.console/.classpath
    org.eclipse.ui.console/.cvsignore
    org.eclipse.ui.console/.project
    org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.ui.console/.settings/org.eclipse.pde.prefs
    org.eclipse.ui.console/META-INF/MANIFEST.MF
    org.eclipse.ui.console/about.html
    org.eclipse.ui.console/build.properties
    org.eclipse.ui.console/component.xml
    org.eclipse.ui.console/icons/full/clcl16/clear_co.gif
    org.eclipse.ui.console/icons/full/clcl16/lock_co.gif
    org.eclipse.ui.console/icons/full/clcl16/pin.gif
    org.eclipse.ui.console/icons/full/cview16/console_view.gif
    org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif
    org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif
    org.eclipse.ui.console/icons/full/dlcl16/pin.gif
    org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif
    org.eclipse.ui.console/icons/full/elcl16/clear_co.gif
    org.eclipse.ui.console/icons/full/elcl16/lock_co.gif
    org.eclipse.ui.console/icons/full/elcl16/new_con.gif
    org.eclipse.ui.console/icons/full/elcl16/pin.gif
    org.eclipse.ui.console/icons/full/elcl16/rem_co.gif
    org.eclipse.ui.console/icons/full/eview16/console_view.gif
    org.eclipse.ui.console/plugin.properties
    org.eclipse.ui.console/plugin.xml
    org.eclipse.ui.console/schema/consoleFactories.exsd
    org.eclipse.ui.console/schema/consolePageParticipants.exsd
    org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd
    org.eclipse.ui.console/scripts/exportplugin.xml
    org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink2.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html
    org.eclipse.ui.console/src/org/eclipse/ui/console/package.html
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.properties
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/HyperlinkUpdater.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java
    org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java
    org.eclipse.ui.externaltools/.classpath
    org.eclipse.ui.externaltools/.cvsignore
    org.eclipse.ui.externaltools/.project
    org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuildTab.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/IgnoreWhiteSpaceComparator.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/OpenExternalToolsConfigurations.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPreferenceInitializer.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/EditCommandDialog.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildProjectResolver.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeResolver.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/SystemPathResolver.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties
    org.eclipse.ui.externaltools/META-INF/MANIFEST.MF
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
    org.eclipse.ui.externaltools/about.html
    org.eclipse.ui.externaltools/build.properties
    org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
    org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/obj16/build_tab.gif
    org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
    org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
    org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
    org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
    org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.png
    org.eclipse.ui.externaltools/plugin.properties
    org.eclipse.ui.externaltools/plugin.xml
    org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
diff --git a/org.eclipse.core.variables/.classpath b/org.eclipse.core.variables/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/org.eclipse.core.variables/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.core.variables/.cvsignore b/org.eclipse.core.variables/.cvsignore
deleted file mode 100644
index 6938697..0000000
--- a/org.eclipse.core.variables/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-doc
diff --git a/org.eclipse.core.variables/.project b/org.eclipse.core.variables/.project
deleted file mode 100644
index efb82a1..0000000
--- a/org.eclipse.core.variables/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.variables</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6217d64..0000000
--- a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,88 +0,0 @@
-#Mon Sep 10 09:58:10 CDT 2007

-eclipse.preferences.version=1

-org.eclipse.jdt.core.builder.cleanOutputFolder=clean

-org.eclipse.jdt.core.builder.duplicateResourceTask=warning

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

-org.eclipse.jdt.core.circularClasspath=error

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2

-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

-org.eclipse.jdt.core.compiler.compliance=1.4

-org.eclipse.jdt.core.compiler.debug.lineNumber=generate

-org.eclipse.jdt.core.compiler.debug.localVariable=generate

-org.eclipse.jdt.core.compiler.debug.sourceFile=generate

-org.eclipse.jdt.core.compiler.doc.comment.support=disabled

-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100

-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning

-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning

-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore

-org.eclipse.jdt.core.compiler.problem.deprecation=warning

-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning

-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore

-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled

-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning

-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning

-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore

-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning

-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning

-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning

-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public

-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning

-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning

-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning

-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled

-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public

-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning

-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public

-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning

-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning

-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning

-org.eclipse.jdt.core.compiler.problem.nullReference=error

-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning

-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning

-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning

-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled

-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning

-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore

-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning

-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore

-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning

-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

-org.eclipse.jdt.core.compiler.problem.unusedImport=error

-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning

-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning

-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning

-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled

-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled

-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled

-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-org.eclipse.jdt.core.compiler.source=1.3

-org.eclipse.jdt.core.incompatibleJDKLevel=ignore

-org.eclipse.jdt.core.incompleteClasspath=error

diff --git a/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs b/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 7eebeb8..0000000
--- a/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,17 +0,0 @@
-#Tue Jan 30 11:38:48 CST 2007

-compilers.incompatible-environment=1

-compilers.p.build=1

-compilers.p.deprecated=1

-compilers.p.illegal-att-value=0

-compilers.p.missing-packages=0

-compilers.p.no-required-att=0

-compilers.p.not-externalized-att=1

-compilers.p.unknown-attribute=0

-compilers.p.unknown-class=1

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=1

-compilers.p.unresolved-ex-points=0

-compilers.p.unresolved-import=0

-compilers.p.unused-element-or-attribute=1

-compilers.use-project=true

-eclipse.preferences.version=1

diff --git a/org.eclipse.core.variables/META-INF/MANIFEST.MF b/org.eclipse.core.variables/META-INF/MANIFEST.MF
deleted file mode 100644
index 2144a0d..0000000
--- a/org.eclipse.core.variables/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.core.variables; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.core.variables.VariablesPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.core.internal.variables;x-internal:=true,
- org.eclipse.core.variables
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.3.0,4.0.0)"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/org.eclipse.core.variables/about.html b/org.eclipse.core.variables/about.html
deleted file mode 100644
index 4602330..0000000
--- a/org.eclipse.core.variables/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation 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
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.core.variables/build.properties b/org.eclipse.core.variables/build.properties
deleted file mode 100644
index bcf8553..0000000
--- a/org.eclipse.core.variables/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
-               plugin.properties,\
-               .,\
-               about.html,\
-               META-INF/
-source.. = src/
-src.includes = about.html,\
-               schema/
diff --git a/org.eclipse.core.variables/component.xml b/org.eclipse.core.variables/component.xml
deleted file mode 100644
index e68c3cd..0000000
--- a/org.eclipse.core.variables/component.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Eclipse Platform Core Variables">
- <plugin id="org.eclipse.core.variables" />
-
- <package name="org.eclipse.core.variables">
- 	<type name="IDynamicVariable" implement="false" />
- 	<type name="IDynamicVariableResolver" />
- 	<type name="IStringVariable" implement="false" />
- 	<type name="IStringVariableManager" implement="false" />
- 	<type name="IValueVariable" implement="false" />
- 	<type name="IValueVariableInitializer" />
- 	<type name="IValueVariableListener" />
- 	<type name="VariablesPlugin" instantiate="false" subclass="false" />
- </package>
- 
- <component-depends unrestricted="true"/>
-
-</component>
\ No newline at end of file
diff --git a/org.eclipse.core.variables/plugin.properties b/org.eclipse.core.variables/plugin.properties
deleted file mode 100644
index 88108aa..0000000
--- a/org.eclipse.core.variables/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=Core Variables
-providerName=Eclipse.org
-valueVariablesExtensionPointName=Value Variables
-dynamicVariablesExtensionPointName=Dynamic Variables
-eclipse_home.description=The location of the base installation for the running platform
diff --git a/org.eclipse.core.variables/plugin.xml b/org.eclipse.core.variables/plugin.xml
deleted file mode 100644
index 97246bb..0000000
--- a/org.eclipse.core.variables/plugin.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    <extension-point id="valueVariables" name="%valueVariablesExtensionPointName" schema="schema/valueVariables.exsd"/>
-   <extension-point id="dynamicVariables" name="%dynamicVariablesExtensionPointName" schema="schema/dynamicVariables.exsd"/>
-   <extension
-         point="org.eclipse.core.variables.dynamicVariables">
-      <variable
-            description="%eclipse_home.description"
-            name="eclipse_home"
-            resolver="org.eclipse.core.internal.variables.EclipseHomeVariableResolver"
-            supportsArgument="false"/>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.core.variables/schema/dynamicVariables.exsd b/org.eclipse.core.variables/schema/dynamicVariables.exsd
deleted file mode 100644
index 5168a89..0000000
--- a/org.eclipse.core.variables/schema/dynamicVariables.exsd
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.core.variables">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.core.variables" id="dynamicVariables" name="Dynamic String Substitution Variables"/>

-      </appInfo>

-      <documentation>

-         This extension point provides a mechanism for defining dynamic variables used in string substitution. The value of a dynamic variable is resolved at the time a string substitution is performed, with an optional argument.

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="variable" minOccurs="0" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  a fully qualified identifier of the target extension point

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  an optional identifier of the extension instance

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  an optional name of the extension instance

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="variable">

-      <complexType>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  specifies a unique name for this variable.

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="resolver" type="string" use="required">

-            <annotation>

-               <documentation>

-                  specifies a Java class which implements &lt;code&gt;org.eclipse.core.variables.IDynamicVariableResolver&lt;/code&gt;, which is used to determine the value of the variable

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="java" basedOn="org.eclipse.core.variables.IDynamicVariableResolver"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-         <attribute name="description" type="string" use="required">

-            <annotation>

-               <documentation>

-                  specifies a human-readable description of this variable

-               </documentation>

-               <appInfo>

-                  <meta.attribute translatable="true"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-         <attribute name="supportsArgument" type="boolean">

-            <annotation>

-               <documentation>

-                  Whether this variable supports an argument. When unspecified, the implied value is &lt;code&gt;true&lt;/code&gt;.

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="since"/>

-      </appInfo>

-      <documentation>

-         3.0

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is a definition of a dynamic variable that resolves to the name of the selected resource:

-&lt;pre&gt;

- &lt;extension point=&quot;org.eclipse.core.variables.dynamicVariables&quot;&gt;

-   &lt;variable 

-      name=&quot;resource_name&quot;

-      expanderClass=&quot;com.example.ResourceNameExpander&quot;

-      description=&quot;The name of the selected resource&quot;&gt;

-   &lt;/variable&gt;

- &lt;/extension&gt;

-&lt;/pre&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         Value of the attribute &lt;b&gt;resolver&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.core.variables.IDynamicVariableResolver&lt;/b&gt;.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         Copyright (c) 2003, 2005 IBM Corporation and others.&lt;br&gt;

-All rights reserved. This program and the accompanying materials are made 

-available under the terms of the Eclipse Public License v1.0 which 

-accompanies this distribution, and is available at 

-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/org.eclipse.core.variables/schema/valueVariables.exsd b/org.eclipse.core.variables/schema/valueVariables.exsd
deleted file mode 100644
index 7dd314c..0000000
--- a/org.eclipse.core.variables/schema/valueVariables.exsd
+++ /dev/null
@@ -1,156 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.core.variables">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.core.variables" id="valueVariables" name="Value Variables"/>
-      </appInfo>
-      <documentation>
-         This extension point provides a mechanism for defining variables used for string substitution. A value variable has a static value.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="variable">
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies a unique name for this variable.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="readOnly" type="boolean">
-            <annotation>
-               <documentation>
-                  Specifies whether this variable is read only. When true, this variable&apos;s value will always be derived from the extension and cannot be edited by the user. When false, this variable&apos;s value will be initialized from any &lt;code&gt;initialValue&lt;/code&gt; attribtue or initializer class, and can be modified by the user. Once a read-write variable is modified, it&apos;s value is persisted and overrides any value specified by an extension&apos;s &lt;code&gt;initialValue&lt;/code&gt; or initializer class. When unspecified, the value of this attribute is &lt;code&gt;false&lt;/code&gt;. This attribute was added in the 3.3 release.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="initialValue" type="string">
-            <annotation>
-               <documentation>
-                  specifies the initial value for this variable. When specified, an &lt;code&gt;initializerClass&lt;/code&gt; attribute must not be specified.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="initializerClass" type="string">
-            <annotation>
-               <documentation>
-                  specifies the fully qualified name of the Java class that implements &lt;code&gt;org.eclipse.core.variables.IValueVariableInitializer&lt;/code&gt;. When specified, an &lt;code&gt;initialValue&lt;/code&gt; attribute must not be specified.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.core.variables.IValueVariableInitializer"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  specifies a human-readable description of this variable.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a value variable contribution with an initial value:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.core.variables.valueVariables&quot;&gt;
-  &lt;variable
-   name=&quot;FOO_HOME&quot;
-   initialValue=&quot;/usr/local/foo&quot;&gt;
-  &lt;/variable&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified variable is created with the initial value &quot;/usr/local/foo&quot;.
-
-         The following is an example of a value variable contribution with an initializer class:
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.core.variables.valueVariables&quot;&gt;
-  &lt;variable
-   name=&quot;FOO_HOME&quot;
-   initializerClass=&quot;com.example.FooLocator&quot;&gt;
-  &lt;/variable&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the variable FOO_HOME is created and the class &quot;com.example.FooLocator&quot; will be
-used to initialize the value the first time it&apos;s requested.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         Value of the attribute &lt;b&gt;initializerClass&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.core.variables.IValueVariableInitializer&lt;/b&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2003, 2006 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies this distribution, and is available at 
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ContributedValueVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ContributedValueVariable.java
deleted file mode 100644
index f53bf67..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ContributedValueVariable.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.variables.IValueVariable;
-import org.eclipse.core.variables.IValueVariableInitializer;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Implementation of a value variable.
- */
-public class ContributedValueVariable extends StringVariable implements IValueVariable {
-	
-	/**
-	 * Variable value or <code>null</code> if none 
-	 */
-	private String fValue;
-	
-	/**
-	 * Whether this variable's value has been initialized
-	 */
-	private boolean fInitialized = false;
-	
-	/**
-	 * Whether this variable is read only.  If true, users cannot change the value.
-	 */
-	private boolean fReadOnly;
-	
-	/**
-	 * Constructs a new value variable with the given name, description, read only
-	 * property and associated configuration element.  The value will be initialized
-	 * from the configuration element the first time getValue() is called.
-	 * 
-	 * @param name variable name
-	 * @param description variable description or <code>null</code>
-	 * @param readOnly whether the variable should be a read only variable
-	 * @param configurationElement configuration element
-	 */
-	public ContributedValueVariable(String name, String description, boolean readOnly, IConfigurationElement configurationElement) {
-		super(name, description, configurationElement);
-		fReadOnly = readOnly;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#setValue(java.lang.String)
-	 */
-	public void setValue(String value) {
-		if (!isReadOnly() || !isInitialized()){
-			fValue = value;
-			setInitialized(true);
-			StringVariableManager.getDefault().notifyChanged(this);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#getValue()
-	 */
-	public String getValue() {
-		if (!isInitialized()) {
-			initialize();
-		}
-		return fValue;
-	}
-
-	/**
-	 * Initialize this variable's value from the configuration element.
-	 */
-	private void initialize() {
-		if (getConfigurationElement() != null) {
-			// check for a explicit value specified in plug-in XML
-			String value = getConfigurationElement().getAttribute("initialValue"); //$NON-NLS-1$
-			if (value == null) {
-				// check for initializer
-				String className = getConfigurationElement().getAttribute("initializerClass"); //$NON-NLS-1$
-				if (className != null) {
-					try {
-						Object object = getConfigurationElement().createExecutableExtension("initializerClass"); //$NON-NLS-1$
-						if (object instanceof IValueVariableInitializer) {
-							IValueVariableInitializer initializer = (IValueVariableInitializer)object;
-							initializer.initialize(this);
-						} else {
-							VariablesPlugin.logMessage(NLS.bind("Unable to initialize variable {0} - initializer must be an instance of IValueVariableInitializer.", new String[]{getName()}), null); //$NON-NLS-1$
-						}
-					} catch (CoreException e) {
-						VariablesPlugin.logMessage(NLS.bind("Unable to initialize variable {0}",new String[]{getName()}), e); //$NON-NLS-1$
-					}
-				}
-			} else {
-				setValue(value);
-			}
-		}
-		setInitialized(true);
-	}
-
-	/**
-	 * Returns whether this variable has been initialized with a value by one of:
-	 * <ul>
-	 * <li><code>setValue(String)</code></li>
-	 * <li>its configuration element's <code>initialValue</code> attribute</li>
-	 * <li>its configuration element's initializer</li>
-	 * </ul>
-	 * @return whether this variable has been initialized with a value
-	 */	
-	protected boolean isInitialized() {
-		return fInitialized;
-	} 
-	
-	/**
-	 * Sets whether this variable has been initialized with a value.
-	 *  
-	 * @param initialized whether this variable has been initialized
-	 */
-	protected void setInitialized(boolean initialized) {
-		fInitialized = initialized;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#isReadOnly()
-	 */
-	public boolean isReadOnly() {
-		return fReadOnly;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#isContributed()
-	 */
-	public boolean isContributed() {
-		return getConfigurationElement() != null;
-	}
-
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java
deleted file mode 100644
index f2d48d8..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Dynamic variable
- */
-public class DynamicVariable extends StringVariable implements IDynamicVariable {
-	
-	/**
-	 * Resolver, or <code>null</code> until needed
-	 */
-	private IDynamicVariableResolver fResolver;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IContextVariable#getValue(java.lang.String)
-	 */
-	public String getValue(String argument) throws CoreException {
-		if (!supportsArgument()) {
-			// check for an argument - not supported
-			if (argument != null && argument.length() > 0) {
-				throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.DynamicVariable_0, new String[]{argument, getName()}), null)); 
-			}
-		}
-		if (fResolver == null) {
-			String name = getConfigurationElement().getAttribute("resolver"); //$NON-NLS-1$
-			if (name == null) {
-				throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind("Contributed context variable {0} must specify a resolver.",new String[]{getName()}), null)); //$NON-NLS-1$
-			}
-			Object object = getConfigurationElement().createExecutableExtension("resolver"); //$NON-NLS-1$
-			if (object instanceof IDynamicVariableResolver) {
-				fResolver = (IDynamicVariableResolver)object;
-			} else {
-				throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind("Contributed context variable resolver for {0} must be an instance of IContextVariableResolver.",new String[]{getName()}), null)); //$NON-NLS-1$
-			}
-		}
-		return fResolver.resolveValue(this, argument);
-	}
-
-	/**
-	 * Constructs a new context variable.
-	 * 
-	 * @param name variable name
-	 * @param description variable description or <code>null</code>
-	 * @param configurationElement configuration element
-	 */
-	public DynamicVariable(String name, String description, IConfigurationElement configurationElement) {
-		super(name, description, configurationElement);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IDynamicVariable#supportsArgument()
-	 */
-	public boolean supportsArgument() {
-		String arg = getConfigurationElement().getAttribute("supportsArgument"); //$NON-NLS-1$
-		return arg == null || Boolean.valueOf(arg).booleanValue();
-	}
-	
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java
deleted file mode 100644
index 17ca4a1..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.osgi.service.datalocation.Location;
-
-/**
- * Resolver for ${eclipse_home}
- * 
- * @since 3.2
- */
-public class EclipseHomeVariableResolver implements IDynamicVariableResolver {
-
-    public String resolveValue(IDynamicVariable variable, String argument) throws CoreException {
-        Location installLocation = Platform.getInstallLocation();
-        if (installLocation != null) {
-            URL url = installLocation.getURL();
-            if (url != null) {
-                String file = url.getFile();
-                if (file.length() != 0) {
-                    return file;
-                }
-            }
-        }
-        return null;
-    }
-
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java
deleted file mode 100644
index 94bd5d7..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Stack;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IStringVariableManager;
-import org.eclipse.core.variables.IValueVariable;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Performs string substitution for context and value variables.
- */
-public class StringSubstitutionEngine {
-	
-	// delimiters
-	private static final String VARIABLE_START = "${"; //$NON-NLS-1$
-	private static final char VARIABLE_END = '}'; 
-	private static final char VARIABLE_ARG = ':'; 
-	// parsing states
-	private static final int SCAN_FOR_START = 0;
-	private static final int SCAN_FOR_END = 1;
-	
-	/**
-	 * Resulting string
-	 */
-	private StringBuffer fResult;
-	
-	/**
-	 * Whether substitutions were performed
-	 */
-	private boolean fSubs;
-	
-	/**
-	 * Stack of variables to resolve
-	 */
-	private Stack fStack;
-	
-	class VariableReference {
-		
-		// the text inside the variable reference
-		private StringBuffer fText;
-		
-		public VariableReference() {
-			fText = new StringBuffer();
-		}
-		
-		public void append(String text) {
-			fText.append(text);
-		}
-		
-		public String getText() {
-			return fText.toString();
-		}
-	
-	}
-	
-	/**
-	 * Performs recursive string substitution and returns the resulting string.
-	 * 
-	 * @param expression expression to resolve
-	 * @param reportUndefinedVariables whether to report undefined variables as an error
-	 * @param manager registry of variables
-	 * @return the resulting string with all variables recursively
-	 *  substituted
-	 * @exception CoreException if unable to resolve a referenced variable or if a cycle exists
-	 *  in referenced variables
-	 */
-	public String performStringSubstitution(String expression, boolean reportUndefinedVariables, boolean resolveVariables, IStringVariableManager manager) throws CoreException {
-		substitute(expression, reportUndefinedVariables, resolveVariables, manager);
-		List resolvedVariableSets = new ArrayList();
-		while (fSubs) {
-			HashSet resolved = substitute(fResult.toString(), reportUndefinedVariables, true, manager);			
-			
-			for(int i=resolvedVariableSets.size()-1; i>=0; i--) {
-				
-				HashSet prevSet = (HashSet)resolvedVariableSets.get(i);
-
-				if (prevSet.equals(resolved)) {
-					HashSet conflictingSet = new HashSet();
-					for (; i<resolvedVariableSets.size(); i++)
-						conflictingSet.addAll((HashSet)resolvedVariableSets.get(i));
-					
-					StringBuffer problemVariableList = new StringBuffer();
-					for (Iterator it=conflictingSet.iterator(); it.hasNext(); ) {
-						problemVariableList.append(it.next().toString());
-						problemVariableList.append(", "); //$NON-NLS-1$
-					}
-					problemVariableList.setLength(problemVariableList.length()-2); //truncate the last ", "
-					throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.REFERENCE_CYCLE_ERROR, NLS.bind(VariablesMessages.StringSubstitutionEngine_4, new String[]{problemVariableList.toString()}), null)); 
-				}				
-			}		
-			
-			resolvedVariableSets.add(resolved);			
-		}
-		return fResult.toString();
-	}
-	
-	/**
-	 * Performs recursive string validation to ensure that all of the variables
-	 * contained in the expression exist
-	 * @param expression expression to validate
-	 * @param manager registry of variables
-	 * @exception CoreException if a referenced variable does not exist or if a cycle exists
-	 *  in referenced variables
-	 */
-	public void validateStringVariables(String expression, IStringVariableManager manager) throws CoreException {
-		performStringSubstitution(expression, true, false, manager);
-	}
-	
-	/**
-	 * Makes a substitution pass of the given expression returns a Set of the variables that were resolved in this
-	 *  pass
-	 *  
-	 * @param expression source expression
-	 * @param reportUndefinedVariables whether to report undefined variables as an error
-	 * @param resolveVariables whether to resolve the value of any variables
-	 * @exception CoreException if unable to resolve a variable
-	 */
-	private HashSet substitute(String expression, boolean reportUndefinedVariables, boolean resolveVariables, IStringVariableManager manager) throws CoreException {
-		fResult = new StringBuffer(expression.length());
-		fStack = new Stack();
-		fSubs = false;
-		
-		HashSet resolvedVariables = new HashSet();
-
-		int pos = 0;
-		int state = SCAN_FOR_START;
-		while (pos < expression.length()) {
-			switch (state) {
-				case SCAN_FOR_START:
-					int start = expression.indexOf(VARIABLE_START, pos);
-					if (start >= 0) {
-						int length = start - pos;
-						// copy non-variable text to the result
-						if (length > 0) {
-							fResult.append(expression.substring(pos, start));
-						}
-						pos = start + 2;
-						state = SCAN_FOR_END;
-
-						fStack.push(new VariableReference());						
-					} else {
-						// done - no more variables
-						fResult.append(expression.substring(pos));
-						pos = expression.length();
-					}
-					break;
-				case SCAN_FOR_END:
-					// be careful of nested variables
-					start = expression.indexOf(VARIABLE_START, pos);
-					int end = expression.indexOf(VARIABLE_END, pos);
-					if (end < 0) {
-						// variables are not completed
-						VariableReference tos = (VariableReference)fStack.peek();
-						tos.append(expression.substring(pos));
-						pos = expression.length();
-					} else {
-						if (start >= 0 && start < end) {
-							// start of a nested variable
-							int length = start - pos;
-							if (length > 0) {
-								VariableReference tos = (VariableReference)fStack.peek();
-								tos.append(expression.substring(pos, start));
-							}
-							pos = start + 2;
-							fStack.push(new VariableReference());	
-						} else {
-							// end of variable reference
-							VariableReference tos = (VariableReference)fStack.pop();
-							String substring = expression.substring(pos, end);							
-							tos.append(substring);
-							resolvedVariables.add(substring);
-							
-							pos = end + 1;
-							String value= resolve(tos, reportUndefinedVariables, resolveVariables, manager);
-							if (value == null) {
-								value = ""; //$NON-NLS-1$
-							}
-							if (fStack.isEmpty()) {
-								// append to result
-								fResult.append(value);
-								state = SCAN_FOR_START;
-							} else {
-								// append to previous variable
-								tos = (VariableReference)fStack.peek();
-								tos.append(value);
-							}
-						}
-					}
-					break;
-			}
-		}
-		// process incomplete variable references
-		while (!fStack.isEmpty()) {
-			VariableReference tos = (VariableReference)fStack.pop();
-			if (fStack.isEmpty()) {
-				fResult.append(VARIABLE_START);
-				fResult.append(tos.getText());
-			} else {
-				VariableReference var = (VariableReference)fStack.peek();
-				var.append(VARIABLE_START);
-				var.append(tos.getText());
-			}
-		}
-		
-
-		return resolvedVariables;
-	}
-
-	/**
-	 * Resolve and return the value of the given variable reference,
-	 * possibly <code>null</code>. 
-	 * 
-	 * @param var
-	 * @param reportUndefinedVariables whether to report undefined variables as
-	 *  an error
-	 * @param resolveVariables whether to resolve the variables value or just to validate that this variable is valid
-	 * @param manager variable registry
-	 * @return variable value, possibly <code>null</code>
-	 * @exception CoreException if unable to resolve a value
-	 */
-	private String resolve(VariableReference var, boolean reportUndefinedVariables, boolean resolveVariables, IStringVariableManager manager) throws CoreException {
-		String text = var.getText();
-		int pos = text.indexOf(VARIABLE_ARG);
-		String name = null;
-		String arg = null;
-		if (pos > 0) {
-			name = text.substring(0, pos);
-			pos++;
-			if (pos < text.length()) {
-				arg = text.substring(pos);
-			} 
-		} else {
-			name = text;
-		}
-		IValueVariable valueVariable = manager.getValueVariable(name);
-		if (valueVariable == null) {
-			IDynamicVariable dynamicVariable = manager.getDynamicVariable(name);
-			if (dynamicVariable == null) {
-				// no variables with the given name
-				if (reportUndefinedVariables) {
-					throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.StringSubstitutionEngine_3, new String[]{name}), null)); 
-				} 
-				// leave as is
-				return getOriginalVarText(var);
-			} 
-			
-			if (resolveVariables) {
-				fSubs = true;
-				return dynamicVariable.getValue(arg);
-			} 
-			//leave as is
-			return getOriginalVarText(var);
-		} 
-		
-		if (arg == null) {
-			if (resolveVariables) {
-				fSubs = true;
-				return valueVariable.getValue();
-			} 
-			//leave as is
-			return getOriginalVarText(var);
-		} 
-		// error - an argument specified for a value variable
-		throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.StringSubstitutionEngine_4, new String[]{valueVariable.getName()}), null)); 
-	}
-
-	private String getOriginalVarText(VariableReference var) {
-		StringBuffer res = new StringBuffer(var.getText());
-		res.insert(0, VARIABLE_START);
-		res.append(VARIABLE_END);
-		return res.toString();
-	}
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java
deleted file mode 100644
index 498b411..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.variables.IStringVariable;
-
-/**
- * Common implementation of context and value variables
- */
-public abstract class StringVariable implements IStringVariable {
-	
-	/**
-	 * Variable name
-	 */
-	private String fName;
-	
-	/**
-	 * Variable description, or <code>null</code>
-	 */
-	private String fDescription;
-	
-	/**
-	 * Configuration element associated with this variable, or <code>null</code>
-	 */
-	private IConfigurationElement fConfigurationElement;
-
-	/**
-	 * Constructs a new variable with the given name, description and configuration element.
-	 * 
-	 * @param name variable name
-	 * @param description variable description, or <code>null</code>
-	 * @param configurationElement configuration element or <code>null</code>
-	 */
-	public StringVariable(String name, String description, IConfigurationElement configurationElement) {
-		fName = name;
-		fDescription = description;
-		fConfigurationElement = configurationElement;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariable#getName()
-	 */
-	public String getName() {
-		return fName;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariable#getDescription()
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-	
-	/**
-	 * Returns the configuration element associated with this variable, or <code>null</code>
-	 * if none.
-	 * 
-	 * @return configuration element or <code>null</code>
-	 */
-	protected IConfigurationElement getConfigurationElement() {
-		return fConfigurationElement;
-	}
-	
-	/**
-	 * @see IValueVariable#setDescription(String)
-	 * @param description
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
deleted file mode 100644
index 6338cda..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
+++ /dev/null
@@ -1,601 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
-import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IStringVariable;
-import org.eclipse.core.variables.IStringVariableManager;
-import org.eclipse.core.variables.IValueVariable;
-import org.eclipse.core.variables.IValueVariableListener;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.osgi.util.NLS;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Singleton string variable manager. 
- */
-public class StringVariableManager implements IStringVariableManager, IPropertyChangeListener {
-	
-	/**
-	 * Dynamic variables - maps variable names to variables.
-	 */
-	private Map fDynamicVariables;
-	
-	/**
-	 * Value variables - maps variable names to variables.
-	 */
-	private Map fValueVariables;
-	
-	/**
-	 * Variable listeners
-	 */
-	private ListenerList fListeners;
-	
-	// notifications
-	private static final int ADDED = 0;
-	private static final int CHANGED = 1;
-	private static final int REMOVED = 2;
-	
-	/**
-	 * Singleton variable manager.
-	 */
-	private static StringVariableManager fgManager; 
-	
-	// true during internal updates indicates that change notification
-	// should be suppressed/ignored.
-	private boolean fInternalChange = false;
-	
-	// Variable extension point constants
-	private static final String ATTR_NAME= "name"; //$NON-NLS-1$
-	private static final String ATTR_DESCRIPTION="description"; //$NON-NLS-1$
-	private static final String ATTR_READ_ONLY="readOnly"; //$NON-NLS-1$	
-	// Persisted variable XML constants
-	private static final String VALUE_VARIABLES_TAG= "valueVariables"; //$NON-NLS-1$
-	private static final String VALUE_VARIABLE_TAG= "valueVariable"; //$NON-NLS-1$
-	private static final String NAME_TAG= "name"; //$NON-NLS-1$
-	private static final String VALUE_TAG= "value"; //$NON-NLS-1$
-	private static final String DESCRIPTION_TAG="description"; //$NON-NLS-1$
-	private static final String READ_ONLY_TAG="readOnly"; //$NON-NLS-1$
-	// XML values
-	private static final String TRUE_VALUE= "true"; //$NON-NLS-1$
-	private static final String FALSE_VALUE= "false"; //$NON-NLS-1$
-	// preference store key for value variables
-	private static final String PREF_VALUE_VARIABLES= VariablesPlugin.getUniqueIdentifier() + ".valueVariables"; //$NON-NLS-1$	
-		
-	/**
-	 * Notifies a string variable listener in a safe runnable to handle
-	 * exceptions.
-	 */
-	class StringVariableNotifier implements ISafeRunnable {
-		
-		private IValueVariableListener fListener;
-		private int fType;
-		private IValueVariable[] fVariables;
-		
-		/**
-		 * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
-		 */
-		public void handleException(Throwable exception) {
-			IStatus status = new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, "An exception occurred during string variable change notification", exception); //$NON-NLS-1$
-			VariablesPlugin.log(status);
-		}
-
-		/**
-		 * @see org.eclipse.core.runtime.ISafeRunnable#run()
-		 */
-		public void run() throws Exception {
-			switch (fType) {
-				case ADDED:
-					fListener.variablesAdded(fVariables);
-					break;
-				case REMOVED:
-					fListener.variablesRemoved(fVariables);
-					break;
-				case CHANGED:
-					fListener.variablesChanged(fVariables);
-					break;
-			}			
-		}
-
-		/**
-		 * Notifies the given listener of the add/change/remove
-		 * 
-		 * @param listener the listener to notify
-		 * @param launch the launch that has changed
-		 * @param update the type of change
-		 */
-		public void notify(IValueVariable[] variables, int update) {
-			fVariables = variables;
-			fType = update;
-			Object[] copiedListeners= fListeners.getListeners();
-			for (int i= 0; i < copiedListeners.length; i++) {
-				fListener = (IValueVariableListener)copiedListeners[i];
-				SafeRunner.run(this);
-			}	
-			fVariables = null;
-			fListener = null;
-			// persist variables whenever there is an add/change/remove	
-			storeValueVariables();	
-		}
-	}	
-	
-	/**
-	 * Returns a new notifier.
-	 * 
-	 * @return a new notifier
-	 */
-	private StringVariableNotifier getNotifier() {
-		return new StringVariableNotifier();
-	}
-	
-	/**
-	 * Returns the default string variable manager
-	 * 
-	 * @return string variable manager
-	 */
-	public static StringVariableManager getDefault() {
-		if (fgManager == null) {
-			fgManager = new StringVariableManager();
-		}
-		return fgManager;
-	}
-	
-	/**
-	 * Constructs a new string variable manager. 
-	 */
-	private StringVariableManager() {
-		fListeners = new ListenerList();
-	}	
-
-	/**
-	 * Load contributed variables and persisted variables
-	 */
-	private synchronized void initialize() {
-		if (fDynamicVariables == null) {
-			fInternalChange = true;
-			fDynamicVariables = new HashMap(5);
-			fValueVariables = new HashMap(5);
-			loadContributedValueVariables();
-			loadPersistedValueVariables();
-			loadDynamicVariables();
-			VariablesPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(this);
-			fInternalChange = false;
-		}
-	}
-	
-	/**
-	 * Loads contributed dynamic variables
-	 */
-	private void loadDynamicVariables() {
-		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(VariablesPlugin.PI_CORE_VARIABLES, EXTENSION_POINT_DYNAMIC_VARIABLES);
-		IConfigurationElement elements[]= point.getConfigurationElements();
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			String name= element.getAttribute(ATTR_NAME);
-			if (name == null) {
-				VariablesPlugin.logMessage(NLS.bind("Variable extension missing required 'name' attribute: {0}", new String[] {element.getDeclaringExtension().getLabel()}), null); //$NON-NLS-1$
-				continue;
-			}
-			String description= element.getAttribute(ATTR_DESCRIPTION);
-			DynamicVariable variable= new DynamicVariable(name, description, element);
-			fDynamicVariables.put(variable.getName(), variable);
-		}
-	}
-
-	/**
-	 * Loads contributed value variables. This is done before loading persisted values.
-	 */
-	private void loadContributedValueVariables() {
-		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(VariablesPlugin.PI_CORE_VARIABLES, EXTENSION_POINT_VALUE_VARIABLES);
-		IConfigurationElement elements[]= point.getConfigurationElements();
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			String name= element.getAttribute(ATTR_NAME);
-			if (name == null) {
-				VariablesPlugin.logMessage(NLS.bind("Variable extension missing required 'name' attribute: {0}", new String[] {element.getDeclaringExtension().getLabel()}), null); //$NON-NLS-1$
-				continue;
-			}
-			String description= element.getAttribute(ATTR_DESCRIPTION);
-			boolean isReadOnly = TRUE_VALUE.equals(element.getAttribute(ATTR_READ_ONLY));
-			
-			IValueVariable variable = new ContributedValueVariable(name, description, isReadOnly, element);
-			fValueVariables.put(name, variable);		
-		}		
-	}
-
-	/**
-	 * Loads persisted value variables from the preference store.  This is done after
-	 * loading value variables from the extension point.  If a persisted variable has the 
-	 * same name as a extension contributed variable the variable's value will be set to
-	 * the persisted value unless either a) The persisted value is <code>null</code>, or
-	 * b) the variable is read-only.
-	 */
-	private void loadPersistedValueVariables() {
-		String variablesString= VariablesPlugin.getDefault().getPluginPreferences().getString(PREF_VALUE_VARIABLES);
-		if (variablesString.length() == 0) {
-			return;
-		}
-		Element root= null;
-		Throwable ex = null;
-		try {
-			ByteArrayInputStream stream = new ByteArrayInputStream(variablesString.getBytes("UTF-8")); //$NON-NLS-1$
-			DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-			parser.setErrorHandler(new DefaultHandler());
-			root = parser.parse(stream).getDocumentElement();
-		} catch (UnsupportedEncodingException e) {
-			ex = e;
-		} catch (ParserConfigurationException e) {
-			ex = e;
-		} catch (FactoryConfigurationError e) {
-			ex = e;
-		} catch (SAXException e) {
-			ex = e;
-		} catch (IOException e) {
-			ex = e;
-		}
-		if (ex != null) {
-			VariablesPlugin.logMessage("An exception occurred while loading persisted value variables.", ex); //$NON-NLS-1$
-			return;
-		}
-		if (!root.getNodeName().equals(VALUE_VARIABLES_TAG)) {
-			VariablesPlugin.logMessage("Invalid format encountered while loading persisted value variables.", null); //$NON-NLS-1$
-			return;
-		}
-		NodeList list= root.getChildNodes();
-		for (int i= 0, numItems= list.getLength(); i < numItems; i++) {
-			Node node= list.item(i);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				Element element= (Element) node;
-				if (!element.getNodeName().equals(VALUE_VARIABLE_TAG)) {
-					VariablesPlugin.logMessage(NLS.bind("Invalid XML element encountered while loading value variables: {0}", new String[] {node.getNodeName()}), null); //$NON-NLS-1$
-					continue;
-				}
-				String name= element.getAttribute(NAME_TAG);
-				if (name.length() > 0) {
-					String value= element.getAttribute(VALUE_TAG);
-					String description= element.getAttribute(DESCRIPTION_TAG);
-					boolean readOnly= TRUE_VALUE.equals(element.getAttribute(READ_ONLY_TAG));
-				
-					IValueVariable existing = getValueVariable(name);
-					if (existing == null){
-						ValueVariable variable = new ValueVariable(name, description, readOnly, value);
-						fValueVariables.put(name, variable);
-					} else if (!existing.isReadOnly() && value != null){
-						existing.setValue(value);
-					}
-				} else {
-					VariablesPlugin.logMessage("Invalid variable entry encountered while loading value variables. Variable name is null.", null); //$NON-NLS-1$
-				}
-			}
-		}		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getVariables()
-	 */
-	public synchronized IStringVariable[] getVariables() {
-		initialize();
-		List list = new ArrayList(fDynamicVariables.size() + fValueVariables.size());
-		list.addAll(fDynamicVariables.values());
-		list.addAll(fValueVariables.values());
-		return (IStringVariable[]) list.toArray(new IStringVariable[list.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getValueVariables()
-	 */
-	public synchronized IValueVariable[] getValueVariables() {
-		initialize();
-		return (IValueVariable[]) fValueVariables.values().toArray(new IValueVariable[fValueVariables.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getDynamicVariables()
-	 */
-	public synchronized IDynamicVariable[] getDynamicVariables() {
-		initialize();
-		return (IDynamicVariable[]) fDynamicVariables.values().toArray(new IDynamicVariable[fDynamicVariables.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#performStringSubstitution(java.lang.String)
-	 */
-	public String performStringSubstitution(String expression) throws CoreException {
-		return performStringSubstitution(expression, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#newValueVariable(java.lang.String, java.lang.String)
-	 */
-	public IValueVariable newValueVariable(String name, String description) {
-		return newValueVariable(name, description, false, null);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IStringVariableManager#newValueVariable(java.lang.String, java.lang.String, boolean, java.lang.String)
-	 */
-	public IValueVariable newValueVariable(String name, String description, boolean readOnly, String value) {
-		return new ValueVariable(name, description, readOnly, value);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#addVariables(org.eclipse.debug.internal.core.stringsubstitution.IValueVariable[])
-	 */
-	public synchronized void addVariables(IValueVariable[] variables) throws CoreException {
-		initialize();
-		MultiStatus status = new MultiStatus(VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, VariablesMessages.StringVariableManager_26, null); 
-		for (int i = 0; i < variables.length; i++) {
-			IValueVariable variable = variables[i];
-			if (getValueVariable(variable.getName()) != null) {
-				status.add(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.StringVariableManager_27, new String[]{variable.getName()}), null)); 
-			}			
-		}
-		if (status.isOK()) {
-			for (int i = 0; i < variables.length; i++) {
-				IValueVariable variable = variables[i];
-				fValueVariables.put(variable.getName(), variable);
-			}
-			IValueVariable[] copy = new IValueVariable[variables.length];
-			System.arraycopy(variables, 0, copy, 0, variables.length);
-			getNotifier().notify(copy, ADDED);
-			return;
-		}
-		throw new CoreException(status);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#removeVariables(org.eclipse.debug.internal.core.stringsubstitution.IValueVariable[])
-	 */
-	public synchronized void removeVariables(IValueVariable[] variables) {
-		initialize();
-		List removed = new ArrayList(variables.length);
-		for (int i = 0; i < variables.length; i++) {
-			IValueVariable variable = variables[i];
-			if (fValueVariables.remove(variable.getName()) != null) {
-				removed.add(variable);
-			}
-		}
-		if (removed.size() > 0) {
-			getNotifier().notify((IValueVariable[])removed.toArray(new IValueVariable[removed.size()]), REMOVED);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getDynamicVariable(java.lang.String)
-	 */
-	public synchronized IDynamicVariable getDynamicVariable(String name) {
-		initialize();
-		return (IDynamicVariable) fDynamicVariables.get(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getValueVariable(java.lang.String)
-	 */
-	public synchronized IValueVariable getValueVariable(String name) {
-		initialize();
-		return (IValueVariable) fValueVariables.get(name);
-	}
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#addValueVariableListener(org.eclipse.debug.internal.core.stringsubstitution.IValueVariableListener)
-	 */
-	public void addValueVariableListener(IValueVariableListener listener) {
-		fListeners.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#removeValueVariableListener(org.eclipse.debug.internal.core.stringsubstitution.IValueVariableListener)
-	 */
-	public void removeValueVariableListener(IValueVariableListener listener) {
-		fListeners.remove(listener);
-	}
-	
-	/**
-	 * Returns a memento representing the value variables currently registered.
-	 * 
-	 * @return memento representing the value variables currently registered
-	 * @throws IOException if an I/O exception occurs while creating the XML.
-	 */
-	private String getValueVariablesAsXML() throws IOException, ParserConfigurationException, TransformerException {
-		IValueVariable[] variables = getValueVariables();
-
-		Document document= getDocument();
-		Element rootElement= document.createElement(VALUE_VARIABLES_TAG);
-		document.appendChild(rootElement);
-		for (int i = 0; i < variables.length; i++) {
-			IValueVariable variable = variables[i];
-			if (!variable.isReadOnly()){
-				// don't persist read-only variables or un-initialized contributed variables 
-				if (!variable.isContributed() || ((ContributedValueVariable)variable).isInitialized()) {
-					Element element= document.createElement(VALUE_VARIABLE_TAG);
-					element.setAttribute(NAME_TAG, variable.getName());
-					String value= variable.getValue();
-					if (value != null) {
-						element.setAttribute(VALUE_TAG, value);
-					}
-					element.setAttribute(READ_ONLY_TAG, variable.isReadOnly() ? TRUE_VALUE : FALSE_VALUE);
-					String description= variable.getDescription();
-					if (description != null) {
-						element.setAttribute(DESCRIPTION_TAG, description);
-					}
-					rootElement.appendChild(element);
-				}
-			}
-		}
-		return serializeDocument(document);
-	}
-	
-	private Document getDocument() throws ParserConfigurationException {
-		DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
-		DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
-		Document doc =docBuilder.newDocument();
-		return doc;
-	}
-	
-	/**
-	 * Serializes a XML document into a string - encoded in UTF8 format,
-	 * with platform line separators.
-	 * 
-	 * @param doc document to serialize
-	 * @return the document as a string
-	 * @throws TransformerException if an unrecoverable error occurs during the serialization
-	 * @throws IOException if the encoding attempted to be used is not supported
-	 */
-	private String serializeDocument(Document doc) throws TransformerException, UnsupportedEncodingException {
-		ByteArrayOutputStream s= new ByteArrayOutputStream();
-		
-		TransformerFactory factory= TransformerFactory.newInstance();
-		Transformer transformer= factory.newTransformer();
-		transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
-		transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
-		
-		DOMSource source= new DOMSource(doc);
-		StreamResult outputTarget= new StreamResult(s);
-		transformer.transform(source, outputTarget);
-		
-		return s.toString("UTF8"); //$NON-NLS-1$			
-	}
-	
-	/**
-	 * Saves the value variables currently registered in the
-	 * preference store. 
-	 */
-	private synchronized void storeValueVariables() {
-		Preferences prefs= VariablesPlugin.getDefault().getPluginPreferences();
-		String variableString= ""; //$NON-NLS-1$
-		if (!fValueVariables.isEmpty()) {
-			try {
-				variableString= getValueVariablesAsXML();
-			} catch (IOException e) {
-				VariablesPlugin.log(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), IStatus.ERROR, "An exception occurred while storing launch configuration variables.", e)); //$NON-NLS-1$
-				return;
-			} catch (ParserConfigurationException e) {
-				VariablesPlugin.log(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), IStatus.ERROR, "An exception occurred while storing launch configuration variables.", e)); //$NON-NLS-1$
-				return;
-			} catch (TransformerException e) {
-				VariablesPlugin.log(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), IStatus.ERROR, "An exception occurred while storing launch configuration variables.", e)); //$NON-NLS-1$
-				return;
-			}
-		}
-		fInternalChange = true;
-		prefs.setValue(PREF_VALUE_VARIABLES, variableString);
-		VariablesPlugin.getDefault().savePluginPreferences();
-		fInternalChange = false;
-	}
-
-	/**
-	 * Fire a change notification for the given variable.
-	 * 
-	 * @param variable the variable that has changed
-	 */
-	protected void notifyChanged(IValueVariable variable) {
-		if (!fInternalChange) {
-			IValueVariable existing = getValueVariable(variable.getName());
-			if (variable.equals(existing)) {
-				// do not do change notification for unregistered variables
-				getNotifier().notify(new IValueVariable[]{variable}, CHANGED);
-			}
-		}
-	}	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#generateVariableExpression(java.lang.String, java.lang.String)
-	 */
-	public String generateVariableExpression(String varName, String arg) {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("${"); //$NON-NLS-1$
-		buffer.append(varName);
-		if (arg != null) {
-			buffer.append(":"); //$NON-NLS-1$
-			buffer.append(arg);
-		}
-		buffer.append("}"); //$NON-NLS-1$
-		return buffer.toString();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#performStringSubstitution(java.lang.String, boolean)
-	 */
-	public String performStringSubstitution(String expression,	boolean reportUndefinedVariables) throws CoreException {
-		return new StringSubstitutionEngine().performStringSubstitution(expression, reportUndefinedVariables, true, this);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IStringVariableManager#validateStringVariables(java.lang.String)
-	 */
-	public void validateStringVariables(String expression) throws CoreException {
-		new StringSubstitutionEngine().validateStringVariables(expression, this);
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.variables.IStringVariableManager#getContributingPluginId(org.eclipse.core.variables.IStringVariable)
-     */
-    public String getContributingPluginId(IStringVariable variable) {
-        if (variable instanceof StringVariable) {
-            return ((StringVariable) variable).getConfigurationElement().getContributor().getName();
-        }
-        return null;
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Preferences.IPropertyChangeListener#propertyChange(org.eclipse.core.runtime.Preferences.PropertyChangeEvent)
-	 */
-	public void propertyChange(PropertyChangeEvent event) {
-		if (PREF_VALUE_VARIABLES.equals(event.getProperty())) {
-			synchronized (this) {
-				if (!fInternalChange) {
-					fValueVariables.clear();
-					loadPersistedValueVariables();
-					loadContributedValueVariables();
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java
deleted file mode 100644
index 3bac3d0..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import org.eclipse.core.variables.IValueVariable;
-
-/**
- * Implementation of a value variable.
- */
-public class ValueVariable extends StringVariable implements IValueVariable {
-	
-	/**
-	 * Variable value or <code>null</code> if none 
-	 */
-	private String fValue;
-	
-	/**
-	 * Whether this variable is read only.  If true, users cannot change the value.
-	 */
-	private boolean fReadOnly;
-	
-	/**
-	 * Constructs a new value variable with the given name, description, read only
-	 * property and string value.  Value can be null.
-	 * 
-	 * @param name variable name
-	 * @param description variable description or <code>null</code>
-	 * @param readOnly whether the variable should be a read only variable
-	 * @param value the initial value of the variable or <code>null</code>
-	 */
-	public ValueVariable(String name, String description, boolean readOnly, String value) {
-		super(name, description, null);
-		fReadOnly = readOnly;
-		fValue = value;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#setValue(java.lang.String)
-	 */
-	public void setValue(String value) {
-		if (!isReadOnly()){
-			fValue = value;
-			StringVariableManager.getDefault().notifyChanged(this);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#getValue()
-	 */
-	public String getValue() {
-		return fValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#isReadOnly()
-	 */
-	public boolean isReadOnly() {
-		return fReadOnly;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IValueVariable#isContributed()
-	 */
-	public boolean isContributed() {
-		return false;
-	}
-
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java
deleted file mode 100644
index 27378a6..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.internal.variables;
-
-import org.eclipse.osgi.util.NLS;
-
-public class VariablesMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.core.internal.variables.VariablesMessages";//$NON-NLS-1$
-	//
-	// Copyright (c) 2000, 2005 IBM Corporation and others.
-	// All rights reserved. This program and the accompanying materials
-	// are made available under the terms of the Eclipse Public License v1.0
-	// which accompanies this distribution, and is available at
-	// http://www.eclipse.org/legal/epl-v10.html
-	//
-	// Contributors:
-	//     IBM Corporation - initial API and implementation
-	//
-
-	public static String StringSubstitutionEngine_3;
-	public static String StringSubstitutionEngine_4;
-
-	public static String StringVariableManager_26;
-	public static String StringVariableManager_27;
-
-	public static String DynamicVariable_0;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, VariablesMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties
deleted file mode 100644
index 945dbd3..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-StringSubstitutionEngine_3=Reference to undefined variable {0}
-StringSubstitutionEngine_4=Variable {0} does not accept arguments
-
-StringVariableManager_26=Variables with the specified names are already registered.
-StringVariableManager_27=Variable named {0} already registered
-
-DynamicVariable_0=Unsupported argument {0} specified for variable {1}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java
deleted file mode 100644
index 9bdda6e..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A dynamic variable is a variable whose value is computed dynamically
- * by a resolver at the time a string substitution is performed. A dynamic
- * variable is contributed by an extension.
- * <p>
- * The following is a definition of a dynamic variable that resolves to the name of the selected resource:
- * <pre>
- *  &lt;extension point="org.eclipse.core.variables.dynamicVariables"&gt;
- *    &lt;variable 
- *       name="resource_name"
- *       resolver="com.example.ResourceNameResolver"
- *       description="The name of the selected resource"
- *       supportsArgument="false"&gt;
- *    &lt;/variable&gt;
- *  &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * Clients are not intended to implement this interface. Instead, clients contributing
- * a dynamic variable provide an implementation of {@link org.eclipse.core.variables.IDynamicVariableResolver}.
- * </p>
- * @since 3.0
- */
-public interface IDynamicVariable extends IStringVariable {
-
-	/**
-	 * Returns the value of this variable when referenced with the given
-	 * argument, possibly <code>null</code>.
-	 * 
-	 * @param argument argument present in variable expression or <code>null</code>
-	 *   if none
-	 * @return value of this variable when referenced with the given argument, possibly
-	 *   <code>null</code>
-	 * @throws CoreException if unable to resolve a value for this variable
-	 */
-	public String getValue(String argument) throws CoreException;
-	
-	/**
-	 * Returns whether this variable supports an argument, as specified
-	 * by this variable's extension definition in plug-in XML.
-	 * 
-	 * @return whether this variable supports an argument
-	 */
-	public boolean supportsArgument();
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java
deleted file mode 100644
index b5cefaa..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Resolves the value for a dynamic variable. A dynamic variable extension
- * contributes a resolver which must implement this interface.
- * <p>
- * Clients contributing a dynamic variable are intended to provide an implementation
- * of this interface.
- * </p>
- * @since 3.0
- */
-public interface IDynamicVariableResolver {
-
-	/**
-	 * Resolves and returns a value for the specified variable when referenced
-	 * with the given argument, possibly <code>null</code>
-	 *  
-	 * @param variable variable to resolve a value for
-	 * @param argument argument present in expression or <code>null</code> if none
-	 * @return variable value, possibly <code>null</code>
-	 * @throws CoreException if unable to resolve a value for the given variable
-	 */
-	public String resolveValue(IDynamicVariable variable, String argument) throws CoreException;
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java
deleted file mode 100644
index 6bf9832..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-
-/**
- * A variable that can be referenced in an expression, which resolves to a string
- * value. Variables are referenced in expressions via their name, in the following
- * format.
- * <pre>
- * ${varname} or ${varname:argument}
- * </pre>
- * <p>
- * A variable is identified by its name, and optionally accepts an argument. When an
- * argument is present, a colon separates the variable name from its argument.
- * </p>
- * <p>
- * Variables can be contributed by extensions or programmatically. There are two
- * kinds of variables.
- * <ul>
- * <li><code>IValueVariable</code> - variables that have a value (with getter and setter), and
- *       accept no arguments. The value of this type of variable is resolved at the time
- *       its value is set via its setter API.</li>
- * <li><code>IDynamicVariable</code> - variables whose value is resolved at the time
- * 		a string substitution is performed by a contributed resolver. Dynamic variables
- * 		may accept an argument.</li>
- * </ul>
- * </p>
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IStringVariable {
-
-	/**
-	 * Returns the name of this variable. A variable is uniquely identified by
-	 * its name.
-	 * 
-	 * @return variable name
-	 */
-	public String getName();
-	
-	/**
-	 * Returns a human readable description of this variable, possibly <code>null</code>
-	 * 
-	 * @return a description of this variable, or <code>null</code> if none
-	 */
-	public String getDescription();
-	
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java
deleted file mode 100644
index 8f2434a..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Registry for string variables.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IStringVariableManager {
-
-	/**
-	 * Simple identifier constant (value <code>"dynamicVariables"</code>) for the
-	 * dynamic variables extension point.
-	 */
-	public static final String EXTENSION_POINT_DYNAMIC_VARIABLES = "dynamicVariables"; //$NON-NLS-1$
-	
-	/**
-	 * Simple identifier constant (value <code>"valueVariables"</code>) for the
-	 * value variables extension point.
-	 */
-	public static final String EXTENSION_POINT_VALUE_VARIABLES = "valueVariables"; //$NON-NLS-1$
-	
-	/**
-	 * Returns all registered variables.
-	 * 
-	 * @return a collection of all registered variables
-	 */
-	public IStringVariable[] getVariables();
-	
-	/**
-	 * Returns all registered value variables.
-	 * 
-	 * @return a collection of all registered value variables
-	 */
-	public IValueVariable[] getValueVariables();
-	
-	/**
-	 * Returns the value variable with the given name, or <code>null</code>
-	 * if none.
-	 * 
-	 * @param name variable name
-	 * @return the value variable with the given name, or <code>null</code>
-	 * if none
-	 */
-	public IValueVariable getValueVariable(String name);
-	
-	/**
-	 * Returns all registered dynamic variables.
-	 * 
-	 * @return a collection of all registered dynamic variables
-	 */
-	public IDynamicVariable[] getDynamicVariables();	
-	
-	/**
-	 * Returns the dynamic variable with the given name or <code>null</code>
-	 * if none.
-	 * 
-	 * @param name variable name
-	 * @return the dynamic variable with the given name or <code>null</code>
-	 * if none
-	 */
-	public IDynamicVariable getDynamicVariable(String name);
-    
-    /**
-     * Returns the plug-in identifier of the plug-in that contributed the
-     * given variable via extension or <code>null</code> if the given
-     * variable wasn't contributed via extension.
-     * 
-     * @param variable the variable
-     * @return the plug-in identifier of the plug-in that contributed the
-     *  given variable or <code>null</code>
-     * @since 3.1
-     */
-    public String getContributingPluginId(IStringVariable variable);
-	
-	/**
-	 * Recursively resolves and replaces all variable references in the given
-	 * expression with their corresponding values. Reports errors for references
-	 * to undefined variables (equivalent to calling
-	 * <code>performStringSubstitution(expression, true)</code>).
-	 * 
-	 * @param expression expression referencing variables
-	 * @return expression with variable references replaced with variable values
-	 * @throws CoreException if unable to resolve the value of one or more variables
-	 */
-	public String performStringSubstitution(String expression) throws CoreException;
-	
-	/**
-	 * Recursively resolves and replaces all variable references in the given
-	 * expression with their corresponding values. Allows the client to control
-	 * whether references to undefined variables are reported as an error (i.e.
-	 * an exception is thrown).  
-	 * 
-	 * @param expression expression referencing variables
-	 * @param reportUndefinedVariables whether a reference to an undefined variable
-	 *  is to be considered an error (i.e. throw an exception)
-	 * @return expression with variable references replaced with variable values
-	 * @throws CoreException if unable to resolve the value of one or more variables
-	 */
-	public String performStringSubstitution(String expression, boolean reportUndefinedVariables) throws CoreException;	
-	
-	/**
-	 * Validates variables references in the given expression and reports errors
-	 * for references to undefined variables.
-	 * 
-	 * @param expression expression referencing variables
-	 * @throws CoreException if one or more referenced variables do not exist
-	 */
-	public void validateStringVariables(String expression) throws CoreException;
-	
-	/**
-	 * Returns a new read-write value variable with the given name and description
-	 * with a <code>null</code> value.
-	 * 
-	 * @param name variable name, cannot be <code>null</code>
-	 * @param description variable description, possibly <code>null</code>
-	 * @return a new value variable
-	 */
-	public IValueVariable newValueVariable(String name, String description);
-
-	/**
-	 * Returns a new value variable with the given properties.
-	 * 
-	 * @param name variable name, cannot be <code>null</code>
-	 * @param description variable description, possibly <code>null</code>
-	 * @param readOnly whether this variable is to be a read only variable
-	 * @param value the string value to initialize this variable to - should
-	 * 	not be <code>null</code> for read-only variables
-	 * @return a new value variable
-	 * @since 3.3
-	 */
-	public IValueVariable newValueVariable(String name, String description, boolean readOnly, String value);
-	
-	/**
-	 * Adds the given variables to the variable registry.
-	 * 
-	 * @param variables the variables to add
-	 * @throws CoreException if one or more variables to add has a name collision with
-	 *  an existing variable 
-	 */
-	public void addVariables(IValueVariable[] variables) throws CoreException;
-	
-	/**
-	 * Removes the given variables from the registry. Has no effect for unregistered
-	 * variables.
-	 * 
-	 * @param variables variables to remove
-	 */
-	public void removeVariables(IValueVariable[] variables);
-	
-	/**
-	 * Registers the given listener for value variable notifications. Has no effect
-	 * if an identical listener is already registered.
-	 *   
-	 * @param listener value variable listener to add
-	 */
-	public void addValueVariableListener(IValueVariableListener listener);
-	
-	/**
-	 * Removes the given listener from the list of registered value variable
-	 * listeners. Has no effect if an identical listener is not already registered.
-	 * 
-	 * @param listener value variable listener to remove
-	 */
-	public void removeValueVariableListener(IValueVariableListener listener);
-	
-	/**
-	 * Convenience method that returns an expression referencing the given
-	 * variable and optional argument. For example, calling the method with
-	 * a <code>varName</code> of <code>my_var</code> and an <code>argument</code>
-	 * of <code>my_arg</code> results in the string <code>$(my_var:my_arg}</code>.
-	 * 
-	 * @param varName variable name
-	 * @param arg argument text or <code>null</code>
-	 * @return an expression referencing the given variable and
-	 *  optional argument
-	 */
-	public String generateVariableExpression(String varName, String arg);
-	
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java
deleted file mode 100644
index d9cd25e..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-/**
- * A variable with a value that can be set and retrieved. The context in which
- * a value variable is referenced does not effect the value of the variable.
- * A value variable can be contributed by an extension or created programmatically.
- * A contributor may optionally specify an initial value for a variable, or
- * provide a delegate that will initialize the variable with a value.
- * <p>
- * Since 3.3, a variable can be specified as a "read only" preventing users from changing
- * the value after it has been initialized.  Furthermore, a read only variable that is
- * contributed by an extension will always load the value from the extension.
- * </p>
- * <p>
- * Example of a value variable contribution with an initial value, the specified
- * variable is created with the initial value "/usr/local/foo".
- * <pre>
- *  &lt;extension point="org.eclipse.core.variables.valueVariables"&gt;
- *   &lt;variable
- *    name="FOO_HOME"
- *    initialValue="/usr/local/foo"&gt;
- *   &lt;/variable&gt;
- *  &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * Example of a value variable contribution with an initializer class, the class
- * "com.example.FooLocator" will be used to initialize the value the first time
- * it's requested.
- * <pre>
- *  &lt;extension point="org.eclipse.core.variables.valueVariables"&gt;
- *   &lt;variable
- *    name="FOO_HOME"
- *    initializerClass="com.example.FooLocator"&gt;
- *   &lt;/variable&gt;
- *  &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IValueVariable extends IStringVariable {
-
-	/**
-	 * Sets the value of this variable to the given value.
-	 * Since 3.3, this has no effect if this variable is read only.
-	 *
-	 * @param value variable value
-	 */
-	public void setValue(String value);
-	
-	/**
-	 * Returns the value of this variable, or <code>null</code> if none.
-	 * 
-	 * @return the value of this variable, or <code>null</code> if none
-	 */
-	public String getValue();
-	
-	/**
-	 * Returns whether this variable was contributed by an extension.
-	 * 
-	 * @return whether this variable was contributed by an extension
-	 */
-	public boolean isContributed();
-	
-	/**
-	 * Returns whether this variable is read only.
-	 * 
-	 * @return whether this variable is read only
-	 * @since 3.3
-	 */
-	public boolean isReadOnly();
-	
-	/**
-	 * Sets the description of this variable to the given value.
-	 * 
-	 * @param description variable description, possibly <code>null</code>
-	 */
-	public void setDescription(String description);	
-	
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java
deleted file mode 100644
index 035a907..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-/**
- * Value variable initializers compute an initial value for a value
- * variable contributed by an extension, which is not defined with an initial
- * value. This provides a mechanism for programmatically computing the initial
- * value of a value variable.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IValueVariableInitializer {
-	/**
-	 * Initializes the specified variable. 
-	 * 
-	 * @param variable variable to initialize
-	 */
-	public void initialize(IValueVariable variable);
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java
deleted file mode 100644
index 37dac25..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.variables;
-
-/**
- * A string variable listener is notified of variables as they are added
- * and removed from the string variable manager. As well, listeners are
- * notified when a value variable changes value.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IValueVariableListener {
-	
-	/**
-	 * Notification the given variables have been added to the variable
-	 * manager.
-	 * 
-	 * @param variables added variables
-	 */
-	public void variablesAdded(IValueVariable[] variables);
-	
-	/**
-	 * Notification the given variables have been removed from the variable
-	 * manager.
-	 * 
-	 * @param variables removed variables
-	 */
-	public void variablesRemoved(IValueVariable[] variables);
-	
-	/**
-	 * Notification the given variables have been changed value.
-	 * 
-	 * @param variables changed variables
-	 */
-	public void variablesChanged(IValueVariable[] variables);
-
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java
deleted file mode 100644
index 114b01d..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.variables;
-
-import org.eclipse.core.internal.variables.StringVariableManager;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-
-/**
- * The plug-in runtime class for the Core Variables plug-in.
- * @since 3.0
- */
-public class VariablesPlugin extends Plugin {
-
-	/**
-	 * Status code indicating an unexpected internal error.
-	 */
-	public static final int INTERNAL_ERROR = 120;		
-	
-	/**
-	 * Status code indicating a variable reference cycle error.
-	 */
-	public static final int REFERENCE_CYCLE_ERROR = 130;
-	
-	/**
-	 * The single instance of this plug-in runtime class.
-	 */
-	private static VariablesPlugin plugin;
-
-	/**
-	 * Unique identifier constant (value <code>"org.eclipse.core.variables"</code>)
-	 * for the Core Variables plug-in.
-	 */
-	public static final String PI_CORE_VARIABLES = "org.eclipse.core.variables"; //$NON-NLS-1$
-
-
-	/** 
-	 * Constructs an instance of this plug-in runtime class.
-	 * <p>
-	 * An instance of this plug-in runtime class is automatically created 
-	 * when the facilities provided by the Variables plug-in are required.
-	 * <b>Clients must never explicitly instantiate a plug-in runtime class.</b>
-	 * </p>
-	 */
-	public VariablesPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns this plug-in instance.
-	 *
-	 * @return the single instance of this plug-in runtime class
-	 */
-	public static VariablesPlugin getDefault() {
-		return plugin;
-	}
-	
-	/**
-	 * Logs the specified throwable with this plug-in's log.
-	 * 
-	 * @param t throwable to log 
-	 */
-	public static void log(Throwable t) {
-		log(new Status(IStatus.ERROR, PI_CORE_VARIABLES, INTERNAL_ERROR, "Error logged from Core Variables: ", t)); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Logs the given message with this plug-in's log and the given
-	 * throwable or <code>null</code> if none.
-	 * @param message the message to log
-	 * @param throwable the exception that occurred or <code>null</code> if none
-	 */
-	public static void logMessage(String message, Throwable throwable) {
-		log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, message, throwable));
-	}
-	
-	/**
-	 * Logs the specified status with this plug-in's log.
-	 * 
-	 * @param status status to log
-	 */
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-	
-	/**
-	 * Convenience method which returns the unique identifier of this plug-in.
-	 */
-	public static String getUniqueIdentifier() {
-		return PI_CORE_VARIABLES;
-	}
-	
-	/**
-	 * Returns the string variable manager.
-	 * 
-	 * @return the string variable manager
-	 */
-	public IStringVariableManager getStringVariableManager() {
-		return StringVariableManager.getDefault();
-	}
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/package.html b/org.eclipse.core.variables/src/org/eclipse/core/variables/package.html
deleted file mode 100644
index 0d27de0..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/package.html
+++ /dev/null
@@ -1,45 +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 defining and contributing variables for the purpose of 
-  string substitution.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides classes and interfaces to support the definition and 
-  contribution of variables for the purpose of string substitution. The plug-in 
-  supports the recursive replacement of variables referenced by name in arbitrary 
-  strings with the value of the variable. Two types of variables are provided 
-  - value variables (<code>IValueVariable</code>) and dynamic variables (<code>IDynamicVariable</code>). 
-  A value variable has a simple setter and getter for its current value. A dynamic 
-  variable has an associated resolver that provides a variable's value each time 
-  it is referenced (replaced) in a string substitution. A dynamic variable may 
-  also provide an argument in its reference that can be used by its resolver to 
-  determine its substitution value.</p>
-<p>A variable manager (<code>IStringVariableManager</code>) is provided to manage 
-  the set of defined variables. Value variables may be created via API on the 
-  variable manager, or contributed via the <code>valueVariables</code> extension 
-  point. Dynamic variables must be contributed via the <code>dynamicVariables</code> 
-  extension point. The variable manager also provides change notification for 
-  value variables. The variable manager also provides an API for performing string 
-  substitution, which accepts a string, and returns a string with all variable 
-  references replaced by associated variable values.</p>
-<p>Variables are referenced in strings by enclosing them in braces, preceded with 
-  a dollar sign. For example, consider a variable defined with the name <code>foo</code>, 
-  and referenced in the following string: <code>&quot;abc${foo}ghi&quot;</code>. 
-  If the value of <code>foo</code> is <code>&quot;def&quot;</code>, the result 
-  of a string substitution would be <code>&quot;abcdefghi&quot;</code>. In the 
-  case of a dynamic variable, an (optional) argument is supplied by appending 
-  a colon and argument value after the variable name. For example <code>&quot;${foo:bar}&quot;</code>. 
-  In this case, the resolver associated with <code>foo</code> would be provided 
-  with the referenced argument (<code>bar</code>) when asked to resolve a value 
-  for the variable <code>foo</code>. </p>
-</body>
-</html>
diff --git a/org.eclipse.debug.examples.core/.classpath b/org.eclipse.debug.examples.core/.classpath
deleted file mode 100644
index b7464f3..0000000
--- a/org.eclipse.debug.examples.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.debug.examples.core/.cvsignore b/org.eclipse.debug.examples.core/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.debug.examples.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.debug.examples.core/.project b/org.eclipse.debug.examples.core/.project
deleted file mode 100644
index 99d835c..0000000
--- a/org.eclipse.debug.examples.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>example.debug.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.debug.examples.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.debug.examples.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d6de6c1..0000000
--- a/org.eclipse.debug.examples.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,47 +0,0 @@
-#Mon Jan 24 20:23:34 CST 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/org.eclipse.debug.examples.core/META-INF/MANIFEST.MF b/org.eclipse.debug.examples.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 0de72ed..0000000
--- a/org.eclipse.debug.examples.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Example Debug Core Plug-in
-Bundle-SymbolicName: org.eclipse.debug.examples.core;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.debug.examples.core.pda.DebugCorePlugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.core.variables,
- org.eclipse.debug.core
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.debug.examples.core.pda,
- org.eclipse.debug.examples.core.pda.breakpoints,
- org.eclipse.debug.examples.core.pda.launcher,
- org.eclipse.debug.examples.core.pda.model,
- org.eclipse.debug.examples.core.pda.sourcelookup
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/org.eclipse.debug.examples.core/about.html b/org.eclipse.debug.examples.core/about.html
deleted file mode 100644
index 4602330..0000000
--- a/org.eclipse.debug.examples.core/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation 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
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/build.properties b/org.eclipse.debug.examples.core/build.properties
deleted file mode 100644
index 49493c1..0000000
--- a/org.eclipse.debug.examples.core/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               pdavm/,\
-               examples/,\
-               META-INF/,\
-               about.html,\
-               .
-src.includes = about.html,\
-               src/
diff --git a/org.eclipse.debug.examples.core/pdavm/pda.pl b/org.eclipse.debug.examples.core/pdavm/pda.pl
deleted file mode 100644
index 82829e4..0000000
--- a/org.eclipse.debug.examples.core/pdavm/pda.pl
+++ /dev/null
@@ -1,672 +0,0 @@
-#!perl.exe
-
-use strict;
-use warnings;
-use IO::Socket;
-
-#####################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Bjorn Freeman-Benson - initial API and implementation
-#####################################################################
-
-#####################################################################
-#																	#
-#	I N I T I A L I Z A T I O N   A N D   V A R I A B L E S			#
-#																	#
-#####################################################################
-#
-# The push down automata stack (the data stack)
-#
-my @stack;
-#
-# Load all the code into memory
-# The code is stored as an array of strings, each line of
-# the source file being one entry in the array.
-#
-my $filename = shift;
-open INFILE, $filename or die $!;
-my @code = <INFILE>;
-close INFILE;
-
-my %labels;
-sub map_labels {
-	#
-	# A mapping of labels to indicies in the code array
-	#
-	%labels = ( );
-	my $idx = 0;
-	while( $idx <= $#code ) {
-		if( length $code[$idx] > 0 ) {
-			$code[$idx] =~ /^\s*(.+?)\s*$/;
-			$code[$idx] = $1;
-			$labels{$1} = $idx if( $code[$idx] =~ /^:(\S+)/ );
-		} else {
-			$code[$idx] = "\n";
-		}
-		$idx ++;
-	}
-}
-map_labels();
-#
-# The stack of stack frames (the control stack)
-# Each stack frame is a mapping of variable names to values.
-# There are a number of special variable names:
-#  _pc_  is the current program counter in the frame
-#        the pc points to the next instruction to be executed
-#  _func_ is the name of the function in this frame
-#
-my @frames;
-my $currentframe;
-$currentframe = {
-	_pc_ => 0,
-	_func_ => 'main'
-	};	
-
-#
-# The command line argument to start a debug session.
-#
-my $debugflag = shift;
-#
-# The port to listen for debug commands on
-# and the port to send debug events to
-#
-my $debugport;
-my $debugport2;
-#
-# The socket to listen for debug commands on
-# and the socket to send debug events on
-#
-my $debugsock;
-my $debugsock2;
-#
-# An input buffer
-#
-my $debugbuf;
-#
-# Breakpoint array
-# breakpoints are stored as a boolean for each line of code
-# if the boolean is true, there is a breakpoint on that line
-#
-my @breakpoints;
-#
-# Mapping of debugger commands to functions that evaluate them
-#
-my %debug_commands = (
-	clear => \&debug_clear_breakpoint,
-	data => \&debug_data,
-	drop => \&debug_drop_frame,
-	eval => \&debug_eval,
-	eventstop => \&debug_event_stop,
-	exit => \&debug_exit,
-	popdata => \&debug_pop,
-	pushdata => \&debug_push,
-	resume => \&debug_resume,
-	set => \&debug_set_breakpoint,
-	setdata => \&debug_set_data,
-	setvar => \&debug_set_variable,
-	stack => \&debug_stack,
-	step => \&debug_step,
-	stepreturn => \&debug_step_return,
-	suspend => \&debug_suspend,
-	var => \&debug_var,
-	watch => \&debug_watch
-);
-
-#
-# The run flag is true if the VM is running.
-# If the run flag is false, the VM exits the
-# next time the main instruction loop runs.
-#
-my $run = 1;
-#
-# The suspend flag is true if the VM should suspend
-# running the program and just listen for debug commands.
-#
-my $suspend = 0;
-my $started = 1;
-$suspend = "client" if( $debugflag );
-#
-# The step flag is used to control single-stepping.
-# See the implementation of the "step" debug command.
-# The stepreturn flag is used to control step-return.
-# The eventstops table holds which events cause suspends and which do not.
-# The watchpoints table holds watchpoint information.
-#   variablename_stackframedepth => N
-#   N = 0 is no watch
-#   N = 1 is read watch
-#   N = 2 is write watch
-#   N = 3 is both, etc.
-#
-my $step = 0;
-my $stepreturn = 0;
-my %eventstops = ( "unimpinstr" => 0,
-                   "nosuchlabel" => 0,
-                   );
-my %watchpoints = ( );
-
-#
-# Mapping of the names of the instructions to the functions that evaluate them
-#
-my %instructions = (
-	add => \&add,
-	branch_not_zero => \&branch_not_zero,
-	call => \&call,
-	dec => \&dec,
-	dup => \&dup,
-	halt => \&halt,
-	output => \&output,
-	pop => \&ipop,
-	push => \&ipush,
-	return => \&ireturn,
-	var => \&var,
-	xyzzy => \&internal_end_eval,
-);
-
-#####################################################################
-#																	#
-#				M A I N  I N T E R P R E T E R						#
-#																	#
-#####################################################################
-#
-# Open a debug session if the command line argument is given.
-#
-start_debugger();
-send_debug_event( "started", 0 );
-debug_ui() if( $suspend );
-#
-# The main run loop
-#
-while( $run ) {
-	check_for_breakpoint();
-	debug_ui() if( $suspend );
-	yield_to_debug();
-	my $instruction = fetch_instruction();
-	increment_pc();
-	do_one_instruction($instruction);
-	if( $$currentframe{_pc_} > $#code ) {
-		$run = 0;
-	} elsif( $stepreturn ) {
-		$instruction = fetch_instruction();
-		$suspend = "step" if( is_return_instruction($instruction) );
-	}
-}
-send_debug_event( "terminated", 0 );
-
-sub fetch_instruction {
-	my $pc = $$currentframe{_pc_};
-	my $theinstruction = $code[$pc];
-	return $theinstruction;
-}
-sub is_return_instruction {
-	my $theinstruction = shift;
-	if( $theinstruction =~ /^:/ ) {
-		return 0;
-	} elsif( $theinstruction =~ /^#/ ) {
-		return 0;
-	} else {
-		$theinstruction =~ /^(\S+)\s*(.*)/;
-		return $1 eq "return";
-	}
-}
-sub increment_pc {
-	my $pc = $$currentframe{_pc_};
-	$pc++;
-	$$currentframe{_pc_} = $pc;
-}
-sub decrement_pc {
-	my $pc = $$currentframe{_pc_};
-	$pc--;
-	$$currentframe{_pc_} = $pc;
-}
-sub do_one_instruction {
-	my $theinstruction = shift;
-	if( $theinstruction =~ /^:/ ) {
-		# label
-		$suspend = "step" if( $step );
-	} elsif( $theinstruction =~ /^#/ ) {
-		# comment
-	} else {
-		$theinstruction =~ /^(\S+)\s*(.*)/;
-		my $op = $1;
-		my $instr = $instructions{$op};
-		if( $instr ) {
-			&$instr( $theinstruction, $2 );
-			$suspend = "step" if( $step );
-		} else {
-			send_debug_event( "unimplemented instruction $op", 1 );
-			if( $eventstops{"unimpinstr"} ) {
-				$suspend = "event unimpinstr";
-				decrement_pc();
-			}
-		}
-	}
-}
-
-#####################################################################
-#																	#
-#					I N S T R U C T I O N S							#
-#																	#
-#####################################################################
-sub add {
-	my $val1 = pop @stack;
-	my $val2 = pop @stack;
-	my $val = $val1 + $val2;
-	push @stack, $val;
-}
-
-sub branch_not_zero {
-	my $val = pop @stack;
-	if( $val ) {
-		shift;
-		my $label = shift;
-		my $dest = $labels{$label};
-		if( !defined $dest ) {
-			send_debug_event( "no such label $label", 1 );
-			if( $eventstops{"nosuchlabel"} ) {
-				$suspend = "event nosuchlabel";
-				push @stack, $val;
-				decrement_pc();
-			}
-		} else {
-			$$currentframe{_pc_} = $dest;
-		}
-	}
-}
-
-sub call {
-	shift;
-	my $label = shift;
-	my $dest = $labels{$label};
-	if( !defined $dest ) {
-		send_debug_event( "no such label $label", 1 );
-		if( $eventstops{"nosuchlabel"} ) {
-			$suspend = "event nosuchlabel";
-			decrement_pc();
-		}
-	} else {
-		push @frames, $currentframe;
-		$currentframe = {
-			_pc_ => $dest,
-			_func_ => $label
-     	};
-	}
-}
-
-sub dec {
-	my $val = pop @stack;
-	$val--;
-	push @stack, $val;
-}
-	
-sub dup {
-	my $val = pop @stack;
-	push @stack, $val;
-	push @stack, $val;
-}
-
-sub halt {
-	$run = 0;
-}
-
-sub output {
-	my $val = pop @stack;
-	print "$val\n";
-}
-
-sub ipop {
-	shift;
-	my $arg = shift;
-	if( $arg =~ /^\$(.*)/ ) {
-		$$currentframe{$1} = pop @stack;
-		my $key = "$$currentframe{_func_}\:\:$1";
-		if( defined $watchpoints{$key} ) {
-			if( $watchpoints{$key} & 2 ) {
-				$suspend = "watch write $key";
-			}
-		}
-	} else {
-		pop @stack;
-	}
-}
-
-sub ipush {
-	shift;
-	my $arg = shift;
-	if( $arg =~ /^\$(.*)/ ) {
-		my $val = $$currentframe{$1};
-		push @stack, $val;
-		my $key = "$$currentframe{_func_}\:\:$1";
-		if( defined $watchpoints{$key} ) {
-			if( $watchpoints{$key} & 1 ) {
-				$suspend = "watch read $key";
-			}
-		}
-	} else {
-		push @stack, $arg;
-	}
-}
-
-sub ireturn {
-	$currentframe = pop @frames;
-}
-
-sub var {
-	shift;
-	my $name = shift;
-	$$currentframe{$name} = 0;
-}
-
-#####################################################################
-#																	#
-#			D E B U G G E R  I N T E R F A C E						#
-#																	#
-#####################################################################
-
-sub check_for_breakpoint {
-	if( $debugflag ) {
-		my $pc = $$currentframe{_pc_};
-		if( $breakpoints[$pc] ) {
-			$suspend = "breakpoint $pc" unless $suspend eq "eval";
-		}
-	}
-}
-#
-# For each instruction, we check the debug co-routine for
-# control input. If there is input, we process it.
-#
-sub yield_to_debug {
-	if( $debugflag ) {
-		my $bytes_to_read = 1024;
-		my $bytes_read = sysread($debugsock, $debugbuf, $bytes_to_read);
-		if( defined($bytes_read) ) {
-			#print "read $bytes_to_read\n";
-			my $rin = '';
-			my $win = '';
-			my $ein = '';
-    		vec($rin,fileno($debugsock),1) = 1;
-	   		$ein = $rin | $win;
-			my $debugline = $debugbuf;
-			while( !($debugline =~ /\n/) ) {
-	  				select($rin, undef, undef, undef);
-				my $bytes_to_read = 1024;
-				my $bytes_read = sysread($debugsock, $debugbuf, $bytes_to_read);
-				$debugline .= $debugbuf;
-			}
-			#print "read: $debugline";
-			process_debug_command($debugline);
-			$debugline = '';
-		} else {
-			# no bytes read
-		}
-	}
-}
-
-#
-# If the execution is suspended, then we go into the debug
-# ui loop, reading and processing instructions.
-#
-sub debug_ui {
-	return unless( $suspend );
-	my $pc = $$currentframe{_pc_};
-	if (!$started) {
-		send_debug_event( "suspended $suspend", 0 );
-	} else {
-		$started = 0;
-	}
-   	$step = 0;
-   	$stepreturn = 0;
- 	my $rin = '';
-	my $win = '';
-	my $ein = '';
-    vec($rin,fileno($debugsock),1) = 1;
-    $ein = $rin | $win;
-    my $debugline = '';
-    while( $suspend ) {
-	    select($rin, undef, undef, undef);
-		my $bytes_to_read = 1024;
-		my $bytes_read = sysread($debugsock, $debugbuf, $bytes_to_read);
-		$debugline .= $debugbuf;
-		if( $debugline =~ /\n/ ) {
-			#print "read: $debugline";
-			process_debug_command($debugline);
-			$debugline = '';
-		}
-    }
-	send_debug_event( "resumed step", 0 ) if( $step );
-	send_debug_event( "resumed client", 0 ) unless( $step );
-}
-
-sub process_debug_command {
-	my $line = shift;
-	return if( length $line < 2 );
-	my @words = split /\s/, $line;
-	my $command = lc($words[0]);
-	my $dfunc = $debug_commands{$words[0]};
-	if( $dfunc ) {
-		&$dfunc( @words );
-	}
-}
-
-sub debug_clear_breakpoint {
-	shift;
-	my $line = shift;
-	$breakpoints[$line] = 0;
-	print $debugsock "ok\n";
-}
-my @saved_code;
-my %saved_labels;
-my $saved_pc;
-sub debug_eval {
-	shift;
-	my $code = shift;
-	my @lines = split /\|/, $code;
-	my $newpc = scalar @code;
-	@saved_code = @code;
-	%saved_labels = %labels;
-	foreach my $line ( @lines ) {
-	   	$line =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
-		push @code, $line;
-	}
-	push @code, "xyzzy";
-	map_labels();
-	$saved_pc = $$currentframe{_pc_};
-	$$currentframe{_pc_} = $newpc;
-	print $debugsock "ok\n";
-	$suspend = 0;
-}
-sub internal_end_eval {
-	my $result = pop @stack;
-	@code = @saved_code;
-	%labels = %saved_labels;
-	$$currentframe{_pc_} = $saved_pc;
-	send_debug_event( "evalresult $result", 0 );
-	$suspend = "eval";
-}
-	
-sub debug_data {
-	my $result = '';
-	foreach my $d ( @stack ) {
-		$result .= $d . '|';
-	}
-	print $debugsock "$result\n";
-}
-sub debug_drop_frame {
-	ireturn();
-	decrement_pc();
-	print $debugsock "ok\n";
-	send_debug_event( "resumed drop", 0 );
-	send_debug_event( "suspended drop", 0 );
-}
-sub debug_event_stop {
-	shift;
-	my $event = shift;
-	my $bool = shift;
-	$eventstops{$event} = $bool;
-	print $debugsock "ok\n";
-}
-sub debug_exit {
-	print $debugsock "ok\n";
-	send_debug_event( "terminated", 0 );
-	exit 0;
-}
-sub debug_pop {
-	pop @stack;
-	print $debugsock "ok\n";
-}
-sub debug_push {
-	shift;
-	my $value = shift;
-	push @stack, $value;
-	print $debugsock "ok\n";
-}
-sub debug_resume {
-	$suspend = 0;
-	print $debugsock "ok\n";
-}
-sub debug_set_breakpoint {
-	shift;
-	my $line = shift;
-	$breakpoints[$line] = 1;
-	print $debugsock "ok\n";
-}
-sub debug_set_data {
-	shift;
-	my $offset = shift;
-	my $value = shift;
-	$stack[$offset] = $value;
-	print $debugsock "ok\n";
-}
-sub debug_set_variable {
-	shift;
-	my $sfnumber = shift;
-	my $var = shift;
-	my $value = shift;
-	if( $sfnumber > $#frames ) {
-		$$currentframe{$var} = $value;
-	} else {
-		my $theframe = $frames[$sfnumber];
-		$$theframe{$var} = $value;
-	}
-	print $debugsock "ok\n";
-}
-sub debug_stack {
-	my $result = '';
-	foreach my $frame ( @frames ) {
-		$result .= print_frame($frame);
-		$result .= '#';
-	}
-	$result .= print_frame($currentframe);
-	print $debugsock "$result\n";
-}
-sub debug_step {
-	# set suspend to 0 to allow the debug loop to exit back to
-	# the instruction loop and thus run an instruction. However,
-	# we want to come back to the debug loop right away, so the
-	# step flag is set to true which will cause the suspend flag
-	# to get set to true when we get to the next instruction.
-	$step = 1;
-	$suspend = 0;
-	print $debugsock "ok\n";
-}
-sub debug_step_return {
-	$stepreturn = 1;
-	$suspend = 0;
-	print $debugsock "ok\n";
-}
-sub debug_suspend {
-	$suspend = "client";
-	print $debugsock "ok\n";
-}
-sub debug_var {
-	shift;
-	my $sfnumber = shift;
-	my $var = shift;
-	if( $sfnumber > $#frames ) {
-		print $debugsock "$$currentframe{$var}\n";
-	} else {
-		my $theframe = $frames[$sfnumber];
-		print $debugsock "$$theframe{$var}\n";
-	}
-}
-sub debug_watch {
-	shift;
-	my $key = shift;
-	my $value = shift;
-	$watchpoints{$key} = $value;
-	print $debugsock "ok\n";
-}
-#
-# Some event has happened so notify the debugger.
-# If there is no debugger, we may still want to report the
-# event (such as if it is an error).
-#
-sub send_debug_event {
-	my $event = shift;
-	if( $debugflag ) {
-		print $debugsock2 "$event\n";
-	} else {
-		my $use_stderr = shift;
-		print "Error: $event\n" if $use_stderr;
-	}
-}
-#
-# The stack frame output is:
-#    frame # frame # frame ...
-# where each frame is:
-#    filename | line number | function name | var | var | var | var ...
-#
-sub print_frame {
-	my $frame = shift;
-	my $result = $filename;
-	$result .= '|' . $$frame{_pc_};
-	$result .= '|' . $$frame{_func_};
-	for my $var ( keys %$frame ) {
-		$result .= '|' . $var unless( substr($var,0,1) eq '_');
-	}
-	return $result;
-}
-
-sub start_debugger {
-  if( defined($debugflag) ) {
-	if( $debugflag eq "-debug" ) {
-		{ # make STDOUT unbuffered
-			my $ofh = select STDOUT;
-	  		$| = 1;
-	  		select $ofh;
-		}
-		$debugflag = 1;
-		$debugport = shift @ARGV;
-		$debugport2 = shift @ARGV;
-		print "-debug $debugport $debugport2\n";
-
-		my $mainsock = new IO::Socket::INET (LocalHost => '127.0.0.1',
-                                   LocalPort => $debugport,
-                                   Listen    => 1,
-                                   Proto     => 'tcp',
-                                   Reuse     => 1,
-                                  );
-		$debugsock = $mainsock->accept();
-		my $set_it = "1"; 
-		my $ioctl_val = 0x80000000 | (4 << 16) | (ord('f') << 8) | 126; 
-		ioctl($debugsock, $ioctl_val, $set_it) or die "couldn't set nonblocking: $^E";
-
-		my $mainsock2 = new IO::Socket::INET (LocalHost => '127.0.0.1',
-                                   LocalPort => $debugport2,
-                                   Listen    => 1,
-                                   Proto     => 'tcp',
-                                   Reuse     => 1,
-                                  );
-		$debugsock2 = $mainsock2->accept();
-
-		print "debug connection accepted\n";
-	} else {
-		$debugflag = 0;
-	}
-  }
-}
diff --git a/org.eclipse.debug.examples.core/pdavm/tests/vmtest2.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest2.pda
deleted file mode 100644
index 95a35f0..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest2.pda
+++ /dev/null
@@ -1,48 +0,0 @@
-push 6
-push 7
-push 8
-push 9
-push 10
-call sub1
-output
-call sub3
-call sub5
-push 3
-halt
-:sub2
-push 27
-return
-:sub1
-var m
-var n
-call sub2
-pop $n
-pop $m
-push $n
-push $m
-return
-# zero-based line 23
-:sub3
-push 1
-call sub4
-push 2
-call sub4
-push 3
-return
-:sub4
-push 4
-return
-# zero-based line 34
-:sub5
-var a
-var b
-var c
-pop $c
-pop $b
-call sub6
-push $a
-return
-:sub6
-var b
-pop $b
-return
diff --git a/org.eclipse.debug.examples.core/pdavm/tests/vmtest3.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest3.pda
deleted file mode 100644
index a9fcfc2..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest3.pda
+++ /dev/null
@@ -1,11 +0,0 @@
-push 1
-push 2
-push 3
-foobar swish
-push 4
-add
-add
-call zippy
-add
-output
-halt
diff --git a/org.eclipse.debug.examples.core/pdavm/tests/vmtest6.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest6.pda
deleted file mode 100644
index d90a960..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest6.pda
+++ /dev/null
@@ -1,31 +0,0 @@
-var a
-var b
-push 1
-pop $a
-push 2
-pop $b
-push 3
-push 4
-#
-call inner
-#
-push $a
-push 2
-add
-pop $b
-output
-#
-halt
-#
-:inner
-var a
-var c
-pop $a
-pop $c
-push $a
-push $a
-add
-return
-:other
-push 15
-return
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/pdavm/tests/vmtest8.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest8.pda
deleted file mode 100644
index 7729409..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest8.pda
+++ /dev/null
@@ -1,14 +0,0 @@
-var a
-call inner
-push 1
-output
-halt
-:inner
-var b
-call inner2
-push 2
-return
-:inner2
-var c
-push 3
-return
diff --git a/org.eclipse.debug.examples.core/pdavm/tests/vmtests.pl b/org.eclipse.debug.examples.core/pdavm/tests/vmtests.pl
deleted file mode 100644
index 0e2f8a3..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtests.pl
+++ /dev/null
@@ -1,448 +0,0 @@
-#!perl.exe
-
-use strict;
-use warnings;
-use IO::Socket;
-
-#####################################################################
-# Copyright (c) 2004-2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Bjorn Freeman-Benson - initial API and implementation
-#####################################################################
-#
-# This test is designed to run on Windows:
-#
-# cd c:\eclipse\workspace\org.eclipse.debug.examples.core
-# perl pdavm\tests\vmtests.pl
-#
-# If the tests fail, they often indicate that by hanging in an
-# infinite loop. Additionally, the vm under test often becomes
-# a 100% CPU usage zombie. Use the task manager to kill them.
-#
-my $socket1;
-my $socket2;
-
-sub expect_output {
-	my $expect = shift;
-	my $line = <PROGRAM_OUTPUT>;
-	chomp($line);
-	return if( $line eq $expect );
-	die "expected output: $expect\nSaw output: $line";
-}
-sub expect_output_eof {
-	my $line = <PROGRAM_OUTPUT>;
-	return if( !defined $line );
-	die "expected: EOF on output";
-}
-sub send_command {
-	my $string = shift;
-	my $expect = shift;
-	$expect = "ok" if( !defined $expect );
-	#print STDERR "SEND: $string\n";
-	print $socket1 "$string\n";
-	my $result = <$socket1>;
-	chomp($result);
-	#print STDERR "RESULT: $result\n";
-	die "sent: $string\nexpected: $expect\nsaw:      $result" if( !($result eq $expect) );
-}
-sub expect_event {
-	my $string = shift;
-	my $event = <$socket2>;
-	chomp($event);
-	#print STDERR "EVENT: $event\n";
-	die "expected event: $string\nsaw event: $event" if( !($string eq $event) );
-}
-sub setup_sockets {
-	#print STDERR "calling socket 12345\n";
-	$socket1 = IO::Socket::INET->new(
-			Proto    => "tcp",
-			PeerAddr => "localhost",
-			PeerPort => "12345",
-			Timeout  => 10,
-		    )
-		  or die "cannot connect to debug socket 12345";
-	#print STDERR "calling socket 12346\n";
-	$socket2 = IO::Socket::INET->new(
-			Proto    => "tcp",
-			PeerAddr => "localhost",
-			PeerPort => "12346",
-			Timeout  => 10,
-		    )
-		  or die "cannot connect to debug socket 12346";
-	#print STDERR "done calling sockets\n";
-}
-
-sub test2 {
-	print "test2 (common debug commands)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest2.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("10");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		# test step
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		# test breakpoint
-		send_command("set 4");
-		send_command("data", "6|");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 4");
-		# test data stack
-		send_command("data", "6|7|8|9|");
-		send_command("popdata");
-		send_command("data", "6|7|8|");
-		send_command("pushdata 11");
-		send_command("data", "6|7|8|11|");
-		send_command("setdata 1 2");
-		send_command("data", "6|2|8|11|");
-		# test call stack
-		send_command("set 12");
-		send_command("set 19");
-		send_command("stepreturn");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 12");
-		send_command("clear 19");
-		send_command("stack", "pdavm\\tests\\vmtest2.pda|6|main#pdavm\\tests\\vmtest2.pda|18|sub1|m|n#pdavm\\tests\\vmtest2.pda|12|sub2" );
-		send_command("stepreturn");
-		expect_event("resumed client");
-		expect_event("suspended step");
-		send_command("stack", "pdavm\\tests\\vmtest2.pda|6|main#pdavm\\tests\\vmtest2.pda|18|sub1|m|n#pdavm\\tests\\vmtest2.pda|13|sub2" );
-		send_command("stepreturn");
-		expect_event("resumed client");
-		expect_event("suspended step");
-		send_command("stack", "pdavm\\tests\\vmtest2.pda|6|main#pdavm\\tests\\vmtest2.pda|22|sub1|m|n" );
-		send_command("set 6");
-		send_command("stepreturn");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 6");
-		# test set and clear
-		send_command("set 27");
-		send_command("set 29");
-		send_command("set 33");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 33");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 27");
-		send_command("clear 33");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 29");
-		# test var and setvar
-		send_command("set 47");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 47");
-		send_command("var 1 b", "4");
-		send_command("var 2 b", "2");
-		send_command("var 1 a", "0");
-		send_command("setvar 1 a 99");
-		send_command("data", "6|2|8|11|27|1|4|");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("var 1 a", "99");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("data", "6|2|8|11|27|1|4|99|");
-		# test exit
-		send_command("exit");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test2..SUCCESS\n";
-}
-
-sub test3 {
-	print "test3 (uncaught events)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest3.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("10");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("unimplemented instruction foobar");
-		expect_event("no such label zippy");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test3..SUCCESS\n";
-}
-sub test4 {
-	print "test4 (caught events)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest3.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("10");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		send_command("eventstop unimpinstr 1");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("unimplemented instruction foobar");
-		expect_event("suspended event unimpinstr");
-		send_command("eventstop unimpinstr 0");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("unimplemented instruction foobar");
-		expect_event("no such label zippy");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test4..SUCCESS\n";
-}
-sub test5 {
-	print "test5 (caught events)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest3.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("10");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		send_command("eventstop nosuchlabel 1");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("unimplemented instruction foobar");
-		expect_event("no such label zippy");
-		expect_event("suspended event nosuchlabel");
-		send_command("eventstop nosuchlabel 0");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("no such label zippy");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test5..SUCCESS\n";
-}
-sub test6 {
-	print "test6 (watch points)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest6.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("8");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		send_command("watch inner::a 1");
-		send_command("watch main::a 2");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended watch write main::a");
-		send_command("stack", "pdavm\\tests\\vmtest6.pda|4|main|a|b");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended watch read inner::a");
-		send_command("stack", "pdavm\\tests\\vmtest6.pda|10|main|a|b#pdavm\\tests\\vmtest6.pda|25|inner|a|c");
-		send_command("watch inner::a 0");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test6..SUCCESS\n";
-}
-sub test7 {
-	print "test7 (eval)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest6.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("8");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		send_command("set 25");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("suspended breakpoint 25");
-		#
-		send_command("eval push%204|push%205|add");
-		expect_event("resumed client");
-		expect_event("evalresult 9");
-		expect_event("suspended eval");
-		#
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("stack", "pdavm\\tests\\vmtest6.pda|10|main|a|b#pdavm\\tests\\vmtest6.pda|26|inner|a|c");
- 		send_command("data", "4|4|");
- 		send_command("eval call%20other");
-		expect_event("resumed client");
-		expect_event("evalresult 15");
-		expect_event("suspended eval");
-		send_command("stack", "pdavm\\tests\\vmtest6.pda|10|main|a|b#pdavm\\tests\\vmtest6.pda|26|inner|a|c");
- 		send_command("data", "4|4|");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test7..SUCCESS\n";
-}
-sub test1 {
-	print "test1 (normal run mode)..\n";
-	open PROGRAM_OUTPUT, "perl pdavm\\pda.pl examples\\example.pda |" or die $!;
-	expect_output("\"hello\"");
-	expect_output("\"barfoo\"");
-	expect_output("\"first\"");
-	expect_output("\"second\"");
-	expect_output("12");
-	expect_output("11");
-	expect_output("10");
-	expect_output("\"barfoo\"");
-	expect_output("\"first\"");
-	expect_output("\"second\"");
-	expect_output("\"end\"");
-	expect_output_eof();
-	print "test1..SUCCESS\n";
-}
-sub test8 {
-	print "test8 (drop to frame)..\n";
-	
-	my $kidpid;
-	die "can't fork: $!" unless defined($kidpid = fork());
-	if( $kidpid ) {	
-		#print STDERR "starting program\n";
-		open PROGRAM_OUTPUT, "perl pdavm\\pda.pl pdavm\\tests\\vmtest8.pda -debug 12345 12346 |";
-		#print STDERR "done starting program\n";
-		expect_output("-debug 12345 12346");
-		expect_output("debug connection accepted");
-		expect_output("1");
-		expect_output_eof();
-		exit 0;
-	} else {
-		setup_sockets();
-		expect_event("started");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("stack", "pdavm\\tests\\vmtest8.pda|2|main|a#pdavm\\tests\\vmtest8.pda|8|inner|b#pdavm\\tests\\vmtest8.pda|12|inner2|c");
-		send_command("drop");
-		expect_event("suspended drop");
-		send_command("stack", "pdavm\\tests\\vmtest8.pda|2|main|a#pdavm\\tests\\vmtest8.pda|7|inner|b");
-		send_command("step");
-		expect_event("resumed step");
-		expect_event("suspended step");
-		send_command("stack", "pdavm\\tests\\vmtest8.pda|2|main|a#pdavm\\tests\\vmtest8.pda|8|inner|b#pdavm\\tests\\vmtest8.pda|10|inner2");
-		send_command("resume");
-		expect_event("resumed client");
-		expect_event("terminated");
-	}
-	#print STDERR "waiting for child\n";
-	wait();
-	#print STDERR "child joined\n";
-	close PROGRAM_OUTPUT;
-	print "test8..SUCCESS\n";
-}
-
-#
-# Run the tests
-#
-test1();
-test2();
-test3();
-test4();
-test5();
-test6();
-test7();
-test8();
-print "All tests complete\n";
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/plugin.xml b/org.eclipse.debug.examples.core/plugin.xml
deleted file mode 100644
index 0133be3..0000000
--- a/org.eclipse.debug.examples.core/plugin.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension
-         point="org.eclipse.core.variables.valueVariables">
-      <variable
-            description="Path to Perl executable in the local file system"
-            name="perlExecutable"
-            initialValue="c:\perl\bin\perl.exe"/>
-   </extension>
-<!--#ifdef ex1-->
-<!--#else-->
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationTypes">
-      <launchConfigurationType
-            sourceLocatorId="pda.sourceLocator"
-            delegate="org.eclipse.debug.examples.core.pda.launcher.PDALaunchDelegate"
-            sourcePathComputerId="pda.sourcePathComputer"
-            name="PDA Application"
-            id="pda.launchType"
-            modes="run, debug"/>
-   </extension>
-<!--#endif-->  
-
-<!--#ifdef ex4-->
-<!--#else-->
-   <extension
-         point="org.eclipse.debug.core.sourceLocators">
-      <sourceLocator
-            class="org.eclipse.debug.examples.core.pda.sourcelookup.PDASourceLookupDirector"
-            name="PDA Source Locator"
-            id="pda.sourceLocator"/>
-   </extension>
-   <extension
-         point="org.eclipse.debug.core.sourcePathComputers">
-      <sourcePathComputer
-            class="org.eclipse.debug.examples.core.pda.sourcelookup.PDASourcePathComputerDelegate"
-            id="pda.sourcePathComputer"/>
-   </extension>
-<!--#endif-->
-    
-<!--#ifdef ex3-->
-<!--#else-->    
-   <extension
-         point="org.eclipse.debug.core.breakpoints">
-      <breakpoint
-            class="org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint"
-            name="PDA Line Breakpoints"
-            markerType="org.eclipse.debug.examples.core.pda.markerType.lineBreakpoint"
-            id="pda.lineBreakpoint"/>
-      <breakpoint
-            class="org.eclipse.debug.examples.core.pda.breakpoints.PDAWatchpoint"
-            name="PDA Watchpoints"
-            markerType="org.eclipse.debug.examples.core.pda.markerType.watchpoint"
-            id="pda.watchpoint"/>
-   </extension>
-   <extension
-         id="pda.markerType.lineBreakpoint"
-         name="PDA Line Breakpoint Marker"
-         point="org.eclipse.core.resources.markers">
-      <super type="org.eclipse.debug.core.lineBreakpointMarker"/>
-      <persistent value="true"/>
-   </extension>
-   <extension
-         id="pda.markerType.watchpoint"
-         name="PDA Watchpoint Marker"
-         point="org.eclipse.core.resources.markers">
-      <super type="org.eclipse.debug.examples.core.pda.markerType.lineBreakpoint"/>
-      <persistent value="true"/>
-   </extension>
-<!--#endif-->   
-
-<!--#ifdef ex6-->
-<!--#else--> 
-   <extension
-         point="org.eclipse.debug.core.logicalStructureTypes">
-      <logicalStructureType
-            class="org.eclipse.debug.examples.core.pda.model.WordStructureDelegate"
-            description="Words"
-            id="pda.wordStructure"
-            modelIdentifier="pda.debugModel"/>
-   </extension>
-<!--#endif-->
-</plugin>
diff --git a/org.eclipse.debug.examples.core/samples/counter.pda b/org.eclipse.debug.examples.core/samples/counter.pda
deleted file mode 100644
index 9b2b731..0000000
--- a/org.eclipse.debug.examples.core/samples/counter.pda
+++ /dev/null
@@ -1,11 +0,0 @@
-push 0
-:main
-var n
-pop $n
-push $n
-push 1
-add
-dup
-push $n
-output
-branch_not_zero main
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/samples/drop.pda b/org.eclipse.debug.examples.core/samples/drop.pda
deleted file mode 100644
index 84f60fe..0000000
--- a/org.eclipse.debug.examples.core/samples/drop.pda
+++ /dev/null
@@ -1,12 +0,0 @@
-call one
-:one
-call two
-:two
-call three
-:three
-call four
-:four
-push DONE
-output
-
-
diff --git a/org.eclipse.debug.examples.core/samples/example.pda b/org.eclipse.debug.examples.core/samples/example.pda
deleted file mode 100644
index a958863..0000000
--- a/org.eclipse.debug.examples.core/samples/example.pda
+++ /dev/null
@@ -1,35 +0,0 @@
-push "hello"
-output
-call foobar
-push 3
-:label
-dup
-push 4
-push 5
-add
-add
-output
-dec
-dup
-branch_not_zero label
-call foobar
-push "end"
-output
-halt
-:foobar
-var a
-var b
-call barfoo
-push "first"
-push "second"
-pop $a
-pop $b
-push $a
-push $b
-output
-output
-return
-:barfoo
-push "barfoo"
-output
-return
diff --git a/org.eclipse.debug.examples.core/samples/fibonacci.pda b/org.eclipse.debug.examples.core/samples/fibonacci.pda
deleted file mode 100644
index e39595a..0000000
--- a/org.eclipse.debug.examples.core/samples/fibonacci.pda
+++ /dev/null
@@ -1,32 +0,0 @@
-push 6
-call fibonacci
-output
-halt
-#
-# f(n) = f(n-1) + f(n-2)
-# f(0) = 1
-# f(1) = 1
-#
-:fibonacci
-var n
-pop $n
-push $n
-branch_not_zero gt0
-push 1
-return
-:gt0
-push $n
-dec
-branch_not_zero gt1
-push 1
-return
-:gt1
-push $n
-dec
-call fibonacci
-push $n
-dec
-dec
-call fibonacci
-add
-return
diff --git a/org.eclipse.debug.examples.core/samples/structures.pda b/org.eclipse.debug.examples.core/samples/structures.pda
deleted file mode 100644
index 97858b0..0000000
--- a/org.eclipse.debug.examples.core/samples/structures.pda
+++ /dev/null
@@ -1,8 +0,0 @@
-push one two three
-push 1 2 3
-var x
-var y
-pop $x
-pop $y
-push Done
-output
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/DebugCorePlugin.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/DebugCorePlugin.java
deleted file mode 100644
index f58fe86..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/DebugCorePlugin.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class DebugCorePlugin extends Plugin {
-	//The shared instance.
-	private static DebugCorePlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * Unique identifier for the PDA debug model (value 
-	 * <code>pda.debugModel</code>).
-	 */
-	public static final String ID_PDA_DEBUG_MODEL = "pda.debugModel";
-	
-	/**
-	 * Name of the string substitution variable that resolves to the
-	 * location of a local Perl executable (value <code>perlExecutable</code>).
-	 */
-	public static final String VARIALBE_PERL_EXECUTABLE = "perlExecutable";
-	/**
-	 * Launch configuration attribute key. Value is a path to a perl
-	 * program. The path is a string representing a full path
-	 * to a perl program in the workspace. 
-	 */
-	public static final String ATTR_PDA_PROGRAM = ID_PDA_DEBUG_MODEL + ".ATTR_PDA_PROGRAM";
-	
-	/**
-	 * Identifier for the PDA launch configuration type
-	 * (value <code>pda.launchType</code>)
-	 */
-	public static final String ID_PDA_LAUNCH_CONFIGURATION_TYPE = "pda.launchType";	
-	
-	/**
-	 * The constructor.
-	 */
-	public DebugCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static DebugCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = DebugCorePlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle.getBundle("org.eclipse.debug.examples.core.pda.DebugCorePluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-	
-	/**
-	 * Return a <code>java.io.File</code> object that corresponds to the specified
-	 * <code>IPath</code> in the plugin directory, or <code>null</code> if none.
-	 */
-	public static File getFileInPlugin(IPath path) {
-		try {
-			URL installURL =
-				new URL(getDefault().getDescriptor().getInstallURL(), path.toString());
-			URL localURL = Platform.asLocalURL(installURL);
-			return new File(localURL.getFile());
-		} catch (IOException ioe) {
-			return null;
-		}
-	}	
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDALineBreakpoint.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDALineBreakpoint.java
deleted file mode 100644
index 24062b0..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDALineBreakpoint.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.breakpoints;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.core.model.LineBreakpoint;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.model.IPDAEventListener;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-
-
-/**
- * PDA line breakpoint
- */
-public class PDALineBreakpoint extends LineBreakpoint implements IPDAEventListener {
-	
-	// target currently installed in
-	private PDADebugTarget fTarget;
-	
-	/**
-	 * Default constructor is required for the breakpoint manager
-	 * to re-create persisted breakpoints. After instantiating a breakpoint,
-	 * the <code>setMarker(...)</code> method is called to restore
-	 * this breakpoint's attributes.
-	 */
-	public PDALineBreakpoint() {
-	}
-	
-	/**
-	 * Constructs a line breakpoint on the given resource at the given
-	 * line number. The line number is 1-based (i.e. the first line of a
-	 * file is line number 1). The PDA VM uses 0-based line numbers,
-	 * so this line number translation is done at breakpoint install time.
-	 * 
-	 * @param resource file on which to set the breakpoint
-	 * @param lineNumber 1-based line number of the breakpoint
-	 * @throws CoreException if unable to create the breakpoint
-	 */
-	public PDALineBreakpoint(final IResource resource, final int lineNumber) throws CoreException {
-		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				IMarker marker = resource.createMarker("org.eclipse.debug.examples.core.pda.markerType.lineBreakpoint");
-				setMarker(marker);
-				marker.setAttribute(IBreakpoint.ENABLED, Boolean.TRUE);
-				marker.setAttribute(IMarker.LINE_NUMBER, lineNumber);
-				marker.setAttribute(IBreakpoint.ID, getModelIdentifier());
-				marker.setAttribute(IMarker.MESSAGE, "Line Breakpoint: " + resource.getName() + " [line: " + lineNumber + "]");
-			}
-		};
-		run(getMarkerRule(resource), runnable);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IBreakpoint#getModelIdentifier()
-	 */
-	public String getModelIdentifier() {
-		return DebugCorePlugin.ID_PDA_DEBUG_MODEL;
-	}
-	
-	/**
-	 * Returns whether this breakpoint is a run-to-line breakpoint
-	 * 
-	 * @return whether this breakpoint is a run-to-line breakpoint
-	 */
-	public boolean isRunToLineBreakpoint() {
-		return false;
-	}
-    
-    /**
-     * Installs this breakpoint in the given interprettor.
-     * Registeres this breakpoint as an event listener in the
-     * given target and creates the breakpoint specific request.
-     * 
-     * @param target PDA interprettor
-     * @throws CoreException if installation fails
-     */
-    public void install(PDADebugTarget target) throws CoreException {
-    	fTarget = target;
-    	target.addEventListener(this);
-    	createRequest(target);
-    }
-    
-    /**
-     * Create the breakpoint specific request in the target. Subclasses
-     * should override.
-     * 
-     * @param target PDA interprettor
-     * @throws CoreException if request creation fails
-     */
-    protected void createRequest(PDADebugTarget target) throws CoreException {
-		//#ifdef ex3
-//#		// TODO: Exercise 3 - create breakpoint request in interpreter 		
-		//#else
-    	target.sendRequest("set " + (getLineNumber() - 1));
-		//#endif
-    }
-    
-    /**
-     * Removes this breakpoint's event request from the target. Subclasses
-     * should override.
-     * 
-     * @param target PDA interprettor
-     * @throws CoreException if clearing the request fails
-     */
-    protected void clearRequest(PDADebugTarget target) throws CoreException {
-		//#ifdef ex3
-//#		// TODO: Exercise 3 - clear breakpoint request in interpreter
-		//#else
-    	target.sendRequest("clear " + (getLineNumber() - 1));
-		//#endif
-    }
-    
-    /**
-     * Removes this breakpoint from the given interprettor.
-     * Removes this breakpoint as an event listener and clears
-     * the request for the interprettor.
-     * 
-     * @param target PDA interprettor
-     * @throws CoreException if removal fails
-     */
-    public void remove(PDADebugTarget target) throws CoreException {
-    	target.removeEventListener(this);
-    	clearRequest(target);
-    	fTarget = null;
-    	
-    }
-    
-    /**
-     * Returns the target this breakpoint is installed in or <code>null</code>.
-     * 
-     * @return the target this breakpoint is installed in or <code>null</code>
-     */
-    protected PDADebugTarget getDebugTarget() {
-    	return fTarget;
-    }
-    
-    /**
-     * Notify's the PDA interprettor that this breakpoint has been hit.
-     */
-    protected void notifyThread() {
-    	if (fTarget != null) {
-			try {
-				IThread[] threads = fTarget.getThreads();
-				if (threads.length == 1) {
-	    			PDAThread thread = (PDAThread)threads[0];
-	    			thread.suspendedBy(this);
-	    		}
-			} catch (DebugException e) {
-			}    		
-    	}
-    }
-
-	/* (non-Javadoc)
-	 * 
-	 * Subclasses should override to handle their breakpoint specific event.
-	 * 
-	 * @see org.eclipse.debug.examples.core.pda.model.IPDAEventListener#handleEvent(java.lang.String)
-	 */
-	public void handleEvent(String event) {
-		if (event.startsWith("suspended breakpoint")) {
-			handleHit(event);
-		}
-	}
-    
-	/**
-     * Determines if this breakpoint was hit and notifies the thread.
-     * 
-     * @param event breakpoint event
-     */
-    private void handleHit(String event) {
-    	int lastSpace = event.lastIndexOf(' ');
-    	if (lastSpace > 0) {
-    		String line = event.substring(lastSpace + 1);
-    		int lineNumber = Integer.parseInt(line);
-    		// breakpoints event line numbers are 0 based, model objects are 1 based
-    		lineNumber++;
-    		try {
-				if (getLineNumber() == lineNumber) {
-					notifyThread();
-				}
-    		} catch (CoreException e) {
-    		}
-    	}
-    }		
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDARunToLineBreakpoint.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDARunToLineBreakpoint.java
deleted file mode 100644
index b861fff..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDARunToLineBreakpoint.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.breakpoints;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-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.debug.core.DebugException;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * A run to line breakpoint.
- */
-public class PDARunToLineBreakpoint extends PDALineBreakpoint {
-	
-	private IFile fSourceFile;
-	
-	/**
-	 * Constructs a run-to-line breakpoint in the given PDA program.
-	 * 
-	 * @param resource PDA source file
-	 * @param lineNumber line to run to
-	 * @exception DebugException if unable to create the breakpoint
-	 */
-	public PDARunToLineBreakpoint(final IFile resource, final int lineNumber) throws DebugException {
-		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				// associate with workspace root to avoid drawing in editor ruler
-				IMarker marker = ResourcesPlugin.getWorkspace().getRoot().createMarker("org.eclipse.debug.examples.core.pda.markerType.lineBreakpoint");
-				setMarker(marker);
-				marker.setAttribute(IBreakpoint.ENABLED, Boolean.TRUE);
-				marker.setAttribute(IMarker.LINE_NUMBER, lineNumber);
-				marker.setAttribute(IBreakpoint.ID, getModelIdentifier());
-				setRegistered(false);
-				fSourceFile = resource;
-			}
-		};
-		run(getMarkerRule(resource), runnable);		
-	}
-	
-	/**
-	 * Returns whether this breakpoint is a run-to-line breakpoint
-	 * 
-	 * @return whether this breakpoint is a run-to-line breakpoint
-	 */
-	public boolean isRunToLineBreakpoint() {
-		return true;
-	}
-	
-	/**
-	 * Returns the source file this breakpoint is contained in.
-	 * 
-	 * @return the source file this breakpoint is contained in
-	 */
-	public IFile getSourceFile() {
-		return fSourceFile;
-	}
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDAWatchpoint.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDAWatchpoint.java
deleted file mode 100644
index ab819d0..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDAWatchpoint.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.breakpoints;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.IWatchpoint;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-
-
-/**
- * A watchpoint.
- */
-public class PDAWatchpoint extends PDALineBreakpoint implements IWatchpoint {
-    
-    // 'read' or 'write' depending on what caused the last suspend for this watchpoint
-    private String fLastSuspendType;
-    
-    // marker attributes
-    public static final String ACCESS = "ACCESS";
-    public static final String MODIFICATION = "MODIFICATION";
-    public static final String FUNCTION_NAME = "FUNCTION_NAME";
-    public static final String VAR_NAME = "VAR_NAME";
-
-	/**
-	 * Default constructor is required for the breakpoint manager
-	 * to re-create persisted breakpoints. After instantiating a breakpoint,
-	 * the <code>setMarker(...)</code> method is called to restore
-	 * this breakpoint's attributes.
-	 */
-    public PDAWatchpoint() {
-	}
-	/**
-	 * Constructs a line breakpoint on the given resource at the given
-	 * line number. The line number is 1-based (i.e. the first line of a
-	 * file is line number 1). The PDA VM uses 0-based line numbers,
-	 * so this line number translation is done at breakpoint install time.
-	 * 
-	 * @param resource file on which to set the breakpoint
-	 * @param lineNumber 1-based line number of the breakpoint
-	 * @param functionName function name the variable is defined in
-	 * @param varName variable name that watchpoint is set on
-	 * @param access whether this is an access watchpoint
-	 * @param modification whether this in a modification watchpoint
-	 * @throws CoreException if unable to create the watchpoint
-	 */
-	public PDAWatchpoint(final IResource resource, final int lineNumber, final String functionName, final String varName, final boolean access, final boolean modification) throws CoreException {
-		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				IMarker marker = resource.createMarker("org.eclipse.debug.examples.core.pda.markerType.watchpoint");
-				setMarker(marker);
-				setEnabled(true);
-				ensureMarker().setAttribute(IMarker.LINE_NUMBER, lineNumber);
-				ensureMarker().setAttribute(IBreakpoint.ID, getModelIdentifier());
-				setAccess(access);
-				setModification(modification);
-				setVariable(functionName, varName);
-				marker.setAttribute(IMarker.MESSAGE, "Watchpoint: " + resource.getName() + " [line: " + lineNumber + "]");
-			}
-		};
-		run(getMarkerRule(resource), runnable);
-	}    
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IWatchpoint#isAccess()
-     */
-    public boolean isAccess() throws CoreException {
-        return getMarker().getAttribute(ACCESS, true);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IWatchpoint#setAccess(boolean)
-     */
-    public void setAccess(boolean access) throws CoreException {
-        setAttribute(ACCESS, access);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IWatchpoint#isModification()
-     */
-    public boolean isModification() throws CoreException {
-        return getMarker().getAttribute(MODIFICATION, true);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IWatchpoint#setModification(boolean)
-     */
-    public void setModification(boolean modification) throws CoreException {
-        setAttribute(MODIFICATION, modification); 
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IWatchpoint#supportsAccess()
-     */
-    public boolean supportsAccess() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IWatchpoint#supportsModification()
-     */
-    public boolean supportsModification() {
-        return true;
-    }
-    
-    /**
-     * Sets the variable and function names the watchpoint is set on.
-     * 
-     * @param functionName function name
-     * @param variableName variable name
-     * @throws CoreException if an exception occurrs setting marker attribtues
-     */
-    protected void setVariable(String functionName, String variableName) throws CoreException {
-        setAttribute(VAR_NAME, variableName);
-        setAttribute(FUNCTION_NAME, functionName);
-    }
-    
-    /**
-     * Returns the name of the variable this watchpoint is set on.
-     * 
-     * @return the name of the variable this watchpoint is set on
-     * @throws CoreException if unable to access the attribute
-     */
-    public String getVariableName() throws CoreException {
-        return getMarker().getAttribute(VAR_NAME, (String)null);
-    }
-
-    /**
-     * Returns the name of the function the variable associted with this watchpoint is defined in.
-     * 
-     * @return the name of the function the variable associted with this watchpoint is defined in
-     * @throws CoreException if unable to access the attribute
-     */
-    public String getFunctionName() throws CoreException {
-        return getMarker().getAttribute(FUNCTION_NAME, (String)null);
-    }    
-    
-    /**
-     * Sets the type of event that causes the last suspend event.
-     * 
-     * @param description one of 'read' or 'write'
-     */
-    public void setSuspendType(String description) {
-        fLastSuspendType = description;
-    }
-    
-    /**
-     * Returns the type of event that caused the last suspend.
-     * 
-     * @return 'read', 'write', or <code>null</code> if undefined
-     */
-    public String getSuspendType() {
-        return fLastSuspendType;
-    }
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint#createRequest(org.eclipse.debug.examples.core.pda.model.PDADebugTarget)
-	 */
-	protected void createRequest(PDADebugTarget target) throws CoreException {
-        int flag = 0;
-        if (isAccess()) {
-            flag = flag | 1;
-        }
-        if (isModification()) {
-            flag = flag | 2;
-        }		
-		target.sendRequest("watch " + getFunctionName() + "::" + getVariableName() + " " + flag);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint#clearRequest(org.eclipse.debug.examples.core.pda.model.PDADebugTarget)
-	 */
-	protected void clearRequest(PDADebugTarget target) throws CoreException {
-		 target.sendRequest("watch " + getFunctionName() + "::" + getVariableName() + " " + 0);
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.IPDAEventListener#handleEvent(java.lang.String)
-	 */
-	public void handleEvent(String event) {
-		if (event.startsWith("suspended watch")) {
-			handleHit(event);
-		}
-	}
-    
-	/**
-     * Determines if this breakpoint was hit and notifies the thread.
-     * 
-     * @param event breakpoint event
-     */
-    private void handleHit(String event) {
-        String[] strings = event.split(" ");
-        if (strings.length == 4) {
-            String fv = strings[3];
-            int j = fv.indexOf("::");
-            if (j > 0) {
-                String fcn = fv.substring(0, j);
-                String var = fv.substring(j + 2);
-				try {
-					if (getVariableName().equals(var) && getFunctionName().equals(fcn)) {
-						setSuspendType(strings[2]);
-					    notifyThread();
-					}
-				} catch (CoreException e) {
-				}
-            }
-    	}
-    }    
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/launcher/PDALaunchDelegate.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/launcher/PDALaunchDelegate.java
deleted file mode 100644
index e78fc56..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/launcher/PDALaunchDelegate.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.launcher;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-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.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IValueVariable;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.LaunchConfigurationDelegate;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-
-
-/**
- * Launches PDA program on a PDA interpretter written in Perl
- */
-public class PDALaunchDelegate extends LaunchConfigurationDelegate {
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
-		//#ifdef ex1
-//#		// TODO: Exercise 1 - Launch a command shell as a system process to echo "foo"
-		//#elseif ex1_answer
-//#		Process process = DebugPlugin.exec(new String[]{"cmd", "/C",  "\"echo foo\""}, null);
-//#		new RuntimeProcess(launch, process, "Hello", null);
-		//#else		
-		
-		List commandList = new ArrayList();
-		
-		// Perl executable
-		IValueVariable perl = VariablesPlugin.getDefault().getStringVariableManager().getValueVariable(DebugCorePlugin.VARIALBE_PERL_EXECUTABLE);
-		if (perl == null) {
-			abort("Perl executable location undefined. Check value of ${perlExecutable}.", null);
-		}
-		String path = perl.getValue();
-		if (path == null) {
-			abort("Perl executable location unspecified. Check value of ${perlExecutable}.", null);
-		}
-		File exe = new File(path);
-		if (!exe.exists()) {
-			abort(MessageFormat.format("Specified Perl executable {0} does not exist. Check value of $perlExecutable.", new String[]{path}), null);
-		}
-		commandList.add(path);
-		
-		// Add PDA VM
-		File vm = DebugCorePlugin.getFileInPlugin(new Path("pdavm/pda.pl"));
-		if (vm == null) {
-			abort("Missing PDA VM", null);
-		}
-		commandList.add(vm.getAbsolutePath());
-		
-		// program name
-		String program = configuration.getAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, (String)null);
-		if (program == null) {
-			abort("Perl program unspecified.", null);
-		}
-		
-		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(program));
-		if (!file.exists()) {
-			abort(MessageFormat.format("Perl program {0} does not exist.", new String[] {file.getFullPath().toString()}), null);
-		}
-		
-		commandList.add(file.getLocation().toOSString());
-		
-		// if in debug mode, add debug arguments - i.e. '-debug requestPort eventPort'
-		int requestPort = -1;
-		int eventPort = -1;
-		if (mode.equals(ILaunchManager.DEBUG_MODE)) {
-			requestPort = findFreePort();
-			eventPort = findFreePort();
-			if (requestPort == -1 || eventPort == -1) {
-				abort("Unable to find free port", null);
-			}
-			commandList.add("-debug");
-			commandList.add("" + requestPort);
-			commandList.add("" + eventPort);
-		}
-		
-		String[] commandLine = (String[]) commandList.toArray(new String[commandList.size()]);
-		Process process = DebugPlugin.exec(commandLine, null);
-		IProcess p = DebugPlugin.newProcess(launch, process, path);
-		// if in debug mode, create a debug target 
-		if (mode.equals(ILaunchManager.DEBUG_MODE)) {
-			IDebugTarget target = new PDADebugTarget(launch, p, requestPort, eventPort);
-			launch.addDebugTarget(target);
-		}
-		//#endif
-	}
-	
-	/**
-	 * Throws an exception with a new status containing the given
-	 * message and optional exception.
-	 * 
-	 * @param message error message
-	 * @param e underlying exception
-	 * @throws CoreException
-	 */
-	private void abort(String message, Throwable e) throws CoreException {
-		throw new CoreException(new Status(IStatus.ERROR, DebugCorePlugin.getDefault().getDescriptor().getUniqueIdentifier(), 0, message, e));
-	}
-	
-	/**
-	 * Returns a free port number on localhost, or -1 if unable to find a free port.
-	 * 
-	 * @return a free port number on localhost, or -1 if unable to find a free port
-	 */
-	public static int findFreePort() {
-		ServerSocket socket= null;
-		try {
-			socket= new ServerSocket(0);
-			return socket.getLocalPort();
-		} catch (IOException e) { 
-		} finally {
-			if (socket != null) {
-				try {
-					socket.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-		return -1;		
-	}		
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/IPDAEventListener.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/IPDAEventListener.java
deleted file mode 100644
index 6935ad3..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/IPDAEventListener.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-/**
- * Listeners are notified of events occurring in a PDA program
- * being interpreted.
- * <p>
- * The events generated by the interpreter are:
- * <ul>
- * <li><code>started</code> - the interpreter has started (guaranteed to be the
- * 		first event sent)</li>
- * <li><code>terminated</code> - the interpreter has terminated (guaranteed to be
- * 		the last event sent)</li>
- * <li><code>suspended X</code> - the interpreter has suspended and entered debug mode;
- * 		<code>X</code> is the cause of the suspension:
- * 		<ul>
- * 		<li><code>breakpoint N</code> - a breakpoint at line <code>N</code> was hit</li>
- * 		<li><code>client</code> - a client request to suspend has completed</li>
- * 		<li><code>drop</code> - a client request to drop a frame has completed</li>
- * 		<li><code>event E</code> - an error was encountered, where <code>E</code> is one
- * 			of <code>unimpinstr</code> or <code>nosuchlabel</code></li>
- * 		<li><code>step</code> - a step request has completed</li>
- * 		<li><code>watch A F::V</code> - a watchpoint was hit for reason <code>A</code>
- * 			(<code>read</code> or <code>write</code>), on variable <code>V</code> in
- * 			function <code>F</code></li>
- * 		</ul>
- * 		</li>
- * <li><code>resumed X</code> - the interpreter has resumed execution in run mode;
- * 		<code>X</code> is the cause of the resume:
- * 		<ul>
- * 		<li><code>step</code> - a step request has been initiated</li>
- * 		<li><code>client</code> - a client request to resume has been initiated</li>
- * 		</ul>
- * 		</li>
- * <li><code>unimplemented instruction X</code> - an unimplemented instruction <code>X</code>
- * 		was encountered</li>
- * <li><code>no such label X</code> - a branch or call to an unknown label <code>X</code>
- * 		was encountered</li>
- * </ul>
- * </p>
- */
-public interface IPDAEventListener {
-	
-	/**
-	 * Notification the given event occurred in the target program
-	 * being interpreted.
-	 * 
-	 * @param event the event
-	 */
-	public void handleEvent(String event);
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArray.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArray.java
deleted file mode 100644
index e27e1ba..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArray.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IVariable;
-
-public class PDAArray extends PDAValue {
-
-	/**
-	 * An array splits a value into its words
-	 *
-	 * @param value existing value 
-	 * @throws DebugException 
-	 */
-	public PDAArray(PDAValue value) throws DebugException {
-		super(value.getPDADebugTarget(), value.getValueString());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#hasVariables()
-	 */
-	public boolean hasVariables() throws DebugException {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#getVariables()
-	 */
-	public IVariable[] getVariables() throws DebugException {
-		String string = getValueString();
-		String[] words = string.split("\\W+");
-		IVariable[] variables = new IVariable[words.length];
-		for (int i = 0; i < words.length; i++) {
-			String word = words[i];
-			variables[i] = new PDAArrayEntry(getPDADebugTarget(), i, new PDAValue(getPDADebugTarget(), word));
-		}
-		return variables;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArrayEntry.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArrayEntry.java
deleted file mode 100644
index 9ff3ca7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArrayEntry.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.core.model.IVariable;
-
-public class PDAArrayEntry extends PDADebugElement implements IVariable {
-	
-	private IValue fValue;
-	private int fIndex;
-
-	/**
-	 * Constructs a new array entry
-	 * 
-	 * @param target debug target
-	 * @param index index in the array
-	 * @param value value of the entry
-	 */
-	public PDAArrayEntry(IDebugTarget target, int index, IValue value) {
-		super(target);
-		fValue = value;
-		fIndex = index;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#getValue()
-	 */
-	public IValue getValue() throws DebugException {
-		return fValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#getName()
-	 */
-	public String getName() throws DebugException {
-		return "[" + fIndex + "]";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#getReferenceTypeName()
-	 */
-	public String getReferenceTypeName() throws DebugException {
-		return "String";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#hasValueChanged()
-	 */
-	public boolean hasValueChanged() throws DebugException {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#setValue(java.lang.String)
-	 */
-	public void setValue(String expression) throws DebugException {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#setValue(org.eclipse.debug.core.model.IValue)
-	 */
-	public void setValue(IValue value) throws DebugException {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#supportsValueModification()
-	 */
-	public boolean supportsValueModification() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang.String)
-	 */
-	public boolean verifyValue(String expression) throws DebugException {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#verifyValue(org.eclipse.debug.core.model.IValue)
-	 */
-	public boolean verifyValue(IValue value) throws DebugException {
-		return false;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugElement.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugElement.java
deleted file mode 100644
index e64f220..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugElement.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.DebugElement;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-
-
-/**
- * Common function for PDA debug elements.
- */
-public class PDADebugElement extends DebugElement {
-
-	/**
-	 * Constructs a new debug element in the given target.
-	 * 
-	 * @param target debug target
-	 */
-	public PDADebugElement(IDebugTarget target) {
-		super(target);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
-	 */
-	public String getModelIdentifier() {
-		return DebugCorePlugin.ID_PDA_DEBUG_MODEL;
-	}
-	
-	/**
-	 * Sends a request to the PDA interpreter, waits for and returns the reply.
-	 * <p>
-	 * Interpreter commands and replies are as follows:
-	 * <ul>
-	 * <li><code>clear N</code> - clear the breakpoint on line <code>N</code>;
-	 * 		reply is <code>ok</code></li>
-	 * <li><code>data</code> - return the contents of the data stack; reply is the data
-	 * 		from oldest to newest as a single string <code>"value|value|value|...|value|"</code></li>
-	 * <li><code>drop</code> - pops the top stack frame off the call stack setting the 
-	 * 		instruction pointer to the calling statement in the calling frame</li>
-	 * <li><code>eventstop E B</code> - optionally stop the interpreter when an error event
-	 * 		<code>E</code> is encountered; <code>B</code> specifies stop (<code>1</code>) or
-	 * 		continue (<code>0</code>). The possible events are <code>unimpinstr</code> and
-	 * 		<code>nosuchlabel</code>. Reply is <code>ok</code>. When an event is encountered,
-	 * 		the interpreter sends the error event (for example <code>unimlpemented instruction foo</code>)
-	 * 		and corresponding suspend event (for example <code>suspended event unimpinstr</code>).</li>
-	 * <li><code>exit</code> - end the interpreter; reply is <code>ok</code></li>
-	 * <li><code>popdata</code> - pop the top value off the data stack; reply is the value</li>
-	 * <li><code>pushdata V</code> - push the value <code>V</code> onto the data stack; reply is
-	 * 		<code>ok</code></li>
-	 * <li><code>resume</code> - resume execution of the program; reply is <code>ok</code></li>
-	 * <li><code>set N</code> - set a line breakpoint on line <code>N</code> (lines are indexed
-	 * 		from 0); reply is <code>ok</code></li>
-	 * <li><code>setdata N V</code> - set the contents of data stack element <code>N</code> to
-	 * 		value <code>V</code> (the data stack is indexed from 0, 0 being the oldest); reply
-	 * 		is <code>ok</code></li>
-	 * <li><code>setvar N M V</code> - set the contents of variable <code>M</code> from the control
-	 * 		stack <code>N</code> to value <code>V</code> (the control stack is indexed from 0,
-	 * 		0 being the oldest); reply is <code>ok</code></li>
-	 * <li><code>stack</code> - return the contents of the control stack (program counters, function and
-	 * 		variable names); reply is control stack from oldest to newest as a single string
-	 * 		<code>frame#frame#frame...#frame</code> where each frame is a string
-	 * 		<code>"filename|pc|function name|variable name|variable name|...|variable name"</code></li>
-	 * <li><code>step</code> - single step forward; reply is <code>ok</code></li>
-	 * <li><code>stepreturn</code> - single step forward until the next <code>return</code> op code;
-	 * 		stop before executing the <code>return</code> ; reply is <code>ok</code></li>
-	 * <li><code>suspend</code> - suspend execution of the program and listen for debug commands;
-	 * 		reply is <code>ok</code></li>
-	 * <li><code>watch F::V M</code> - set a watchpoint on variable <code>V</code> in function
-	 * 		<code>F</code> to magic value <code>M</code>; the magic value is a bit flag corresponding
-	 * 		to read access (1), write access (2), or both (3); the magic value 0 clears the watchpoint;
-	 * 		reply is <code>ok</code></li>
-	 * <li><code>var N M</code> - return the contents of variable <code>M</code> in the control
-	 * 		stack frame <code>N</code> (stack frames are indexed from 0, 0 being the oldest);
-	 * 		reply is variable value</li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param request command
-	 * @return reply
-	 * @throws DebugException if the request fails
-	 */	
-	public String sendRequest(String request) throws DebugException {
-		return getPDADebugTarget().sendRequest(request);
-	}
-	
-	/**
-	 * Returns the debug target as a PDA target.
-	 * 
-	 * @return PDA debug target
-	 */
-	protected PDADebugTarget getPDADebugTarget() {
-	    return (PDADebugTarget) getDebugTarget();
-	}
-	
-	/**
-	 * Returns the breakpoint manager
-	 * 
-     * @return the breakpoint manager
-     */
-    protected IBreakpointManager getBreakpointManager() {
-        return DebugPlugin.getDefault().getBreakpointManager();
-    }	
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugTarget.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugTarget.java
deleted file mode 100644
index 6df9fad..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugTarget.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.resources.IResource;
-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.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.IBreakpointManagerListener;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IMemoryBlock;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDARunToLineBreakpoint;
-
-
-/**
- * PDA Debug Target
- */
-public class PDADebugTarget extends PDADebugElement implements IDebugTarget, IBreakpointManagerListener, IPDAEventListener {
-	
-	// associated system process (VM)
-	private IProcess fProcess;
-	
-	// containing launch object
-	private ILaunch fLaunch;
-	
-	// sockets to communicate with VM
-	private Socket fRequestSocket;
-	private PrintWriter fRequestWriter;
-	private BufferedReader fRequestReader;
-	private Socket fEventSocket;
-	private BufferedReader fEventReader;
-	
-	// terminated state
-	private boolean fTerminated = false;
-	
-	// threads
-	private IThread[] fThreads;
-	private PDAThread fThread;
-	
-	// event dispatch job
-	private EventDispatchJob fEventDispatch;
-	// event listeners
-	private Vector fEventListeners = new Vector();
-	
-	/**
-	 * Listens to events from the PDA VM and fires corresponding 
-	 * debug events.
-	 */
-	class EventDispatchJob extends Job {
-		
-		public EventDispatchJob() {
-			super("PDA Event Dispatch");
-			setSystem(true);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-		 */
-		protected IStatus run(IProgressMonitor monitor) {
-			String event = "";
-			while (!isTerminated() && event != null) {
-				try {
-					event = fEventReader.readLine();
-					if (event != null) {
-						Object[] listeners = fEventListeners.toArray();
-						for (int i = 0; i < listeners.length; i++) {
-							((IPDAEventListener)listeners[i]).handleEvent(event);	
-						}
-					}
-				} catch (IOException e) {
-					terminated();
-				}
-			}
-			return Status.OK_STATUS;
-		}
-		
-	}
-	
-	/**
-	 * Registers the given event listener. The listener will be notified of
-	 * events in the program being interpretted. Has no effect if the listener
-	 * is already registered.
-	 *  
-	 * @param listener event listener
-	 */
-	public void addEventListener(IPDAEventListener listener) {
-		if (!fEventListeners.contains(listener)) {
-			fEventListeners.add(listener);
-		}
-	}
-	
-	/**
-	 * Deregisters the given event listener. Has no effect if the listener is
-	 * not currently registered.
-	 *  
-	 * @param listener event listener
-	 */
-	public void removeEventListener(IPDAEventListener listener) {
-		fEventListeners.remove(listener);
-	}
-	
-	/**
-	 * Constructs a new debug target in the given launch for the 
-	 * associated PDA VM process.
-	 * 
-	 * @param launch containing launch
-	 * @param process PDA VM
-	 * @param requestPort port to send requests to the VM
-	 * @param eventPort port to read events from
-	 * @exception CoreException if unable to connect to host
-	 */
-	public PDADebugTarget(ILaunch launch, IProcess process, int requestPort, int eventPort) throws CoreException {
-		super(null);
-		fLaunch = launch;
-		fProcess = process;
-		addEventListener(this);
-		try {
-			// give interpreter a chance to start
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-			}
-			fRequestSocket = new Socket("localhost", requestPort);
-			fRequestWriter = new PrintWriter(fRequestSocket.getOutputStream());
-			fRequestReader = new BufferedReader(new InputStreamReader(fRequestSocket.getInputStream()));
-			// give interpreter a chance to open next socket
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-			}
-			fEventSocket = new Socket("localhost", eventPort);
-			fEventReader = new BufferedReader(new InputStreamReader(fEventSocket.getInputStream()));
-		} catch (UnknownHostException e) {
-			requestFailed("Unable to connect to PDA VM", e);
-		} catch (IOException e) {
-			requestFailed("Unable to connect to PDA VM", e);
-		}
-		fThread = new PDAThread(this);
-		fThreads = new IThread[] {fThread};
-		fEventDispatch = new EventDispatchJob();
-		fEventDispatch.schedule();
-		IBreakpointManager breakpointManager = getBreakpointManager();
-        breakpointManager.addBreakpointListener(this);
-		breakpointManager.addBreakpointManagerListener(this);
-		// initialize error hanlding to suspend on 'unimplemented instructions'
-		// and 'no such label' errors
-		sendRequest("eventstop unimpinstr 1");
-		sendRequest("eventstop nosuchlabel 1");
-	}
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugTarget#getProcess()
-	 */
-	public IProcess getProcess() {
-		return fProcess;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugTarget#getThreads()
-	 */
-	public IThread[] getThreads() throws DebugException {
-		return fThreads;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugTarget#hasThreads()
-	 */
-	public boolean hasThreads() throws DebugException {
-		return true;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugTarget#getName()
-	 */
-	public String getName() throws DebugException {
-		return "PDA";
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugTarget#supportsBreakpoint(org.eclipse.debug.core.model.IBreakpoint)
-	 */
-	public boolean supportsBreakpoint(IBreakpoint breakpoint) {
-		if (!isTerminated() && breakpoint.getModelIdentifier().equals(getModelIdentifier())) {
-			try {
-				String program = getLaunch().getLaunchConfiguration().getAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, (String)null);
-				if (program != null) {
-					IResource resource = null;
-					if (breakpoint instanceof PDARunToLineBreakpoint) {
-						PDARunToLineBreakpoint rtl = (PDARunToLineBreakpoint) breakpoint;
-						resource = rtl.getSourceFile();
-					} else {
-						IMarker marker = breakpoint.getMarker();
-						if (marker != null) {
-							resource = marker.getResource();
-						}
-					}
-					if (resource != null) {
-						IPath p = new Path(program);
-						return resource.getFullPath().equals(p);
-					}
-				}
-			} catch (CoreException e) {
-			}			
-		}
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
-	 */
-	public IDebugTarget getDebugTarget() {
-		return this;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
-	 */
-	public ILaunch getLaunch() {
-		return fLaunch;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
-	 */
-	public boolean canTerminate() {
-		return getProcess().canTerminate();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
-	 */
-	public boolean isTerminated() {
-		return fTerminated || getProcess().isTerminated();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#terminate()
-	 */
-	public void terminate() throws DebugException {
-		getThread().terminate();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
-	 */
-	public boolean canResume() {
-		return !isTerminated() && isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canSuspend()
-	 */
-	public boolean canSuspend() {
-		return !isTerminated() && !isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
-	 */
-	public boolean isSuspended() {
-		return !isTerminated() && getThread().isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#resume()
-	 */
-	public void resume() throws DebugException {
-		getThread().resume();
-	}	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
-	 */
-	public void suspend() throws DebugException {
-		getThread().suspend();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.IBreakpointListener#breakpointAdded(org.eclipse.debug.core.model.IBreakpoint)
-	 */
-	public void breakpointAdded(IBreakpoint breakpoint) {
-		if (supportsBreakpoint(breakpoint)) {
-			try {
-				if ((breakpoint.isEnabled() && getBreakpointManager().isEnabled()) || !breakpoint.isRegistered()) {
-					PDALineBreakpoint pdaBreakpoint = (PDALineBreakpoint)breakpoint;
-				    pdaBreakpoint.install(this);
-				}
-			} catch (CoreException e) {
-			}
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.IBreakpointListener#breakpointRemoved(org.eclipse.debug.core.model.IBreakpoint, org.eclipse.core.resources.IMarkerDelta)
-	 */
-	public void breakpointRemoved(IBreakpoint breakpoint, IMarkerDelta delta) {
-		if (supportsBreakpoint(breakpoint)) {
-			try {
-			    PDALineBreakpoint pdaBreakpoint = (PDALineBreakpoint)breakpoint;
-				pdaBreakpoint.remove(this);
-			} catch (CoreException e) {
-			}
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.IBreakpointListener#breakpointChanged(org.eclipse.debug.core.model.IBreakpoint, org.eclipse.core.resources.IMarkerDelta)
-	 */
-	public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta) {
-		if (supportsBreakpoint(breakpoint)) {
-			try {
-				if (breakpoint.isEnabled() && getBreakpointManager().isEnabled()) {
-					breakpointAdded(breakpoint);
-				} else {
-					breakpointRemoved(breakpoint, null);
-				}
-			} catch (CoreException e) {
-			}
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDisconnect#canDisconnect()
-	 */
-	public boolean canDisconnect() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDisconnect#disconnect()
-	 */
-	public void disconnect() throws DebugException {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDisconnect#isDisconnected()
-	 */
-	public boolean isDisconnected() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IMemoryBlockRetrieval#supportsStorageRetrieval()
-	 */
-	public boolean supportsStorageRetrieval() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IMemoryBlockRetrieval#getMemoryBlock(long, long)
-	 */
-	public IMemoryBlock getMemoryBlock(long startAddress, long length) throws DebugException {
-		return null;
-	}
-
-	/**
-	 * Notification we have connected to the VM and it has started.
-	 * Resume the VM.
-	 */
-	private void started() {
-		fireCreationEvent();
-		installDeferredBreakpoints();
-		try {
-			resume();
-		} catch (DebugException e) {
-		}
-	}
-	
-	/**
-	 * Install breakpoints that are already registered with the breakpoint
-	 * manager.
-	 */
-	private void installDeferredBreakpoints() {
-		IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints(getModelIdentifier());
-		for (int i = 0; i < breakpoints.length; i++) {
-			breakpointAdded(breakpoints[i]);
-		}
-	}
-	
-	/**
-	 * Called when this debug target terminates.
-	 */
-	private synchronized void terminated() {
-		fTerminated = true;
-		fThread = null;
-		fThreads = new IThread[0];
-		IBreakpointManager breakpointManager = getBreakpointManager();
-        breakpointManager.removeBreakpointListener(this);
-		breakpointManager.removeBreakpointManagerListener(this);
-		fireTerminateEvent();
-		removeEventListener(this);
-	}
-	
-	/**
-	 * Returns the values on the data stack (top down)
-	 * 
-	 * @return the values on the data stack (top down)
-	 */
-	public IValue[] getDataStack() throws DebugException {
-		String dataStack = sendRequest("data");
-		if (dataStack != null && dataStack.length() > 0) {
-			String[] values = dataStack.split("\\|");
-			IValue[] theValues = new IValue[values.length];
-			for (int i = 0; i < values.length; i++) {
-				String value = values[values.length - i - 1];
-				theValues[i] = new PDAStackValue(this, value, i);
-			}
-			return theValues;
-		}
-		return new IValue[0];		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.PDADebugElement#sendRequest(java.lang.String)
-	 */
-	public String sendRequest(String request) throws DebugException {
-		synchronized (fRequestSocket) {
-			fRequestWriter.println(request);
-			fRequestWriter.flush();
-			try {
-				// wait for reply
-				return fRequestReader.readLine();
-			} catch (IOException e) {
-				requestFailed("Request failed: " + request, e);
-			}
-		}
-		return null;
-	}  
-	
-	/**
-	 * When the breakpoint manager disables, remove all registered breakpoints
-	 * requests from the VM. When it enables, reinstall them.
-	 */
-	public void breakpointManagerEnablementChanged(boolean enabled) {
-		IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints(getModelIdentifier());
-		for (int i = 0; i < breakpoints.length; i++) {
-			if (enabled) {
-				breakpointAdded(breakpoints[i]);
-			} else {
-				breakpointRemoved(breakpoints[i], null);
-			}
-        }
-	}	
-	
-	/**
-	 * Returns whether popping the data stack is currently permitted
-	 *  
-	 * @return whether popping the data stack is currently permitted
-	 */
-	public boolean canPop() {
-	    try {
-            return !isTerminated() && isSuspended() && getDataStack().length > 0;
-        } catch (DebugException e) {
-        }
-        return false;
-	}
-	
-	/**
-	 * Pops and returns the top of the data stack
-	 * 
-	 * @return the top value on the stack 
-	 * @throws DebugException if the stack is empty or the request fails
-	 */
-	public IValue pop() throws DebugException {
-	    IValue[] dataStack = getDataStack();
-	    if (dataStack.length > 0) {
-	        sendRequest("popdata");
-	        return dataStack[0];
-	    }
-	    requestFailed("Empty stack", null);
-	    return null;
-	}
-	
-	/**
-	 * Returns whether pushing a value is currently supported.
-	 * 
-	 * @return whether pushing a value is currently supported
-	 */
-	public boolean canPush() {
-	    return !isTerminated() && isSuspended();
-	}
-	
-	/**
-	 * Pushes a value onto the stack.
-	 * 
-	 * @param value value to push
-	 * @throws DebugException on failure
-	 */
-	public void push(String value) throws DebugException {
-	    sendRequest("pushdata " + value);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.IPDAEventListener#handleEvent(java.lang.String)
-	 */
-	public void handleEvent(String event) {
-		if (event.equals("started")) {
-			started();
-		} else if (event.equals("terminated")) {
-			terminated();
-		}
-	}
-	
-	/**
-	 * Returns this debug target's single thread, or <code>null</code>
-	 * if terminated.
-	 * 
-	 * @return this debug target's single thread, or <code>null</code>
-	 * if terminated
-	 */
-	public synchronized PDAThread getThread() {
-		return fThread;
-	}
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackFrame.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackFrame.java
deleted file mode 100644
index a3cbe43..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackFrame.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IRegisterGroup;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.core.model.IVariable;
-
-/**
- * PDA stack frame.
- */
-public class PDAStackFrame extends PDADebugElement implements IStackFrame {
-	
-	private PDAThread fThread;
-	private String fName;
-	private int fPC;
-	private String fFileName;
-	private int fId;
-	
-	/**
-	 * Constructs a stack frame in the given thread with the given
-	 * frame data.
-	 * 
-	 * @param thread
-	 * @param data frame data
-	 * @param id stack frame id (0 is the bottom of the stack)
-	 */
-	public PDAStackFrame(PDAThread thread, String data, int id) {
-		super(thread.getPDADebugTarget());
-		fId = id;
-		fThread = thread;
-		init(data);
-	}
-	
-	/**
-	 * Initializes this frame based on its data
-	 * 
-	 * @param data
-	 */
-	private void init(String data) {
-		String[] strings = data.split("\\|");
-		String fileName = strings[0];
-		fFileName = (new Path(fileName)).lastSegment();
-		String pc = strings[1];
-		fPC = Integer.parseInt(pc) + 1;
-		fName = strings[2];
-		int numVars = strings.length - 3;
-		IVariable[] vars = new IVariable[numVars];
-		for (int i = 0; i < numVars; i++) {
-			vars[i] = new PDAVariable(this, strings[i + 3]);
-		}
-		fThread.setVariables(this, vars);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getThread()
-	 */
-	public IThread getThread() {
-		return fThread;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getVariables()
-	 */
-	public IVariable[] getVariables() throws DebugException {
-		return fThread.getVariables(this);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#hasVariables()
-	 */
-	public boolean hasVariables() throws DebugException {
-		return getVariables().length > 0;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getLineNumber()
-	 */
-	public int getLineNumber() throws DebugException {
-		return fPC;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getCharStart()
-	 */
-	public int getCharStart() throws DebugException {
-		return -1;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getCharEnd()
-	 */
-	public int getCharEnd() throws DebugException {
-		return -1;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getName()
-	 */
-	public String getName() throws DebugException {
-		return fName;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#getRegisterGroups()
-	 */
-	public IRegisterGroup[] getRegisterGroups() throws DebugException {
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStackFrame#hasRegisterGroups()
-	 */
-	public boolean hasRegisterGroups() throws DebugException {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#canStepInto()
-	 */
-	public boolean canStepInto() {
-		return getThread().canStepInto();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#canStepOver()
-	 */
-	public boolean canStepOver() {
-		return getThread().canStepOver();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#canStepReturn()
-	 */
-	public boolean canStepReturn() {
-		return getThread().canStepReturn();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#isStepping()
-	 */
-	public boolean isStepping() {
-		return getThread().isStepping();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#stepInto()
-	 */
-	public void stepInto() throws DebugException {
-		getThread().stepInto();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#stepOver()
-	 */
-	public void stepOver() throws DebugException {
-		getThread().stepOver();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#stepReturn()
-	 */
-	public void stepReturn() throws DebugException {
-		getThread().stepReturn();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
-	 */
-	public boolean canResume() {
-		return getThread().canResume();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canSuspend()
-	 */
-	public boolean canSuspend() {
-		return getThread().canSuspend();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
-	 */
-	public boolean isSuspended() {
-		return getThread().isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#resume()
-	 */
-	public void resume() throws DebugException {
-		getThread().resume();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
-	 */
-	public void suspend() throws DebugException {
-		getThread().suspend();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
-	 */
-	public boolean canTerminate() {
-		return getThread().canTerminate();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
-	 */
-	public boolean isTerminated() {
-		return getThread().isTerminated();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#terminate()
-	 */
-	public void terminate() throws DebugException {
-		getThread().terminate();
-	}
-	
-	/**
-	 * Returns the name of the source file this stack frame is associated
-	 * with.
-	 * 
-	 * @return the name of the source file this stack frame is associated
-	 * with
-	 */
-	public String getSourceName() {
-		return fFileName;
-	}
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (obj instanceof PDAStackFrame) {
-			PDAStackFrame sf = (PDAStackFrame)obj;
-			return sf.getThread().equals(getThread()) && 
-				sf.getSourceName().equals(getSourceName()) &&
-				sf.fId == fId;
-		}
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return getSourceName().hashCode() + fId;
-	}
-	
-	/**
-	 * Returns this stack frame's unique identifier within its thread
-	 * 
-	 * @return this stack frame's unique identifier within its thread
-	 */
-	protected int getIdentifier() {
-		return fId;
-	}
-	
-	
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackValue.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackValue.java
deleted file mode 100644
index 2f13211..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackValue.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-/**
- * A value on the data stack
- */
-public class PDAStackValue extends PDAValue {
-    
-    private int fIndex;
-    
-    /**
-     * Constructs a value that appears on the data stack
-     * 
-     * @param target debug target
-     * @param value value on the stack
-     * @param index index on the stack
-     */
-	public PDAStackValue(PDADebugTarget target, String value, int index) {
-		super(target, value);
-		fIndex = index;
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-    public boolean equals(Object obj) {
-        return super.equals(obj) && ((PDAStackValue)obj).fIndex == fIndex;
-    }
-    /*
-     *  (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
-    public int hashCode() {
-        return super.hashCode() + fIndex;
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAThread.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAThread.java
deleted file mode 100644
index 6a4102a..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAThread.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.core.model.IVariable;
-
-/**
- * A PDA thread. A PDA VM is single threaded.
- */
-public class PDAThread extends PDADebugElement implements IThread, IPDAEventListener {
-	
-	/**
-	 * Breakpoint this thread is suspended at or <code>null</code>
-	 * if none.
-	 */
-	private IBreakpoint fBreakpoint;
-	
-	/**
-	 * Whether this thread is stepping
-	 */
-	private boolean fStepping = false;
-	
-	/**
-	 * Wether this thread is suspended
-	 */
-	private boolean fSuspended = false;
-
-	/**
-	 * Most recent error event or <code>null</code>
-	 */
-	private String fErrorEvent;
-	
-	/**
-	 * Table mapping stack frames to current variables
-	 */
-	private Map fVariables = new HashMap();
-	
-	/**
-	 * Constructs a new thread for the given target
-	 * 
-	 * @param target VM
-	 */
-	public PDAThread(PDADebugTarget target) {
-		super(target);
-		getPDADebugTarget().addEventListener(this);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#getStackFrames()
-	 */
-	public IStackFrame[] getStackFrames() throws DebugException {
-		if (isSuspended()) {
-			String framesData = sendRequest("stack");
-			if (framesData != null) {
-				String[] frames = framesData.split("#");
-				IStackFrame[] theFrames = new IStackFrame[frames.length];
-				for (int i = 0; i < frames.length; i++) {
-					String data = frames[i];
-					theFrames[frames.length - i - 1] = new PDAStackFrame(this, data, i);
-				}
-				return theFrames;
-			}
-		}
-		return new IStackFrame[0];
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#hasStackFrames()
-	 */
-	public boolean hasStackFrames() throws DebugException {
-		return isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#getPriority()
-	 */
-	public int getPriority() throws DebugException {
-		return 0;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#getTopStackFrame()
-	 */
-	public IStackFrame getTopStackFrame() throws DebugException {
-		IStackFrame[] frames = getStackFrames();
-		if (frames.length > 0) {
-			return frames[0];
-		}
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#getName()
-	 */
-	public String getName() {
-		return "Main thread";
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#getBreakpoints()
-	 */
-	public IBreakpoint[] getBreakpoints() {
-		if (fBreakpoint == null) {
-			return new IBreakpoint[0];
-		}
-		return new IBreakpoint[]{fBreakpoint};
-	}
-	
-	/**
-	 * Notifies this thread it has been suspended by the given breakpoint.
-	 * 
-	 * @param breakpoint breakpoint
-	 */
-	public void suspendedBy(IBreakpoint breakpoint) {
-		fBreakpoint = breakpoint;
-		suspended(DebugEvent.BREAKPOINT);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
-	 */
-	public boolean canResume() {
-		return isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canSuspend()
-	 */
-	public boolean canSuspend() {
-		return !isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
-	 */
-	public boolean isSuspended() {
-		return fSuspended && !isTerminated();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#resume()
-	 */
-	public void resume() throws DebugException {
-		//#ifdef ex2
-//#		// TODO: Exercise 2 - send resume request to interpreter		
-		//#else
-		sendRequest("resume");
-		//#endif
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
-	 */
-	public void suspend() throws DebugException {
-		//#ifdef ex2
-//#		// TODO: Exercise 2 - send suspend request to interpreter		
-		//#else
-	    sendRequest("suspend");
-		//#endif
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#canStepInto()
-	 */
-	public boolean canStepInto() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#canStepOver()
-	 */
-	public boolean canStepOver() {
-		return isSuspended();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#canStepReturn()
-	 */
-	public boolean canStepReturn() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#isStepping()
-	 */
-	public boolean isStepping() {
-		return fStepping;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#stepInto()
-	 */
-	public void stepInto() throws DebugException {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#stepOver()
-	 */
-	public void stepOver() throws DebugException {
-		sendRequest("step");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IStep#stepReturn()
-	 */
-	public void stepReturn() throws DebugException {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
-	 */
-	public boolean canTerminate() {
-		return !isTerminated();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
-	 */
-	public boolean isTerminated() {
-		return getDebugTarget().isTerminated();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ITerminate#terminate()
-	 */
-	public void terminate() throws DebugException {
-		//#ifdef ex2
-//#		// TODO: Exercise 2 - send termination request to interpreter		
-		//#else
-		sendRequest("exit");
-		//#endif
-	}
-	
-	/**
-	 * Sets whether this thread is stepping
-	 * 
-	 * @param stepping whether stepping
-	 */
-	private void setStepping(boolean stepping) {
-		fStepping = stepping;
-	}
-	
-	/**
-	 * Sets whether this thread is suspended
-	 * 
-	 * @param suspended whether suspended
-	 */
-	private void setSuspended(boolean suspended) {
-		fSuspended = suspended;
-	}
-
-	/**
-	 * Sets the most recent error event encountered, or <code>null</code>
-	 * to clear the most recent error
-	 * 
-	 * @param event one of 'unimpinstr' or 'nosuchlabel' or <code>null</code>
-	 */
-	private void setError(String event) {
-		fErrorEvent = event;
-	}
-
-	/**
-	 * Returns the most revent error event encountered since the last
-	 * suspend, or <code>null</code> if none.
-	 * 
-	 * @return the most revent error event encountered since the last
-	 * suspend, or <code>null</code> if none
-	 */
-	public Object getError() {
-		return fErrorEvent;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.IPDAEventListener#handleEvent(java.lang.String)
-	 */
-	public void handleEvent(String event) {
-		// clear previous state
-		fBreakpoint = null;
-		setStepping(false);
-		
-		// handle events
-		if (event.startsWith("resumed")) {
-			setSuspended(false);
-			if (event.endsWith("step")) {
-				setStepping(true);
-				resumed(DebugEvent.STEP_OVER);
-			//#ifdef ex2
-//#			}
-//#			// TODO: Exercise 2 - handle/fire "client" resume event
-			//#else	
-			} else if (event.endsWith("client")) {
-				resumed(DebugEvent.CLIENT_REQUEST);
-			}
-			//#endif
-			//#ifdef ex5
-//#			// TODO: Exercise 5 - handle start of drop event
-			//#else
-			else if (event.endsWith("drop")) {
-				resumed(DebugEvent.STEP_RETURN);
-			}
-			//#endif
-		} else if (event.startsWith("suspended")) {
-			setSuspended(true);
-			//#ifdef ex2
-//#			// TODO: Exercise 2 - handle/fire "client" suspend event
-//#			if (event.endsWith("step")) {
-//#				suspended(DebugEvent.STEP_END);
-//#			} else if (event.startsWith("suspended event") && getError() != null) {
-//#				exceptionHit();
-//#			}
-			//#else
-			if (event.endsWith("client")) {
-				suspended(DebugEvent.CLIENT_REQUEST);
-			} else if (event.endsWith("step")) {
-				suspended(DebugEvent.STEP_END);
-			} else if (event.startsWith("suspended event") && getError() != null) {
-				exceptionHit();
-			} 
-			//#endif
-			//#ifdef ex5
-//#			// TODO: Exercise 5 - handle end of drop event
-			//#else
-			else if (event.endsWith("drop")) {
-				suspended(DebugEvent.STEP_END);
-			}
-			//#endif
-		} else if (event.equals("started")) {
-			fireCreationEvent();
-		} else {
-			setError(event);
-		}
-		
-	}
-	
-	/**
-	 * Notification the target has resumed for the given reason.
-	 * Clears any error condition that was last encountered and
-	 * fires a resume event, and clears all cached variables
-	 * for stack frames.
-	 * 
-	 * @param detail reason for the resume
-	 */
-	private void resumed(int detail) {
-		setError(null);
-		synchronized (fVariables) {
-			fVariables.clear();
-		}
-		fireResumeEvent(detail);
-	}
-	
-	/**
-	 * Notification the target has suspended for the given reason
-	 * 
-	 * @param detail reason for the suspend
-	 */
-	private void suspended(int detail) {
-		fireSuspendEvent(detail);
-	}
-
-	/**
-     * Notification an error was encountered. Fires a breakpoint
-     * suspend event.
-     */
-    private void exceptionHit() {
-    	suspended(DebugEvent.BREAKPOINT);
-    }  
-	
-	/**
-	 * Sets the current variables for the given stack frame. Called
-	 * by PDA stack frame when it is created.
-	 * 
-	 * @param frame
-	 * @param variables
-	 */
-	protected void setVariables(IStackFrame frame, IVariable[] variables) {
-		synchronized (fVariables) {
-			fVariables.put(frame, variables);
-		}
-	}
-	
-	/**
-	 * Returns the current variables for the given stack frame, or
-	 * <code>null</code> if none.
-	 * 
-	 * @param frame stack frame
-	 * @return variables or <code>null</code>
-	 */
-	protected IVariable[] getVariables(IStackFrame frame) {
-		synchronized (fVariables) {
-			IVariable[] variables = (IVariable[]) fVariables.get(frame);
-			if (variables == null) {
-				return new IVariable[0];
-			}
-			return variables;
-		}
-	}
-	
-	/**
-	 * Pops the top frame off the callstack.
-	 *
-	 * @throws DebugException
-	 */
-	public void pop() throws DebugException {
-		//#ifdef ex5
-//#		// TODO: Exercise 5 - send drop request		
-		//#else
-		sendRequest("drop");
-		//#endif
-	}
-	
-	/**
-	 * Returns whether this thread can pop the top stack frame.
-	 *
-	 * @return whether this thread can pop the top stack frame
-	 */
-	public boolean canPop() {
-		//#ifdef ex5
-//#		// TODO: Exercise 5 - allow pop if there is more than 1 frame on the stack		
-		//#else
-		try {
-			return getStackFrames().length > 1;
-		} catch (DebugException e) {
-		}
-		//#endif
-		return false;
-	}
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAValue.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAValue.java
deleted file mode 100644
index e871004..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAValue.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.core.model.IVariable;
-
-/**
- * Value of a PDA variable.
- */
-public class PDAValue extends PDADebugElement implements IValue {
-	
-	private String fValue;
-	
-	public PDAValue(PDADebugTarget target, String value) {
-		super(target);
-		fValue = value;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName()
-	 */
-	public String getReferenceTypeName() throws DebugException {
-		try {
-			Integer.parseInt(fValue);
-		} catch (NumberFormatException e) {
-			return "text";
-		}
-		return "integer";
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#getValueString()
-	 */
-	public String getValueString() throws DebugException {
-		return fValue;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#isAllocated()
-	 */
-	public boolean isAllocated() throws DebugException {
-		return true;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#getVariables()
-	 */
-	public IVariable[] getVariables() throws DebugException {
-		return new IVariable[0];
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#hasVariables()
-	 */
-	public boolean hasVariables() throws DebugException {
-		return fValue.split("\\W+").length > 1;
-	}
-	/*
-	 *  (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-    public boolean equals(Object obj) {
-        return obj instanceof PDAValue && ((PDAValue)obj).fValue.equals(fValue);
-    }
-    /*
-     *  (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
-    public int hashCode() {
-        return fValue.hashCode();
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAVariable.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAVariable.java
deleted file mode 100644
index c57a9d2..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAVariable.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.core.model.IVariable;
-
-/**
- * A variable in a PDA stack frame
- */
-public class PDAVariable extends PDADebugElement implements IVariable {
-	
-	// name & stack frmae
-	private String fName;
-	private PDAStackFrame fFrame;
-	
-	/**
-	 * Constructs a variable contained in the given stack frame
-	 * with the given name.
-	 * 
-	 * @param frame owning stack frame
-	 * @param name variable name
-	 */
-	public PDAVariable(PDAStackFrame frame, String name) {
-		super(frame.getPDADebugTarget());
-		fFrame = frame;
-		fName = name;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#getValue()
-	 */
-	public IValue getValue() throws DebugException {
-		String value = sendRequest("var " + getStackFrame().getIdentifier() + " " + getName());
-		return new PDAValue(this.getPDADebugTarget(), value);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#getName()
-	 */
-	public String getName() throws DebugException {
-		return fName;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#getReferenceTypeName()
-	 */
-	public String getReferenceTypeName() throws DebugException {
-		return "Thing";
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IVariable#hasValueChanged()
-	 */
-	public boolean hasValueChanged() throws DebugException {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#setValue(java.lang.String)
-	 */
-	public void setValue(String expression) throws DebugException {
-		sendRequest("setvar " + getStackFrame().getIdentifier() + " " + getName() + " " + expression);
-		fireChangeEvent(DebugEvent.CONTENT);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#setValue(org.eclipse.debug.core.model.IValue)
-	 */
-	public void setValue(IValue value) throws DebugException {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#supportsValueModification()
-	 */
-	public boolean supportsValueModification() {
-		return true;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang.String)
-	 */
-	public boolean verifyValue(String expression) throws DebugException {
-		return true;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValueModification#verifyValue(org.eclipse.debug.core.model.IValue)
-	 */
-	public boolean verifyValue(IValue value) throws DebugException {
-		return false;
-	}
-	
-	/**
-	 * Returns the stack frame owning this variable.
-	 * 
-	 * @return the stack frame owning this variable
-	 */
-	protected PDAStackFrame getStackFrame() {
-		return fFrame;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/WordStructureDelegate.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/WordStructureDelegate.java
deleted file mode 100644
index dbb06cb..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/WordStructureDelegate.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.ILogicalStructureTypeDelegate;
-import org.eclipse.debug.core.model.IValue;
-
-/**
- * Logical stucture to translate a string into its words.
- */
-public class WordStructureDelegate implements ILogicalStructureTypeDelegate {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ILogicalStructureTypeDelegate#providesLogicalStructure(org.eclipse.debug.core.model.IValue)
-	 */
-	public boolean providesLogicalStructure(IValue value) {
-		//#ifdef ex6
-//#		// TODO: Exercise 6 - provide logical structures if the value has multiple words
-		//#else
-		try {
-			String string = value.getValueString();
-			String[] words = string.split("\\W+");
-			return words.length > 1;
-		} catch (DebugException e) {
-		}
-		//#endif
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ILogicalStructureTypeDelegate#getLogicalStructure(org.eclipse.debug.core.model.IValue)
-	 */
-	public IValue getLogicalStructure(IValue value) throws CoreException {
-		//#ifdef ex6
-//#		// TODO: Exercise 6 - create an array from the given value
-//#		return null;		
-		//#else
-		return new PDAArray((PDAValue)value);
-		//#endif
-	}
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupDirector.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupDirector.java
deleted file mode 100644
index f975cf7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupDirector.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.sourcelookup;
-
-import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant;
-
-/**
- * PDA source lookup director. For PDA source lookup there is one source
- * lookup participant. 
- */
-public class PDASourceLookupDirector extends AbstractSourceLookupDirector {
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#initializeParticipants()
-	 */
-	public void initializeParticipants() {
-		//#ifdef ex4
-//#		// TODO: Exercise 4 - add our participant to this director		
-		//#else
-		addParticipants(new ISourceLookupParticipant[]{new PDASourceLookupParticipant()});
-		//#endif
-	}
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupParticipant.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupParticipant.java
deleted file mode 100644
index 0d07ce7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourceLookupParticipant.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupParticipant;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-
-
-/**
- * The PDA source lookup participant knows how to translate a 
- * PDA stack frame into a source file name 
- */
-public class PDASourceLookupParticipant extends AbstractSourceLookupParticipant {
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#getSourceName(java.lang.Object)
-	 */
-	public String getSourceName(Object object) throws CoreException {
-		//#ifdef ex4
-//#		// TODO: Exercise 4 - return the name of the source file for the given stack frame
-//#		return null;		
-		//#else
-		if (object instanceof PDAStackFrame) {
-			return ((PDAStackFrame)object).getSourceName();
-		}
-		return null;
-		//#endif
-	}
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourcePathComputerDelegate.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourcePathComputerDelegate.java
deleted file mode 100644
index d91b3f2..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/sourcelookup/PDASourcePathComputerDelegate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.sourcelookup;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.FolderSourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.ProjectSourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.WorkspaceSourceContainer;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-
-
-/**
- * Computes the default source lookup path for a PDA launch configuration.
- * The default source lookup path is the folder or project containing 
- * the PDA program being launched. If the program is not specified, the workspace
- * is searched by default.
- */
-public class PDASourcePathComputerDelegate implements ISourcePathComputerDelegate {
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourcePathComputerDelegate#computeSourceContainers(org.eclipse.debug.core.ILaunchConfiguration, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
-		String path = configuration.getAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, (String)null);
-		ISourceContainer sourceContainer = null;
-		if (path != null) {
-			IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
-			if (resource != null) {
-				//#ifdef ex4
-//#				// TODO: Exercise 4 - seed the source lookup path
-				//#else
-				IContainer container = resource.getParent();
-				if (container.getType() == IResource.PROJECT) {
-					sourceContainer = new ProjectSourceContainer((IProject)container, false);
-				} else if (container.getType() == IResource.FOLDER) {
-					sourceContainer = new FolderSourceContainer(container, false);
-				}
-				//#endif
-			}
-		}
-		if (sourceContainer == null) {
-			sourceContainer = new WorkspaceSourceContainer();
-		}
-		return new ISourceContainer[]{sourceContainer};
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/.classpath b/org.eclipse.debug.examples.ui/.classpath
deleted file mode 100644
index b7464f3..0000000
--- a/org.eclipse.debug.examples.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.debug.examples.ui/.cvsignore b/org.eclipse.debug.examples.ui/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.debug.examples.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.debug.examples.ui/.project b/org.eclipse.debug.examples.ui/.project
deleted file mode 100644
index 6b2c66f..0000000
--- a/org.eclipse.debug.examples.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>example.debug.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.debug.examples.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.debug.examples.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 14a5941..0000000
--- a/org.eclipse.debug.examples.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,37 +0,0 @@
-#Mon Jan 24 20:23:44 CST 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/org.eclipse.debug.examples.ui/META-INF/MANIFEST.MF b/org.eclipse.debug.examples.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 0b61b2d..0000000
--- a/org.eclipse.debug.examples.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Example Debug UI Plug-in
-Bundle-SymbolicName: org.eclipse.debug.examples.ui;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.debug.examples.ui.pda.DebugUIPlugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.debug.core,
- org.eclipse.ui,
- org.eclipse.debug.ui,
- org.eclipse.jface.text,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.ide,
- org.eclipse.debug.examples.core
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.debug.examples.ui.pda,
- org.eclipse.debug.examples.ui.pda.adapters,
- org.eclipse.debug.examples.ui.pda.breakpoints,
- org.eclipse.debug.examples.ui.pda.editor,
- org.eclipse.debug.examples.ui.pda.launcher,
- org.eclipse.debug.examples.ui.pda.presentation,
- org.eclipse.debug.examples.ui.pda.views
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/org.eclipse.debug.examples.ui/about.html b/org.eclipse.debug.examples.ui/about.html
deleted file mode 100644
index 4602330..0000000
--- a/org.eclipse.debug.examples.ui/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation 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
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.ui/build.properties b/org.eclipse.debug.examples.ui/build.properties
deleted file mode 100644
index 0fb5122..0000000
--- a/org.eclipse.debug.examples.ui/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               bin/,\
-               about.html,\
-               META-INF/,\
-               .,\
-               icons/
-src.includes = src/,\
-               about.html,\
-               icons/,\
-               plugin.xml
diff --git a/org.eclipse.debug.examples.ui/icons/full/dlcl16/pop.gif b/org.eclipse.debug.examples.ui/icons/full/dlcl16/pop.gif
deleted file mode 100644
index 559e462..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/dlcl16/pop.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.examples.ui/icons/full/dlcl16/push.gif b/org.eclipse.debug.examples.ui/icons/full/dlcl16/push.gif
deleted file mode 100644
index f7e6cc0..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/dlcl16/push.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.examples.ui/icons/full/elcl16/pop.gif b/org.eclipse.debug.examples.ui/icons/full/elcl16/pop.gif
deleted file mode 100644
index 2cd9c54..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/elcl16/pop.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.examples.ui/icons/full/elcl16/push.gif b/org.eclipse.debug.examples.ui/icons/full/elcl16/push.gif
deleted file mode 100644
index a5ac28d..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/elcl16/push.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.examples.ui/icons/full/obj16/pda.gif b/org.eclipse.debug.examples.ui/icons/full/obj16/pda.gif
deleted file mode 100644
index 04c5052..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/obj16/pda.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.examples.ui/plugin.xml b/org.eclipse.debug.examples.ui/plugin.xml
deleted file mode 100644
index 3cc918c..0000000
--- a/org.eclipse.debug.examples.ui/plugin.xml
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-<!--#ifdef ex1 -->   
-<!--#else -->
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
-      <launchConfigurationTabGroup
-            class="org.eclipse.debug.examples.ui.pda.launcher.PDATabGroup"
-            description="Specify and launch a PDA program"
-            id="pda.tabGroup"
-            type="pda.launchType"/>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
-      <launchConfigurationTypeImage
-            icon="icons/full/obj16/pda.gif"
-            configTypeID="pda.launchType"
-            id="pda.typeImage"/>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchShortcuts">
-      <shortcut
-            label="PDA Application"
-            icon="icons/full/obj16/pda.gif"
-            class="org.eclipse.debug.examples.ui.pda.launcher.PDALaunchShortcut"
-            modes="run, debug"
-            id="pda.launchShortcut">
-         <contextualLaunch>
-            <enablement>
-               <with variable="selection">
-                  <count value="1"/>
-                  <iterate>
-                     <instanceof value="org.eclipse.core.resources.IFile"/>
-                     <test
-                           value="*.pda"
-                           property="org.eclipse.debug.ui.matchesPattern"/>
-                  </iterate>
-               </with>
-            </enablement>
-         </contextualLaunch>
-      </shortcut>
-   </extension>
-<!--#endif -->   
-   <extension
-         point="org.eclipse.debug.ui.debugModelPresentations">
-      <debugModelPresentation
-            class="org.eclipse.debug.examples.ui.pda.presentation.PDAModelPresentation"
-            id="pda.debugModel"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            filenames="*.pda"
-            class="org.eclipse.debug.examples.ui.pda.editor.PDAEditor"
-            icon="icons/full/obj16/pda.gif"
-            default="true"
-            name="PDA Editor"
-            id="pda.editor"
-            extensions="pda"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editorActions">
-      <editorContribution
-            targetID="pda.editor"
-            id="pda.rulerActions">
-         <action
-               label="Not Used"
-               class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
-               style="push"
-               actionID="RulerDoubleClick"
-               id="pda.doubleClickBreakpointAction"/>
-      </editorContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            icon="icons/full/obj16/pda.gif"
-            class="org.eclipse.debug.examples.ui.pda.views.DataStackView"
-            name="PDA Data Stack"
-            id="pda.dataStackView"/>
-   </extension>
-  
-    <extension
-          point="org.eclipse.ui.perspectiveExtensions">
-       <perspectiveExtension targetID="org.eclipse.debug.ui.DebugPerspective">
-          <view
-                visible="false"
-                relative="org.eclipse.debug.ui.VariableView"
-                relationship="stack"
-                id="pda.dataStackView"/>
-       </perspectiveExtension>
-    </extension>
-     <extension
-           point="org.eclipse.ui.contexts">
-        <context
-              parentId="org.eclipse.debug.ui.debugging"
-              description="Debugging PDA Programs"
-              name="Debugging PDA Programs"
-              id="pda.debugging"/>
-     </extension>
-	  <extension
-	        point="org.eclipse.debug.ui.debugModelContextBindings">
-	     <modelContextBinding
-	           contextId="pda.debugging"
-	           debugModelId="pda.debugModel"/>
-	  </extension>
-	   <extension
-	         point="org.eclipse.debug.ui.contextViewBindings">
-	      <contextViewBinding
-	            contextId="pda.debugging"
-	            viewId="pda.dataStackView"/>
-	   </extension>
-
-	<extension
-         point="org.eclipse.ui.popupMenus">           
-      <viewerContribution
-            targetID="pda.editor.rulerMenu"
-            id="pda.editor.rulerActions">
-         <action
-               label="Toggle Breakpoint"
-               class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
-               menubarPath="debug"
-               id="pda.editor.ruler.toggleBreakpointAction"/>
-      </viewerContribution>
-      <viewerContribution
-            targetID="pda.editor.contextMenu"
-            id="pda.editor.menuActions">
-         <action
-               label="Run to Line"
-               definitionId="org.eclipse.debug.ui.commands.RunToLine"
-               class="org.eclipse.debug.ui.actions.RunToLineActionDelegate"
-               menubarPath="additions"
-               id="pda.editor.context.runToLineAction"/>
-      </viewerContribution>
-<!--#ifdef ex5 -->
-<!--#else -->      
-      <objectContribution
-            adaptable="false"
-            id="pda.dropToFrame"
-            objectClass="org.eclipse.debug.examples.core.pda.model.PDAStackFrame">
-         <action
-               class="org.eclipse.debug.examples.ui.pda.editor.PopFrameActionDelegate"
-               id="pda.dropToFrame"
-               label="Pop Frame"/>
-      </objectContribution> 
-<!--#endif -->       
-   </extension>
-   
-   <extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory
-            class="org.eclipse.debug.examples.ui.pda.breakpoints.PDAEditorAdapterFactory"
-            adaptableType="org.eclipse.debug.examples.ui.pda.editor.PDAEditor">
-			<adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
-<!--#ifdef ex7 -->
-<!--#else -->
-			<adapter type="org.eclipse.debug.ui.actions.IRunToLineTarget"/>
-<!--#endif -->
-      </factory>
-<!-- FLEXIBLE HIERARCHY EXAMPLE
-      <factory
-            adaptableType="org.eclipse.debug.examples.core.pda.model.PDADebugTarget"
-            class="example.debug.ui.adapters.AdapterFactory">
-         <adapter
-               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider">
-         </adapter>
-         <adapter
-               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory">
-         </adapter>
-      </factory>
--->
-   </extension>
-</plugin>
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/DebugUIPlugin.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/DebugUIPlugin.java
deleted file mode 100644
index 9202d2d..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/DebugUIPlugin.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Map.Entry;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.util.BundleUtility;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class DebugUIPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static DebugUIPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	private final static String ICONS_PATH = "icons/full/";//$NON-NLS-1$
-	private final static String PATH_OBJECT = ICONS_PATH + "obj16/"; //Model object icons //$NON-NLS-1$
-    private final static String PATH_ELOCALTOOL = ICONS_PATH + "elcl16/"; //Enabled local toolbar icons //$NON-NLS-1$
-    private final static String PATH_DLOCALTOOL = ICONS_PATH + "dlcl16/"; //Disabled local toolbar icons //$NON-NLS-1$
-    
-    /**
-     *  Toolbar action to pop data stack
-     */
-    public final static String IMG_ELCL_POP = "IMG_ELCL_POP";
-    public final static String IMG_DLCL_POP = "IMG_DLCL_POP";
-    
-    /**
-     * Toolbar action to push onto data stack
-     */
-    public final static String IMG_ELCL_PUSH = "IMG_ELCL_PUSH";
-    public final static String IMG_DLCL_PUSH = "IMG_DLCL_PUSH";
-    
-    /**
-     * PDA program image
-     */
-    public final static String IMG_OBJ_PDA = "IMB_OBJ_PDA";
-    
-    /**
-     * Keyword color
-     */
-    public final static RGB KEYWORD = new RGB(0,0,255);
-    public final static RGB LABEL = new RGB(128, 128, 0);
-    
-    /**
-     * Managed colors
-     */
-    private Map fColors = new HashMap();
-    	
-	/**
-	 * The constructor.
-	 */
-	public DebugUIPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-//		Toggles single threaded adapter example
-//		IAdapterManager adapterManager = Platform.getAdapterManager();
-//		IAdapterFactory factory = new AdapterFactory();
-//		adapterManager.registerAdapters(factory, PDADebugTarget.class);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-        Iterator colors = fColors.entrySet().iterator();
-        while (colors.hasNext()) {
-            Map.Entry entry = (Entry) colors.next();
-            ((Color)entry.getValue()).dispose();
-        }
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static DebugUIPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = DebugUIPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle.getBundle("org.eclipse.debug.examples.ui.pda.DebugUIPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry)
-	 */
-	protected void initializeImageRegistry(ImageRegistry reg) {
-		declareImage(IMG_OBJ_PDA, PATH_OBJECT + "pda.gif");
-	    declareImage(IMG_ELCL_POP, PATH_ELOCALTOOL + "pop.gif");
-	    declareImage(IMG_DLCL_POP, PATH_DLOCALTOOL + "pop.gif");
-	    declareImage(IMG_ELCL_PUSH, PATH_ELOCALTOOL + "push.gif");
-	    declareImage(IMG_DLCL_PUSH, PATH_DLOCALTOOL + "push.gif");
-	}
-	
-    /**
-     * Declares a workbench image given the path of the image file (relative to
-     * the workbench plug-in). This is a helper method that creates the image
-     * descriptor and passes it to the main <code>declareImage</code> method.
-     * 
-     * @param symbolicName the symbolic name of the image
-     * @param path the path of the image file relative to the base of the workbench
-     * plug-ins install directory
-     * <code>false</code> if this is not a shared image
-     */
-    private void declareImage(String key, String path) {
-        URL url = BundleUtility.find("org.eclipse.debug.examples.ui", path);
-        ImageDescriptor desc = ImageDescriptor.createFromURL(url);
-        getImageRegistry().put(key, desc);
-    }
-    
-    /**
-     * Returns the color described by the given RGB.
-     * 
-     * @param rgb
-     * @return color
-     */
-    public Color getColor(RGB rgb) {
-        Color color = (Color) fColors.get(rgb);
-        if (color == null) {
-            color= new Color(Display.getCurrent(), rgb);
-            fColors.put(rgb, color);
-        }
-        return color;
-    }
-    
- }
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/AdapterFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/AdapterFactory.java
deleted file mode 100644
index 3e4153f..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/AdapterFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.adapters;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
-
-
-/**
- * 
- * @since 3.2
- *
- */
-public class AdapterFactory implements IAdapterFactory {
-	
-	private static IElementContentProvider fgTargetAdapter = new PDADebugTargetContentProvider();
-	private static IModelProxyFactory fgFactory = new ModelProxyFactory();
-
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (IElementContentProvider.class.equals(adapterType)) {
-			if (adaptableObject instanceof PDADebugTarget) {
-				return fgTargetAdapter;
-			}
-		}
-		if (IModelProxyFactory.class.equals(adapterType)) {
-			if (adaptableObject instanceof PDADebugTarget) {
-				return fgFactory;
-			}
-		}
-		return null;
-	}
-
-	public Class[] getAdapterList() {
-		return new Class[]{IElementContentProvider.class, IModelProxyFactory.class};
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/ModelProxyFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/ModelProxyFactory.java
deleted file mode 100644
index a8e5959..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/ModelProxyFactory.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.adapters;
-
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-
-public class ModelProxyFactory implements IModelProxyFactory {
-
-	public IModelProxy createModelProxy(Object element, IPresentationContext context) {
-		if (IDebugUIConstants.ID_DEBUG_VIEW.equals(context.getId())) {
-			if (element instanceof PDADebugTarget){
-				return new PDADebugTargetProxy((IDebugTarget) element);
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetContentProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetContentProvider.java
deleted file mode 100644
index ab33ae4..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetContentProvider.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.examples.ui.pda.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.debug.internal.ui.model.elements.ElementContentProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-
-public class PDADebugTargetContentProvider extends ElementContentProvider {
-
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.internal.ui.model.elements.ElementContentProvider#getChildCount(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
-     */
-    protected int getChildCount(Object element, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
-		PDAThread thread = ((PDADebugTarget) element).getThread();
-		if (thread != null) {
-			if (thread.hasStackFrames()) {
-				return thread.getStackFrames().length;
-			}
-		}
-		return 0;
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.ElementContentProvider#hasChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
-	 */
-	protected boolean hasChildren(Object element, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
-		PDAThread thread = ((PDADebugTarget) element).getThread();
-		if (thread != null) {
-			return thread.hasStackFrames();
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.ElementContentProvider#getChildren(java.lang.Object, int, int, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
-	 */
-	protected Object[] getChildren(Object parent, int index, int length, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
-		if (context.getId().equals(IDebugUIConstants.ID_DEBUG_VIEW)) {
-			PDAThread thread = ((PDADebugTarget) parent).getThread();
-			if (thread != null) {
-				return getElements(thread.getStackFrames(), index, length);
-			}
-		}
-		return EMPTY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.ElementContentProvider#supportsContextId(java.lang.String)
-	 */
-	protected boolean supportsContextId(String id) {
-		return IDebugUIConstants.ID_DEBUG_VIEW.equals(id);
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetProxy.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetProxy.java
deleted file mode 100644
index e905e12..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetProxy.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.adapters;
-
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler;
-import org.eclipse.debug.internal.ui.viewers.update.DebugTargetEventHandler;
-import org.eclipse.debug.internal.ui.viewers.update.DebugTargetProxy;
-
-/**
- * @since 3.2
- *
- */
-public class PDADebugTargetProxy extends DebugTargetProxy {
-
-	/**
-	 * @param target
-	 */
-	public PDADebugTargetProxy(IDebugTarget target) {
-		super(target);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugTargetProxy#createEventHandlers()
-	 */
-	protected DebugEventHandler[] createEventHandlers() {
-		return new DebugEventHandler[] { new DebugTargetEventHandler(this), new PDAThreadEventHandler(this) };
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDAThreadEventHandler.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDAThreadEventHandler.java
deleted file mode 100644
index 2af58c7..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDAThreadEventHandler.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.adapters;
-
-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.ILaunchManager;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
-import org.eclipse.debug.internal.ui.viewers.provisional.AbstractModelProxy;
-import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler;
-
-
-/**
- * @since 3.2
- */
-public class PDAThreadEventHandler extends DebugEventHandler {
-	
-	private IStackFrame fPrev = null;
-	
-	/**
-	 * Constructs and event handler for a threads in the given viewer.
-	 * 
-	 * @param viewer
-	 */
-	public PDAThreadEventHandler(AbstractModelProxy proxy) {
-		super(proxy);
-	}
-
-	protected void handleSuspend(DebugEvent event) {
-        IThread thread = (IThread) event.getSource();
-        int extras = IModelDelta.STATE;
-        if (event.getDetail() == DebugEvent.BREAKPOINT | event.getDetail() == DebugEvent.CLIENT_REQUEST) {
-            extras = IModelDelta.EXPAND;
-        }
-    	fireDeltaUpdatingTopFrame(thread, IModelDelta.NO_CHANGE | extras);
-	}
-	
-	private boolean isEqual(Object o1, Object o2) {
-		if (o1 == o2) {
-			return true;
-		}
-		if (o1 == null) {
-			return false;
-		}
-		return o1.equals(o2);
-	}
-
-	protected void handleResume(DebugEvent event) {
-		IThread thread = (IThread) event.getSource();
-		fireDeltaAndClearTopFrame(thread, IModelDelta.STATE | IModelDelta.CONTENT);
-	}
-
-	protected void handleCreate(DebugEvent event) {
-		fireDeltaAndClearTopFrame((IThread) event.getSource(), IModelDelta.ADDED);
-	}
-
-	protected void handleTerminate(DebugEvent event) {
-		fireDeltaAndClearTopFrame((IThread) event.getSource(), IModelDelta.REMOVED);
-	}
-
-	protected void handleChange(DebugEvent event) {
-		fireDeltaUpdatingTopFrame((IThread) event.getSource(), IModelDelta.STATE);
-	}
-
-	protected void handleLateSuspend(DebugEvent suspend, DebugEvent resume) {
-		IThread thread = (IThread) suspend.getSource();
-		fireDeltaUpdatingTopFrame(thread, IModelDelta.CONTENT | IModelDelta.EXPAND);
-	}
-
-	protected void handleSuspendTimeout(DebugEvent event) {
-		IThread thread = (IThread) event.getSource();
-		fireDeltaAndClearTopFrame(thread, IModelDelta.CONTENT);
-	}
-	
-	private ModelDelta buildRootDelta() {
-		return new ModelDelta(getLaunchManager(), IModelDelta.NO_CHANGE);
-	}
-
-	private ILaunchManager getLaunchManager() {
-		return DebugPlugin.getDefault().getLaunchManager();
-	}
-	
-	protected ModelDelta addTarget(ModelDelta delta, IThread thread) {
-		ILaunch launch = thread.getLaunch();
-		Object[] children = launch.getChildren();
-		delta = delta.addNode(launch, indexOf(getLaunchManager().getLaunches(), launch), IModelDelta.NO_CHANGE, children.length);
-		IDebugTarget debugTarget = thread.getDebugTarget();
-		int numFrames = -1;
-		try {
-			numFrames = thread.getStackFrames().length;
-		} catch (DebugException e) {
-		}
-		return delta.addNode(debugTarget, indexOf(children, debugTarget), IModelDelta.NO_CHANGE, numFrames);
-	}
-
-	private void fireDeltaAndClearTopFrame(IThread thread, int flags) {
-		ModelDelta delta = buildRootDelta();
-		ModelDelta node = addTarget(delta, thread);
-		synchronized (this) {
-			fPrev = null;
-		}
-		fireDelta(delta);
-	}
-	
-	private void fireDeltaUpdatingTopFrame(IThread thread, int flags) {
-		ModelDelta delta = buildRootDelta();
-		ModelDelta node = addTarget(delta, thread);
-		synchronized (this) {
-	    	IStackFrame prev = fPrev;
-	    	IStackFrame frame = null;
-			try {
-				 frame = thread.getTopStackFrame();
-			} catch (DebugException e) {
-			}
-	    	if (isEqual(frame, prev)) {
-	    		node.setFlags(flags);
-	    	} else {
-				node.setFlags(flags | IModelDelta.CONTENT);
-	    	}
-	    	if (frame != null) {
-	            node.addNode(frame, 0, IModelDelta.STATE | IModelDelta.SELECT, 0);
-	        }
-	    	fPrev = frame;
-		}
-    	fireDelta(delta);
-	}	
-	
-	protected boolean handlesEvent(DebugEvent event) {
-		return event.getSource() instanceof PDAThread;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDABreakpointAdapter.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDABreakpointAdapter.java
deleted file mode 100644
index 38e8f85..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDABreakpointAdapter.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.breakpoints;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.ILineBreakpoint;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDAWatchpoint;
-import org.eclipse.debug.ui.actions.IToggleBreakpointsTargetExtension;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * Adapter to create breakpoints in PDA files.
- */
-public class PDABreakpointAdapter implements IToggleBreakpointsTargetExtension {
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-		ITextEditor textEditor = getEditor(part);
-		if (textEditor != null) {
-			IResource resource = (IResource) textEditor.getEditorInput().getAdapter(IResource.class);
-			ITextSelection textSelection = (ITextSelection) selection;
-			int lineNumber = textSelection.getStartLine();
-			IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(DebugCorePlugin.ID_PDA_DEBUG_MODEL);
-			for (int i = 0; i < breakpoints.length; i++) {
-				IBreakpoint breakpoint = breakpoints[i];
-				if (breakpoint instanceof ILineBreakpoint && resource.equals(breakpoint.getMarker().getResource())) {
-					if (((ILineBreakpoint)breakpoint).getLineNumber() == (lineNumber + 1)) {
-						// remove
-						breakpoint.delete();
-						return;
-					}
-				}
-			}
-			// create line breakpoint (doc line numbers start at 0)
-			PDALineBreakpoint lineBreakpoint = new PDALineBreakpoint(resource, lineNumber + 1);
-			DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(lineBreakpoint);
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection) {
-		return getEditor(part) != null;
-	}
-	
-	/**
-	 * Returns the editor being used to edit a PDA file, associated with the
-	 * given part, or <code>null</code> if none.
-	 *  
-	 * @param part workbench part
-	 * @return the editor being used to edit a PDA file, associated with the
-	 * given part, or <code>null</code> if none
-	 */
-	private ITextEditor getEditor(IWorkbenchPart part) {
-		if (part instanceof ITextEditor) {
-			ITextEditor editorPart = (ITextEditor) part;
-			IResource resource = (IResource) editorPart.getEditorInput().getAdapter(IResource.class);
-			if (resource != null) {
-				String extension = resource.getFileExtension();
-				if (extension != null && extension.equals("pda")) {
-					return editorPart;
-				}
-			}
-		}
-		return null;		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void toggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean canToggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleWatchpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void toggleWatchpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-	    String[] variableAndFunctionName = getVariableAndFunctionName(part, selection);
-	    if (variableAndFunctionName != null && part instanceof ITextEditor && selection instanceof ITextSelection) {
-	        ITextEditor editorPart = (ITextEditor)part;
-	        int lineNumber = ((ITextSelection)selection).getStartLine();
-	        IResource resource = (IResource) editorPart.getEditorInput().getAdapter(IResource.class);
-	        String var = variableAndFunctionName[0];
-	        String fcn = variableAndFunctionName[1];
-	        // look for existing watchpoint to delete
-			IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(DebugCorePlugin.ID_PDA_DEBUG_MODEL);
-			for (int i = 0; i < breakpoints.length; i++) {
-				IBreakpoint breakpoint = breakpoints[i];
-				if (breakpoint instanceof PDAWatchpoint && resource.equals(breakpoint.getMarker().getResource())) {
-				    PDAWatchpoint watchpoint = (PDAWatchpoint)breakpoint;
-				    String otherVar = watchpoint.getVariableName();
-				    String otherFcn = watchpoint.getFunctionName();
-					if (otherVar.equals(var) && otherFcn.equals(fcn)) {
-						breakpoint.delete();
-						return;
-					}
-				}
-			}
-			// create watchpoint
-			PDAWatchpoint watchpoint = new PDAWatchpoint(resource, lineNumber + 1, fcn, var, true, true);
-			DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(watchpoint);	        
-	    }
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleWatchpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean canToggleWatchpoints(IWorkbenchPart part, ISelection selection) {
-		return getVariableAndFunctionName(part, selection) != null;
-	}
-	
-	/**
-	 * Returns the variable and function names at the current line, or <code>null</code> if none.
-	 * 
-	 * @param part text editor
-	 * @param selection text selection
-	 * @return the variable and function names at the current line, or <code>null</code> if none.
-	 *  The array has two elements, the first is the variable name, the second is the function name.
-	 */
-	private String[] getVariableAndFunctionName(IWorkbenchPart part, ISelection selection) {
-	    ITextEditor editor = getEditor(part);
-	    if (editor != null && selection instanceof ITextSelection) {
-	        ITextSelection textSelection = (ITextSelection) selection;
-	        IDocumentProvider documentProvider = editor.getDocumentProvider();
-	        try {
-	            documentProvider.connect(this);
-	            IDocument document = documentProvider.getDocument(editor.getEditorInput());
-	            IRegion region = document.getLineInformationOfOffset(textSelection.getOffset());
-	            String string = document.get(region.getOffset(), region.getLength()).trim();
-	            if (string.startsWith("var ")) {
-	                String varName = string.substring(4).trim(); 
-	                String fcnName = getFunctionName(document, varName, document.getLineOfOffset(textSelection.getOffset()));
-	                return new String[] {varName, fcnName};
-	            }
-	        } catch (CoreException e) {
-	        } catch (BadLocationException e) {
-	        } finally {
-	            documentProvider.disconnect(this);
-	        }
-	    }	    
-	    return null;
-	}
-	
-	/**
-	 * Returns the name of the function containing the given variable defined at the given
-	 * line number in the specified document.
-	 * 
-	 * @param document PDA source file
-	 * @param varName variable name
-	 * @param line line numbner at which the variable is defined
-	 * @return name of function defining the variable
-	 */
-	private String getFunctionName(IDocument document, String varName, int line) {
-	    // This is a simple guess at the function name - look for the labels preceeding
-	    // the variable definition, and then see if there are any 'calls' to that
-	    // label. If none, assumet the variable is in the "_main_" function
-	    String source = document.get();
-	    int lineIndex = line - 1;
-	    while (lineIndex >= 0) {
-            try {
-                IRegion information = document.getLineInformation(lineIndex);
-                String lineText = document.get(information.getOffset(), information.getLength());
-                if (lineText.startsWith(":")) {
-                    String label = lineText.substring(1);
-                    if (source.indexOf("call " + label) >= 0) {
-                        return label;
-                    }
-                }
-                lineIndex--;
-            } catch (BadLocationException e) {
-            }
-	    }
-	    return "_main_";
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTargetExtension#toggleBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-     */
-    public void toggleBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-        if (canToggleWatchpoints(part, selection)) {
-            toggleWatchpoints(part, selection);
-        } else {
-            toggleLineBreakpoints(part, selection);
-        }    
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTargetExtension#canToggleBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-     */
-    public boolean canToggleBreakpoints(IWorkbenchPart part, ISelection selection) {
-        return canToggleLineBreakpoints(part, selection) || canToggleWatchpoints(part, selection);
-    }
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAEditorAdapterFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAEditorAdapterFactory.java
deleted file mode 100644
index c67200a..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAEditorAdapterFactory.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.breakpoints;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.debug.examples.ui.pda.editor.PDAEditor;
-import org.eclipse.debug.ui.actions.IRunToLineTarget;
-import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * Creates a toggle breakpoint adapter
- */
-public class PDAEditorAdapterFactory implements IAdapterFactory {
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-	 */
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (adaptableObject instanceof PDAEditor) {
-			ITextEditor editorPart = (ITextEditor) adaptableObject;
-			IResource resource = (IResource) editorPart.getEditorInput().getAdapter(IResource.class);
-			if (resource != null) {
-				String extension = resource.getFileExtension();
-				if (extension != null && extension.equals("pda")) {
-				    if (adapterType.equals(IToggleBreakpointsTarget.class)) {
-				        return new PDABreakpointAdapter();
-				    }
-					//#ifdef ex7
-//#					// TODO: Exercise 7 - create run to line adapter
-					//#else
-					if (adapterType.equals(IRunToLineTarget.class)) {
-				        return new PDARunToLineAdapter();
-				    }
-					//#endif
-				}
-			}			
-		}
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[]{IToggleBreakpointsTarget.class};
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDARunToLineAdapter.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDARunToLineAdapter.java
deleted file mode 100644
index 3d5fa42..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDARunToLineAdapter.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.breakpoints;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.ISuspendResume;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDARunToLineBreakpoint;
-import org.eclipse.debug.ui.actions.IRunToLineTarget;
-import org.eclipse.debug.ui.actions.RunToLineHandler;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * Run to line target for the Java debugger
- */
-public class PDARunToLineAdapter implements IRunToLineTarget {
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IRunToLineTarget#runToLine(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection, org.eclipse.debug.core.model.ISuspendResume)
-	 */
-	public void runToLine(IWorkbenchPart part, ISelection selection, ISuspendResume target) throws CoreException {
-		IEditorPart editorPart = (IEditorPart)part;
-		ITextEditor textEditor = (ITextEditor)editorPart;
-		ITextSelection textSelection = (ITextSelection) selection;
-		int lineNumber = textSelection.getStartLine() + 1;
-		if (lineNumber > 0) {
-			if (target instanceof IAdaptable) {
-				IDebugTarget debugTarget = (IDebugTarget) ((IAdaptable)target).getAdapter(IDebugTarget.class);
-				if (debugTarget != null) {
-					//#ifdef ex7
-//#					// TODO: Exercise 7 - perform the run-to-line with a run-to-line breakpoint and handler
-					//#else
-					IFile resource = (IFile) textEditor.getEditorInput().getAdapter(IResource.class);
-					IBreakpoint breakpoint= new PDARunToLineBreakpoint(resource, lineNumber);
-					RunToLineHandler handler = new RunToLineHandler(debugTarget, target, breakpoint);
-					handler.run(new NullProgressMonitor());
-					//#endif
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.IRunToLineTarget#canRunToLine(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection, org.eclipse.debug.core.model.ISuspendResume)
-	 */
-	public boolean canRunToLine(IWorkbenchPart part, ISelection selection, ISuspendResume target) {
-		//#ifdef ex7
-//#		// TODO: Exercise 7 - ensure the target is a PDA target
-//#		return false;
-		//#else
-		return target instanceof IDebugElement &&
-		 ((IDebugElement)target).getModelIdentifier().equals(DebugCorePlugin.ID_PDA_DEBUG_MODEL);
-		//#endif
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/AnnotationHover.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/AnnotationHover.java
deleted file mode 100644
index 6b79056..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/AnnotationHover.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationHover;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.ISourceViewer;
-
-/**
- * Returns hover for breakpoints.
- */
-public class AnnotationHover implements IAnnotationHover {
-
-	public String getHoverInfo(ISourceViewer sourceViewer, int lineNumber) {
-		IAnnotationModel annotationModel = sourceViewer.getAnnotationModel();
-		Iterator iterator = annotationModel.getAnnotationIterator();
-		while (iterator.hasNext()) {
-			Annotation annotation = (Annotation) iterator.next();
-			Position position = annotationModel.getPosition(annotation);
-			try {
-				int lineOfAnnotation = sourceViewer.getDocument().getLineOfOffset(position.getOffset());
-				if (lineNumber == lineOfAnnotation) {
-					return annotation.getText();
-				}
-			} catch (BadLocationException e) {
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistProcessor.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistProcessor.java
deleted file mode 100644
index 5d70894..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistProcessor.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.CompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-
-public class PDAContentAssistProcessor implements IContentAssistProcessor {
-
-    public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
-        int index = offset - 1;
-        StringBuffer prefix = new StringBuffer();
-        IDocument document = viewer.getDocument();
-        while (index > 0) {
-            try {
-                char prev = document.getChar(index);
-                if (Character.isWhitespace(prev)) {
-                    break;
-                }
-                prefix.insert(0, prev);
-                index--;
-            } catch (BadLocationException e) {
-            }
-        }
-        
-        List proposals = new ArrayList();
-        String[] keywords = PDAScanner.fgKeywords;
-        if (prefix.length() > 0) {
-            String word = prefix.toString();
-            for (int i = 0; i < keywords.length; i++) {
-                String keyword = keywords[i];
-                if (keyword.startsWith(word) && word.length() < keyword.length()) {
-                    proposals.add(new CompletionProposal(keyword + " ", index + 1, offset - (index + 1), keyword.length() + 1));
-                }
-            }
-        } else {
-            // propose all keywords
-            for (int i = 0; i < keywords.length; i++) {
-                String keyword = keywords[i];
-                proposals.add(new CompletionProposal(keyword + " ", offset, 0, keyword.length() + 1));
-            }
-        }
-        if (!proposals.isEmpty()) {
-            return (ICompletionProposal[]) proposals.toArray(new ICompletionProposal[proposals.size()]);
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer, int)
-     */
-    public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
-     */
-    public char[] getCompletionProposalAutoActivationCharacters() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationAutoActivationCharacters()
-     */
-    public char[] getContextInformationAutoActivationCharacters() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage()
-     */
-    public String getErrorMessage() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationValidator()
-     */
-    public IContextInformationValidator getContextInformationValidator() {
-        return null;
-    }
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistant.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistant.java
deleted file mode 100644
index 01f7192..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAContentAssistant.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.swt.widgets.Shell;
-
-public class PDAContentAssistant extends ContentAssistant {
-    
-    public PDAContentAssistant() {
-        super();
-        
-        PDAContentAssistProcessor processor= new PDAContentAssistProcessor(); 
-        setContentAssistProcessor(processor, IDocument.DEFAULT_CONTENT_TYPE);
-    
-        enableAutoActivation(false);
-        enableAutoInsert(false);
-        
-        setInformationControlCreator(getInformationControlCreator());   
-    }
-
-    private IInformationControlCreator getInformationControlCreator() {
-        return new IInformationControlCreator() {
-            public IInformationControl createInformationControl(Shell parent) {
-                return new DefaultInformationControl(parent);
-            }
-        };
-    }
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditor.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditor.java
deleted file mode 100644
index 3617cb1..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditor.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditor;
-import org.eclipse.ui.texteditor.ContentAssistAction;
-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
-
-/**
- * PDA editor
- */
-public class PDAEditor extends AbstractDecoratedTextEditor {
-    
-    /**
-     * Creates a PDE editor
-     */
-    public PDAEditor() {
-        super();
-        setSourceViewerConfiguration(new PDASourceViewerConfiguration());
-        setRulerContextMenuId("pda.editor.rulerMenu");
-        setEditorContextMenuId("pda.editor.editorMenu");
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.texteditor.AbstractTextEditor#createActions()
-     */
-    protected void createActions() {
-        super.createActions();
-        ResourceBundle bundle = ResourceBundle.getBundle("org.eclipse.debug.examples.ui.pda.editor.PDAEditorMessages"); //$NON-NLS-1$
-        IAction action = new ContentAssistAction(bundle, "ContentAssistProposal.", this); //$NON-NLS-1$
-        action.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
-        setAction("ContentAssistProposal", action); //$NON-NLS-1$
-    }
-    
-    
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditorMessages.properties b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditorMessages.properties
deleted file mode 100644
index 3215e88..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAEditorMessages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ContentAssistProposal.label=Content &Assist
-ContentAssistProposal.tooltip=Content Assist
-ContentAssistProposal.image=
-ContentAssistProposal.description=Content Assist
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAScanner.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAScanner.java
deleted file mode 100644
index b62d0ba..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDAScanner.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import org.eclipse.debug.examples.ui.pda.DebugUIPlugin;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.text.rules.BufferedRuleBasedScanner;
-import org.eclipse.jface.text.rules.IRule;
-import org.eclipse.jface.text.rules.IWordDetector;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.text.rules.WordRule;
-
-
-/**
- * PDA editor keyword scanner.
- */
-public class PDAScanner extends BufferedRuleBasedScanner {
-    
-    /**
-     * PDA keywods
-     */
-    public static final String[] fgKeywords = new String[] {
-        "add", "branch_not_zero", "call", "dec", "dup",
-        "halt", "output", "pop", "push", "return", "var"
-    };
-    
-    /**
-     * Detects potential keywords
-     */
-    class PDAWordDetector implements IWordDetector {
-
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.text.rules.IWordDetector#isWordStart(char)
-         */
-        public boolean isWordStart(char c) {
-            return Character.isLetter(c);
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.text.rules.IWordDetector#isWordPart(char)
-         */
-        public boolean isWordPart(char c) {
-            return Character.isLetter(c) || c == '_';
-        }
-    }
-    
-    /**
-     * Detects PDA branch labels
-     */
-    class PDALabelDetector extends PDAWordDetector {
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.text.rules.IWordDetector#isWordStart(char)
-         */
-        public boolean isWordStart(char c) {
-            return c == ':';
-        }
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.text.rules.IWordDetector#isWordPart(char)
-         */
-        public boolean isWordPart(char c) {
-            return super.isWordPart(c) || Character.isDigit(c);
-        }
-    }
-
-    /**
-     * Constructs a scanner that identifies PDA keywords.
-     */
-    public PDAScanner() {
-        // keywords
-        Token token = new Token(new TextAttribute(DebugUIPlugin.getDefault().getColor(DebugUIPlugin.KEYWORD)));
-        WordRule keywords = new WordRule(new PDAWordDetector());
-        for (int i = 0; i < fgKeywords.length; i++) {
-            String keyword = fgKeywords[i];
-            keywords.addWord(keyword, token);
-        }
-        // labels
-        token = new Token(new TextAttribute(DebugUIPlugin.getDefault().getColor(DebugUIPlugin.LABEL)));
-        WordRule labels = new WordRule(new PDALabelDetector(), token); 
-        setRules(new IRule[]{keywords, labels});
-    }
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDASourceViewerConfiguration.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDASourceViewerConfiguration.java
deleted file mode 100644
index 6c24c36..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PDASourceViewerConfiguration.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.presentation.IPresentationReconciler;
-import org.eclipse.jface.text.presentation.PresentationReconciler;
-import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
-import org.eclipse.jface.text.source.IAnnotationHover;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
-
-/**
- * Source view configuration for the PDA editor
- */
-public class PDASourceViewerConfiguration extends TextSourceViewerConfiguration {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getTextHover(org.eclipse.jface.text.source.ISourceViewer, java.lang.String)
-     */
-    public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
-        return new TextHover();
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getAnnotationHover(org.eclipse.jface.text.source.ISourceViewer)
-	 */
-	public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
-		return new AnnotationHover();
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getPresentationReconciler(org.eclipse.jface.text.source.ISourceViewer)
-     */
-    public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
-        PresentationReconciler reconciler = new PresentationReconciler();
-        reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
-        DefaultDamagerRepairer dr = new DefaultDamagerRepairer(new PDAScanner());
-        reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
-        reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
-        return reconciler;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getContentAssistant(org.eclipse.jface.text.source.ISourceViewer)
-     */
-    public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
-        return new PDAContentAssistant();
-    }
-    
-    
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PopFrameActionDelegate.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PopFrameActionDelegate.java
deleted file mode 100644
index 1c13bac..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PopFrameActionDelegate.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-
-public class PopFrameActionDelegate implements IObjectActionDelegate, IActionDelegate2 {
-	
-	private PDAThread fThread = null;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		//#ifdef ex5
-//#		// TODO: Exercise 5 - pop the top frame		
-		//#else
-		try {
-			fThread.pop();
-		} catch (DebugException e) {
-		}
-		//#endif
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection ss = (IStructuredSelection) selection;
-			Object element = ss.getFirstElement();
-			if (element instanceof PDAStackFrame) {
-				PDAStackFrame frame = (PDAStackFrame) element;
-				//#ifdef ex5
-//#				// TODO: Exercise 5 - enable the action if the frame's thread supports it				
-				//#else
-				fThread = (PDAThread) frame.getThread();
-				try {
-					action.setEnabled(fThread.canPop() && fThread.getTopStackFrame().equals(frame));
-				} catch (DebugException e) {
-				}
-				return;
-				//#endif
-			}
-			
-		}
-		action.setEnabled(false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction)
-	 */
-	public void init(IAction action) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate2#dispose()
-	 */
-	public void dispose() {
-		fThread = null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate2#runWithEvent(org.eclipse.jface.action.IAction, org.eclipse.swt.widgets.Event)
-	 */
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/TextHover.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/TextHover.java
deleted file mode 100644
index 6b14e4c..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/TextHover.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.core.model.IVariable;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-
-
-/**
- * Produces debug hover for the PDA debugger.
- */
-public class TextHover implements ITextHover {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
-     */
-    public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
-        String varName = null;
-        try {
-            varName = textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength());
-        } catch (BadLocationException e) {
-           return null;
-        }
-        if (varName.startsWith("$") && varName.length() > 1) {
-            varName = varName.substring(1);
-        }
-   
-        PDAStackFrame frame = null;
-        IAdaptable debugContext = DebugUITools.getDebugContext();
-        if (debugContext instanceof PDAStackFrame) {
-           frame = (PDAStackFrame) debugContext;
-        } else if (debugContext instanceof PDAThread) {
-            PDAThread thread = (PDAThread) debugContext;
-            try {
-                frame = (PDAStackFrame) thread.getTopStackFrame();
-            } catch (DebugException e) {
-                return null;
-            }
-        } else if (debugContext instanceof PDADebugTarget) {
-            PDADebugTarget target = (PDADebugTarget) debugContext;
-            try {
-                IThread[] threads = target.getThreads();
-                if (threads.length > 0) {
-                    frame = (PDAStackFrame) threads[0].getTopStackFrame();
-                }
-            } catch (DebugException e) {
-                return null;
-            }
-        }
-        if (frame != null) {
-            try {
-                IVariable[] variables = frame.getVariables();
-                for (int i = 0; i < variables.length; i++) {
-                    IVariable variable = variables[i];
-                    if (variable.getName().equals(varName)) {
-                        return varName + " = " + variable.getValue().getValueString(); 
-                    }
-                }
-            } catch (DebugException e) {
-            }
-        }
-        return null;
-    }
-    	
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer, int)
-     */
-    public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-        return WordFinder.findWord(textViewer.getDocument(), offset);
-    }
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/WordFinder.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/WordFinder.java
deleted file mode 100644
index e60d982..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/WordFinder.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.editor;
-
- 
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-
-/**
- * Looks for an identifier in a source file
- */
-public class WordFinder {
-	
-    /**
-     * Returns the region in the given document that contains an identifier, or
-     * <code>null</code> if none.
-     * 
-     * @param document document to search
-     * @param offset offset at which to look for an identifier
-     * @return region containing an identifier, or <code>null</code>
-     */
-	public static IRegion findWord(IDocument document, int offset) {
-		
-		int start= -1;
-		int end= -1;
-		
-		
-		try {
-			
-			int pos= offset;
-			char c;
-			
-			while (pos >= 0) {
-				c= document.getChar(pos);
-				if (!Character.isJavaIdentifierPart(c))
-					break;
-				--pos;
-			}
-			
-			start= pos;
-			
-			pos= offset;
-			int length= document.getLength();
-			
-			while (pos < length) {
-				c= document.getChar(pos);
-				if (!Character.isJavaIdentifierPart(c))
-					break;
-				++pos;
-			}
-			
-			end= pos;
-			
-		} catch (BadLocationException x) {
-		}
-		
-		if (start > -1 && end > -1) {
-			if (start == offset && end == offset)
-				return new Region(offset, 0);
-			else if (start == offset)
-				return new Region(start, end - start);
-			else
-				return new Region(start + 1, end - start - 1);
-		}
-		
-		return null;
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDALaunchShortcut.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDALaunchShortcut.java
deleted file mode 100644
index 2bbf75e..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDALaunchShortcut.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.launcher;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.ILaunchShortcut;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
-
-
-/**
- * Launches a PDA file
- */
-public class PDALaunchShortcut implements ILaunchShortcut {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.jface.viewers.ISelection, java.lang.String)
-     */
-    public void launch(ISelection selection, String mode) {
-        // must be a structured selection with one file selected
-        IFile file = (IFile) ((IStructuredSelection)selection).getFirstElement();
-
-        // check for an existing launch config for the pda file
-        String path = file.getFullPath().toString(); 
-        ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
-        ILaunchConfigurationType type = launchManager.getLaunchConfigurationType(DebugCorePlugin.ID_PDA_LAUNCH_CONFIGURATION_TYPE);
-        try {
-            ILaunchConfiguration[] configurations = launchManager.getLaunchConfigurations(type);
-            for (int i = 0; i < configurations.length; i++) {
-                ILaunchConfiguration configuration = configurations[i];
-                String attribute = configuration.getAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, (String)null);
-                if (path.equals(attribute)) {
-                    DebugUITools.launch(configuration, mode);
-                    return;
-                }
-            }
-        } catch (CoreException e) {
-            return;
-        }
-        
-        try {
-            // create a new configuration for the pda file
-            ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, file.getName());
-            workingCopy.setAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, path);
-            ILaunchConfiguration configuration = workingCopy.doSave();
-            DebugUITools.launch(configuration, mode);
-        } catch (CoreException e1) {
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.ui.IEditorPart, java.lang.String)
-     */
-    public void launch(IEditorPart editor, String mode) {
-    }
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDAMainTab.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDAMainTab.java
deleted file mode 100644
index 59217fb..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDAMainTab.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.launcher;
-
-
-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.Path;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.ui.pda.DebugUIPlugin;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ResourceListSelectionDialog;
-
-
-/**
- * Tab to specify the PDA program to run/debug.
- */
-public class PDAMainTab extends AbstractLaunchConfigurationTab {
-	
-	private Text fProgramText;
-	private Button fProgramButton;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		Font font = parent.getFont();
-		
-		Composite comp = new Composite(parent, SWT.NONE);
-		setControl(comp);
-		GridLayout topLayout = new GridLayout();
-		topLayout.verticalSpacing = 0;
-		topLayout.numColumns = 3;
-		comp.setLayout(topLayout);
-		comp.setFont(font);
-		
-		createVerticalSpacer(comp, 3);
-		
-		Label programLabel = new Label(comp, SWT.NONE);
-		programLabel.setText("&Program:");
-		GridData gd = new GridData(GridData.BEGINNING);
-		programLabel.setLayoutData(gd);
-		programLabel.setFont(font);
-		
-		fProgramText = new Text(comp, SWT.SINGLE | SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		fProgramText.setLayoutData(gd);
-		fProgramText.setFont(font);
-		fProgramText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateLaunchConfigurationDialog();
-			}
-		});
-		
-		fProgramButton = createPushButton(comp, "&Browse...", null); //$NON-NLS-1$
-		fProgramButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				browsePDAFiles();
-			}
-		});
-	}
-	
-	/**
-	 * Open a resource chooser to select a PDA program 
-	 */
-	protected void browsePDAFiles() {
-		ResourceListSelectionDialog dialog = new ResourceListSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), IResource.FILE);
-		dialog.setTitle("PDA Program");
-		dialog.setMessage("Select PDA Program");
-		if (dialog.open() == Window.OK) {
-			Object[] files = dialog.getResult();
-			IFile file = (IFile) files[0];
-			fProgramText.setText(file.getFullPath().toString());
-		}
-		
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public void initializeFrom(ILaunchConfiguration configuration) {
-		//#ifdef ex1
-//#		// TODO: Exercise 1 - retrieve the program path attribute from the launch configuration		
-//#		String program = null;
-//#		if (program != null) {
-//#			fProgramText.setText(program);
-//#		}
-		//#else
-		try {
-			String program = null;
-			program = configuration.getAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, (String)null);
-			if (program != null) {
-				fProgramText.setText(program);
-			}
-		} catch (CoreException e) {
-			setErrorMessage(e.getMessage());
-		}
-		//#endif
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		String program = fProgramText.getText().trim();
-		if (program.length() == 0) {
-			program = null;
-		}
-		//#ifdef ex1
-//#		// TODO: Exercise 1 - update the launch configuration with the path to
-//#		//   currently specified program		
-		//#else
-		configuration.setAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, program);
-		//#endif
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-	 */
-	public String getName() {
-		return "Main";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public boolean isValid(ILaunchConfiguration launchConfig) {
-		setErrorMessage(null);
-		setMessage(null);
-		String text = fProgramText.getText();
-		//#ifdef ex1
-//#		// TODO: Exercise 1 - validate the currently specified program exists and is not
-//#		//	empty, providing the user with feedback.		
-		//#else
-		if (text.length() > 0) {
-			IPath path = new Path(text);
-			if (ResourcesPlugin.getWorkspace().getRoot().findMember(path) == null) {
-				setErrorMessage("Specified program does not exist");
-				return false;
-			}
-		} else {
-			setMessage("Specify a program");
-		}
-		//#endif
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return DebugUIPlugin.getDefault().getImageRegistry().get(DebugUIPlugin.IMG_OBJ_PDA);
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDATabGroup.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDATabGroup.java
deleted file mode 100644
index 6f1753c..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDATabGroup.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.launcher;
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.debug.ui.sourcelookup.SourceLookupTab;
-
-/**
- * Tab group for a PDA application
- */
-public class PDATabGroup extends AbstractLaunchConfigurationTabGroup {
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
-	 */
-	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		//#ifdef ex1
-//#		// TODO: Exercise 1 - add the PDA main tab, source lookup tab and common
-//#		//  tab to the tab group		
-		//#else
-		setTabs(new ILaunchConfigurationTab[] {
-				new PDAMainTab(),
-				new SourceLookupTab(),
-				new CommonTab()
-		});
-		//#endif
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/presentation/PDAModelPresentation.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/presentation/PDAModelPresentation.java
deleted file mode 100644
index 7d5d3ba..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/presentation/PDAModelPresentation.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.presentation;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.ILineBreakpoint;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDAWatchpoint;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.debug.ui.IValueDetailListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
-
-
-/**
- * Renders PDA debug elements
- */
-public class PDAModelPresentation extends LabelProvider implements IDebugModelPresentation {
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDebugModelPresentation#setAttribute(java.lang.String, java.lang.Object)
-	 */
-	public void setAttribute(String attribute, Object value) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof PDADebugTarget) {
-			return getTargetText((PDADebugTarget)element);
-		} else if (element instanceof PDAThread) {
-	        return getThreadText((PDAThread)element);
-	    } else if (element instanceof PDAStackFrame) {
-	        return getStackFrameText((PDAStackFrame)element);
-	    } else if (element instanceof PDAWatchpoint) {
-	        return getWatchpointText((PDAWatchpoint)element);
-	    }
-		return null;
-	}
-	
-	/**
-	 * Returns a label for the given watchpoint.
-	 * 
-     * @param watchpoint
-     * @return a label for the given watchpoint
-     */
-    private String getWatchpointText(PDAWatchpoint watchpoint) {
-        try {
-	        String label = watchpoint.getVariableName() + " (" + watchpoint.getFunctionName() + ")";
-	        if (watchpoint.isAccess()) {
-	            label += " [read]";
-	        }
-	        if (watchpoint.isModification()) {
-	            label += " [write]";
-	        }
-	        return label;
-        } catch (CoreException e) {
-            return null;
-        } 
-    }
-    /**
-	 * Returns a label for the given debug target
-	 * 
-	 * @param target debug target
-	 * @return a label for the given debug target
-	 */
-	private String getTargetText(PDADebugTarget target) {
-		try {
-			String pgmPath = target.getLaunch().getLaunchConfiguration().getAttribute(DebugCorePlugin.ATTR_PDA_PROGRAM, (String)null);
-			if (pgmPath != null) {
-			    IPath path = new Path(pgmPath);
-			    String label = "";
-			    if (target.isTerminated()) {
-			    	label = "<terminated>";
-			    }
-			    return label + "PDA [" + path.lastSegment() + "]";
-			}
-		} catch (CoreException e) {
-		}
-		return "PDA";
-		
-	}
-	
-	/**
-	 * Returns a label for the given stack frame
-	 * 
-	 * @param frame a stack frame
-	 * @return a label for the given stack frame 
-	 */
-	private String getStackFrameText(PDAStackFrame frame) {
-	    try {
-	       return frame.getName() + " (line: " + frame.getLineNumber() + ")"; 
-	    } catch (DebugException e) {
-	    }
-	    return null;
-
-	}
-	
-	/**
-	 * Returns a label for the given thread
-	 * 
-	 * @param thread a thread
-	 * @return a label for the given thread
-	 */
-	private String getThreadText(PDAThread thread) {
-	    String label = thread.getName();
-	    if (thread.isStepping()) {
-	        label += " (stepping)";
-	    } else if (thread.isSuspended()) {
-	        IBreakpoint[] breakpoints = thread.getBreakpoints();
-	        if (breakpoints.length == 0) {
-	        	if (thread.getError() == null) {
-	        		label += " (suspended)";
-	        	} else {
-	        		label += " (" + thread.getError() + ")";
-	        	}
-	        } else {
-	            IBreakpoint breakpoint = breakpoints[0]; // there can only be one in PDA
-	            if (breakpoint instanceof PDALineBreakpoint) {
-	            	PDALineBreakpoint pdaBreakpoint = (PDALineBreakpoint) breakpoint;
-	            	if (pdaBreakpoint instanceof PDAWatchpoint) {
-	            	    try {
-		            	    PDAWatchpoint watchpoint = (PDAWatchpoint)pdaBreakpoint;
-		            	    label += " (watchpoint: " + watchpoint.getSuspendType() + " " + watchpoint.getVariableName() + ")";
-	            	    } catch (CoreException e) {
-	            	    }
-	            	} else if (pdaBreakpoint.isRunToLineBreakpoint()) {
-	            		label += " (run to line)";
-	            	} else {
-	            		label += " (suspended at line breakpoint)";
-	            	}
-	            }
-	        }
-	    } else if (thread.isTerminated()) {
-	        label = "<terminated> " + label;
-	    }
-	    return label;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDebugModelPresentation#computeDetail(org.eclipse.debug.core.model.IValue, org.eclipse.debug.ui.IValueDetailListener)
-	 */
-	public void computeDetail(IValue value, IValueDetailListener listener) {
-		String detail = "";
-		try {
-			detail = value.getValueString();
-		} catch (DebugException e) {
-		}
-		listener.detailComputed(value, detail);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ISourcePresentation#getEditorInput(java.lang.Object)
-	 */
-	public IEditorInput getEditorInput(Object element) {
-		if (element instanceof IFile) {
-			return new FileEditorInput((IFile)element);
-		}
-		if (element instanceof ILineBreakpoint) {
-			return new FileEditorInput((IFile)((ILineBreakpoint)element).getMarker().getResource());
-		}
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ISourcePresentation#getEditorId(org.eclipse.ui.IEditorInput, java.lang.Object)
-	 */
-	public String getEditorId(IEditorInput input, Object element) {
-		if (element instanceof IFile || element instanceof ILineBreakpoint) {
-			return "pda.editor";
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/DataStackView.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/DataStackView.java
deleted file mode 100644
index 234fe30..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/DataStackView.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.ui.AbstractDebugView;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-
-
-/**
- * View of the PDA VM data stack 
- */
-public class DataStackView extends AbstractDebugView implements ISelectionListener {
-    
-    private PDADebugTarget fTarget;
-    private PopAction fPopAction;
-    private PushAction fPushAction;
-	
-	class StackViewContentProvider implements ITreeContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof PDADebugTarget) {
-				try {
-					return ((PDADebugTarget)parentElement).getDataStack();
-				} catch (DebugException e) {
-				}
-			}
-			return new Object[0];
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof IDebugTarget) {
-				return null;
-			} else {
-				return ((IDebugElement)element).getDebugTarget();
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			if (element instanceof IDebugElement) {
-				return getChildren(element).length > 0;
-			}
-			return false;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Viewer createViewer(Composite parent) {
-		TreeViewer viewer = new TreeViewer(parent);
-		viewer.setLabelProvider(DebugUITools.newDebugModelPresentation());
-		viewer.setContentProvider(new StackViewContentProvider());
-		getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(IDebugUIConstants.ID_DEBUG_VIEW, this);
-		getSite().setSelectionProvider(viewer);
-		return viewer;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#createActions()
-	 */
-	protected void createActions() {
-	    fPopAction = new PopAction(this);
-	    fPushAction = new PushAction(this);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#getHelpContextId()
-	 */
-	protected String getHelpContextId() {
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	protected void fillContextMenu(IMenuManager menu) {
-		menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		menu.add(fPopAction);
-		menu.add(fPushAction);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(org.eclipse.jface.action.IToolBarManager)
-	 */
-	protected void configureToolBar(IToolBarManager tbm) {
-	    tbm.add(fPopAction);
-	    tbm.add(fPushAction);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		getSite().getWorkbenchWindow().getSelectionService().removeSelectionListener(IDebugUIConstants.ID_DEBUG_VIEW, this);
-		super.dispose();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		update();
-	}
-    
-    /**
-     * Updates the view for the selected target (if suspended)
-     */
-    private synchronized void update() {
-		IAdaptable adaptable = DebugUITools.getDebugContext();
-		fTarget = null;
-		if (adaptable != null) {
-			IDebugElement element = (IDebugElement) adaptable.getAdapter(IDebugElement.class);
-			if (element != null) {
-				if (element.getModelIdentifier().equals(DebugCorePlugin.ID_PDA_DEBUG_MODEL)) {
-					fTarget = (PDADebugTarget) element.getDebugTarget();
-				}
-			}
-		}        
-		Object input = null;
-		if (fTarget != null && fTarget.isSuspended()) {
-		    input = fTarget;
-		}
-		getViewer().setInput(input);
-		fPushAction.setDebugTarget(fTarget);
-		getViewer().refresh();
-    }
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopAction.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopAction.java
deleted file mode 100644
index af21fbc..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopAction.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.examples.ui.pda.DebugUIPlugin;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-
-
-/**
- * Pops a selected value off the data stack. The selection does <b>not</b> have to be
- * the top element on the stack.
- */
-public class PopAction extends Action implements ISelectionChangedListener {
-    
-    private DataStackView fView;
-
-    /**
-     * Constructs an action to pop values off the stack 
-     */
-    protected PopAction(DataStackView view) {
-        super("Pop");
-        ImageRegistry imageRegistry = DebugUIPlugin.getDefault().getImageRegistry();
-        setImageDescriptor(imageRegistry.getDescriptor(DebugUIPlugin.IMG_ELCL_POP));
-        setDisabledImageDescriptor(imageRegistry.getDescriptor(DebugUIPlugin.IMG_DLCL_POP));
-        setToolTipText("Pop");
-        setEnabled(false);
-        view.getSite().getSelectionProvider().addSelectionChangedListener(this);
-        fView = view;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        if (event.getSelection().isEmpty()) {
-            setEnabled(false);
-        } else {
-            setEnabled(getDebugTarget().canPop());
-        } 
-    }
-
-    public void run() {
-        TreeViewer viewer = (TreeViewer)fView.getViewer();
-        IStructuredSelection selection = (IStructuredSelection)viewer.getSelection();
-        Object popee = selection.getFirstElement();
-        try {
-            PDADebugTarget target = getDebugTarget();
-            IValue[] stack = target.getDataStack();
-	        List restore = new ArrayList();
-	        for (int i = 0; i < stack.length; i++) {
-	            Object value = stack[i];
-	            if (popee.equals(value)) {
-	                // pop & stop
-	                target.pop();
-	                break;
-	            } else {
-	                // remember value to push back on
-	                restore.add(target.pop());
-	            }
-	        }
-	        while (!restore.isEmpty()) {
-	            IValue value = (IValue) restore.remove(restore.size() - 1);
-	            target.push(value.getValueString());
-	        }
-        } catch (DebugException e) {
-        }
-        viewer.refresh();
-    }
-    
-    /**
-     * Returns the debug target assocaited with the data view.
-     * 
-     * @return the debug target assocaited with the data view
-     */
-    protected PDADebugTarget getDebugTarget() {
-        TreeViewer viewer = (TreeViewer)fView.getViewer();
-        return (PDADebugTarget) viewer.getInput();
-    }
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushAction.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushAction.java
deleted file mode 100644
index 8764cf3..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bjorn Freeman-Benson - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.examples.core.pda.model.PDADebugTarget;
-import org.eclipse.debug.examples.ui.pda.DebugUIPlugin;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.window.Window;
-
-
-/**
- * Pushes a value onto the data stack.
- */
-public class PushAction extends Action {
-    
-    private PDADebugTarget fTarget;
-    private DataStackView fView;
-
-    /**
-     * Constructs an action to pop values off the stack 
-     */
-    protected PushAction(DataStackView view) {
-        super("Push");
-        ImageRegistry imageRegistry = DebugUIPlugin.getDefault().getImageRegistry();
-        setImageDescriptor(imageRegistry.getDescriptor(DebugUIPlugin.IMG_ELCL_PUSH));
-        setDisabledImageDescriptor(imageRegistry.getDescriptor(DebugUIPlugin.IMG_DLCL_PUSH));
-        setToolTipText("Push");
-        setEnabled(false);     
-        fView = view;
-    }
-    
-    public void run() {
-        InputDialog dialog = new InputDialog(fView.getSite().getShell(), "Specify Value", "Enter value to push", null, null);
-        if (dialog.open() == Window.OK) {
-            try {
-                fTarget.push(dialog.getValue());
-            } catch (DebugException e) {
-            }
-        }
-        fView.getViewer().refresh();
-    }
-
-    protected void setDebugTarget(PDADebugTarget target) {
-        fTarget = target;
-        setEnabled(fTarget != null && fTarget.canPush());
-    }
-    
-    
-}
diff --git a/org.eclipse.ui.console/.classpath b/org.eclipse.ui.console/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/org.eclipse.ui.console/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.ui.console/.cvsignore b/org.eclipse.ui.console/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.ui.console/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.ui.console/.project b/org.eclipse.ui.console/.project
deleted file mode 100644
index aa92a70..0000000
--- a/org.eclipse.ui.console/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.console</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b9a857a..0000000
--- a/org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Mon Sep 10 09:09:06 CDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,HIGH,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,EXPERIMENTAL,CONTEXTLAUNCHING
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/org.eclipse.ui.console/.settings/org.eclipse.pde.prefs b/org.eclipse.ui.console/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index be21c5d..0000000
--- a/org.eclipse.ui.console/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,17 +0,0 @@
-#Tue Jan 30 11:39:21 CST 2007

-compilers.incompatible-environment=1

-compilers.p.build=1

-compilers.p.deprecated=1

-compilers.p.illegal-att-value=0

-compilers.p.missing-packages=0

-compilers.p.no-required-att=0

-compilers.p.not-externalized-att=1

-compilers.p.unknown-attribute=0

-compilers.p.unknown-class=1

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=1

-compilers.p.unresolved-ex-points=0

-compilers.p.unresolved-import=0

-compilers.p.unused-element-or-attribute=1

-compilers.use-project=true

-eclipse.preferences.version=1

diff --git a/org.eclipse.ui.console/META-INF/MANIFEST.MF b/org.eclipse.ui.console/META-INF/MANIFEST.MF
deleted file mode 100644
index 34fcba0..0000000
--- a/org.eclipse.ui.console/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.console; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-Activator: org.eclipse.ui.console.ConsolePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.console,
- org.eclipse.ui.console.actions,
- org.eclipse.ui.internal.console;x-internal:=true
-Require-Bundle: org.eclipse.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.jface.text;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.core.expressions;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.core.variables;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/org.eclipse.ui.console/about.html b/org.eclipse.ui.console/about.html
deleted file mode 100644
index 4602330..0000000
--- a/org.eclipse.ui.console/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation 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
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.console/build.properties b/org.eclipse.ui.console/build.properties
deleted file mode 100644
index 2a484ec..0000000
--- a/org.eclipse.ui.console/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = icons/,\
-               plugin.xml,\
-               plugin.properties,\
-               .,\
-               about.html,\
-               META-INF/
-
-source.. src/
-src.includes = about.html,\
-               schema/
diff --git a/org.eclipse.ui.console/component.xml b/org.eclipse.ui.console/component.xml
deleted file mode 100644
index de1f8d5..0000000
--- a/org.eclipse.ui.console/component.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/component"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://eclipse.org/component ../component.xsd "
-   name="Eclipse Platform Console">
- <plugin id="org.eclipse.ui.console" />
-
- <package name="org.eclipse.ui.console">
- 	<type name="AbstractConsole" />
- 	<type name="ConsolePlugin" instantiate="false" subclass="false" />
- 	<type name="IConsole" />
- 	<type name="IConsoleConstants" implement="false" />
- 	<type name="IConsoleDocumentPartitioner" />
- 	<type name="IConsoleFactory" />
- 	<type name="IConsoleListener" />
- 	<type name="IConsoleManager" implement="false" />
- 	<type name="IConsolePageParticipant" />
- 	<type name="IConsoleView" implement="false" />
- 	<type name="IHyperlink" />
- 	<type name="IHyperlink2" />
- 	<type name="IOConsole" />
- 	<type name="IOConsoleInputStream" subclass="false" instantiate="false" />
- 	<type name="IOConsoleOutputStream" subclass="false" instantiate="false" />
- 	<type name="IPatternMatchListener" />
- 	<type name="IPatternMatchListenerDelegate" />
- 	<type name="MessageConsole" subclass="false" />
- 	<type name="MessageConsoleStream" subclass="false" instantiate="false" />
- 	<type name="PatternMatchEvent" subclass="false" />
- 	<type name="TextConsole" />
- 	<type name="TextConsolePage" />
- 	<type name="TextConsoleViewer" />
- </package>
- <package name="org.eclipse.ui.console.actions">
- 	<type name="ClearOutputAction" subclass="false" />
- 	<type name="CloseConsoleAction" subclass="false" />
- 	<type name="TextViewerAction" />
- 	<type name="TextViewerGotoLineAction" subclass="false" />
- </package>
- 
- <component-depends unrestricted="true"/>
-
-</component>
\ No newline at end of file
diff --git a/org.eclipse.ui.console/icons/full/clcl16/clear_co.gif b/org.eclipse.ui.console/icons/full/clcl16/clear_co.gif
deleted file mode 100644
index af30a42..0000000
--- a/org.eclipse.ui.console/icons/full/clcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/clcl16/lock_co.gif b/org.eclipse.ui.console/icons/full/clcl16/lock_co.gif
deleted file mode 100644
index 68fd6cf..0000000
--- a/org.eclipse.ui.console/icons/full/clcl16/lock_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/clcl16/pin.gif b/org.eclipse.ui.console/icons/full/clcl16/pin.gif
deleted file mode 100644
index ec50b70..0000000
--- a/org.eclipse.ui.console/icons/full/clcl16/pin.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/cview16/console_view.gif b/org.eclipse.ui.console/icons/full/cview16/console_view.gif
deleted file mode 100644
index a598f60..0000000
--- a/org.eclipse.ui.console/icons/full/cview16/console_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif b/org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif
deleted file mode 100644
index 6775edf..0000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif b/org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif
deleted file mode 100644
index b776478..0000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/pin.gif b/org.eclipse.ui.console/icons/full/dlcl16/pin.gif
deleted file mode 100644
index 61615d5..0000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/pin.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif b/org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif
deleted file mode 100644
index 559e462..0000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/clear_co.gif b/org.eclipse.ui.console/icons/full/elcl16/clear_co.gif
deleted file mode 100644
index af30a42..0000000
--- a/org.eclipse.ui.console/icons/full/elcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/lock_co.gif b/org.eclipse.ui.console/icons/full/elcl16/lock_co.gif
deleted file mode 100644
index 68fd6cf..0000000
--- a/org.eclipse.ui.console/icons/full/elcl16/lock_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/new_con.gif b/org.eclipse.ui.console/icons/full/elcl16/new_con.gif
deleted file mode 100644
index 7aea894..0000000
--- a/org.eclipse.ui.console/icons/full/elcl16/new_con.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/pin.gif b/org.eclipse.ui.console/icons/full/elcl16/pin.gif
deleted file mode 100644
index ec50b70..0000000
--- a/org.eclipse.ui.console/icons/full/elcl16/pin.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/rem_co.gif b/org.eclipse.ui.console/icons/full/elcl16/rem_co.gif
deleted file mode 100644
index 2cd9c54..0000000
--- a/org.eclipse.ui.console/icons/full/elcl16/rem_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/eview16/console_view.gif b/org.eclipse.ui.console/icons/full/eview16/console_view.gif
deleted file mode 100644
index a598f60..0000000
--- a/org.eclipse.ui.console/icons/full/eview16/console_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/plugin.properties b/org.eclipse.ui.console/plugin.properties
deleted file mode 100644
index 1301fab..0000000
--- a/org.eclipse.ui.console/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=Console
-providerName=Eclipse.org
-ConsoleView.name=Console
-
-ViewCommand.consoleView.name=Console
-ViewCommand.consoleView.description=Show the Console view
-
-ConsolePatternMatchListenerName= Console Pattern Match Listeners
-ConsolePageParticipantName= Console Page Participants
-
-ConsoleFactoryName= Console Factories
-
-consoleViewConsoleFactory.name=New Console View
diff --git a/org.eclipse.ui.console/plugin.xml b/org.eclipse.ui.console/plugin.xml
deleted file mode 100644
index e3b5332..0000000
--- a/org.eclipse.ui.console/plugin.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension-point id="consolePatternMatchListeners" name="%ConsolePatternMatchListenerName" schema="schema/consolePatternMatchListeners.exsd"/>
-   <extension-point id="consolePageParticipants" name="%ConsolePageParticipantName" schema="schema/consolePageParticipants.exsd"/>
-   <extension-point id="consoleFactories" name="%ConsoleFactoryName" schema="schema/consoleFactories.exsd"/>
-
-
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            allowMultiple="true"
-            class="org.eclipse.ui.internal.console.ConsoleView"
-            icon="$nl$/icons/full/cview16/console_view.gif"
-            category="org.eclipse.ui"
-            name="%ConsoleView.name"
-            id="org.eclipse.ui.console.ConsoleView">
-      </view>
-   </extension>
-<!-- commands and their bindings
-NOTE: 
-M1 = CTRL/COMMAND 
-M2 = SHIFT 
-M3 = ALT 
-M4 = Platform-specific fourth key
--->   
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            name="%ViewCommand.consoleView.name"
-            description="%ViewCommand.consoleView.description"
-            categoryId="org.eclipse.ui.category.views"
-            id="org.eclipse.ui.console.ConsoleView">
-      </command>
-   </extension>
-    <extension point="org.eclipse.ui.bindings">
-     <key 
-  	    	sequence="M2+M3+Q C"
-            contextId="org.eclipse.ui.globalScope"
-            commandId="org.eclipse.ui.console.ConsoleView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
-     <key 
-            platform="carbon"
-  	    	sequence="M2+M3+Q C"
-            contextId="org.eclipse.ui.globalScope"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
-     <key 
-  	    	sequence="M1+M3+Q C"
-            contextId="org.eclipse.ui.globalScope"
-            commandId="org.eclipse.ui.console.ConsoleView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
-  	</extension>
-    <extension
-          point="org.eclipse.core.expressions.propertyTesters">
-       <propertyTester
-             namespace="org.eclipse.ui.console"
-             type="org.eclipse.ui.console.IConsole"
-             class="org.eclipse.ui.internal.console.ConsoleTypePropertyTester"
-             properties="consoleTypeTest"
-             id="org.eclipse.ui.console.ConsoleTypePropertyTester"/>
-    </extension>
-    <extension
-          point="org.eclipse.ui.console.consoleFactories">
-       <consoleFactory
-             label="%consoleViewConsoleFactory.name"
-             class="org.eclipse.ui.internal.console.ConsoleViewConsoleFactory"/>
-    </extension>
-
-</plugin>
diff --git a/org.eclipse.ui.console/schema/consoleFactories.exsd b/org.eclipse.ui.console/schema/consoleFactories.exsd
deleted file mode 100644
index 210882f..0000000
--- a/org.eclipse.ui.console/schema/consoleFactories.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.ui.console">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.ui.console" id="consoleFactories" name="Console Factories"/>

-      </appInfo>

-      <documentation>

-         A console factory creates or activates a console, and appears as an action in the console view.

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="consoleFactory"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  a fully qualified identifier of the target extension point

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  an optional identifier of the extension instance

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  an optional name of the extension instance

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="consoleFactory">

-      <complexType>

-         <attribute name="label" type="string" use="required">

-            <annotation>

-               <documentation>

-                  action label to appear in menu

-               </documentation>

-               <appInfo>

-                  <meta.attribute translatable="true"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-         <attribute name="icon" type="string">

-            <annotation>

-               <documentation>

-                  optional plug-in relative path to an icon to appear with the action

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="resource"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  class implementing &lt;code&gt;org.eclipse.ui.console.IConsoleFactory&lt;/code&gt; that will be called when the associated action is invoked

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.console.IConsoleFactory"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="since"/>

-      </appInfo>

-      <documentation>

-         3.1

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is an example of a console factory extension point: 

-&lt;pre&gt;

-&lt;extension point=&quot;org.eclipse.ui.console.consoleFactories&quot;&gt;

-  &lt;consoleFactory 

-     label=&quot;Command Console&quot;

-     class=&quot;com.example.CommandConsoleFactory&quot;

-     icon=&quot;icons/cmd_console.gif&quot;&gt;

-  &lt;/consoleFactory&gt;

-&lt;/extension&gt;

-&lt;/pre&gt;

-This extension will cause an entry to appear in the console view&apos;s &lt;b&gt;Open Console&lt;/b&gt; drop-down menu labelled &lt;b&gt;Command Console&lt;/b&gt; with the specified icon. When the action is invoked by a user, the method &lt;b&gt;openConsole()&lt;/b&gt; on the class &lt;b&gt;com.example.CommandConsoleFactory&lt;/b&gt; will be called. The factory can the decide to create a new console or activate an existing console.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.ui.console.IConsoleFactory&lt;/b&gt;.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         The console plug-in provides a console factory to open a new console view.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         Copyright (c) 2004, 2005 IBM Corporation and others.&lt;br&gt;

-All rights reserved. This program and the accompanying materials are made 

-available under the terms of the Eclipse Public License v1.0 which 

-accompanies this distribution, and is available at 

-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/org.eclipse.ui.console/schema/consolePageParticipants.exsd b/org.eclipse.ui.console/schema/consolePageParticipants.exsd
deleted file mode 100644
index 06b40c1..0000000
--- a/org.eclipse.ui.console/schema/consolePageParticipants.exsd
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.console">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.console" id="consolePageParticipants" name="Console Page Participants"/>
-      </appInfo>
-      <documentation>
-         This extension point provides a mechanism for contributing a console page participant.  A console page participant is notified of page lifecycle events such as creation, activation, deactivation and disposal. A page participant can also provide adapters for a page.
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="consolePageParticipant"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="consolePageParticipant">
-      <complexType>
-         <sequence>
-            <element ref="enablement"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies a unique identifier for this Console Page Participant
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies a fully qualified name of a Java class that implements &lt;code&gt;IConsolePageParticipant&lt;/code&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.console.IConsolePageParticipant"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.1
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a console page participant extension point: 
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.console.consolePageParticipants&quot;&gt;
-      &lt;consolePageParticipant
-            class=&quot;com.example.ExamplePageParticipant&quot;
-            id=&quot;com.example.ExamplePageParticipant&quot;&gt;
-         &lt;enablement&gt;
-            &lt;instanceof value=&quot;com.example.ExampleConsole&quot;/&gt;
-         &lt;/enablement&gt;
-      &lt;/consolePageParticipant&gt;
-   &lt;/extension&gt; 
-&lt;/pre&gt;
-In the above example, the contributed console page participant will be used for all consoles of type &quot;com.example.ExampleConsole.&quot;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.ui.console.IConsolePageParticipant&lt;/b&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies this distribution, and is available at 
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd b/org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd
deleted file mode 100644
index 5cb81e0..0000000
--- a/org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.ui.console">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.ui.console" id="consolePatternMatchListeners" name="Console Pattern Match Listeners"/>

-      </appInfo>

-      <documentation>

-         Provides regular expression matching for text consoles. Pattern match listeners can be contributed to specific consoles by using an enablement expression. Listeners are notified as matches are found.

-      </documentation>

-   </annotation>

-

-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="consolePatternMatchListener" minOccurs="0" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  a fully qualified identifier of the target extension point

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  an optional identifier of the extension instance

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  an optional name of the extension instance

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="consolePatternMatchListener">

-      <complexType>

-         <sequence>

-            <element ref="enablement"/>

-         </sequence>

-         <attribute name="id" type="string" use="required">

-            <annotation>

-               <documentation>

-                  specifies a unique identifier for this console pattern match listener

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  specifies a fully qualified name of a Java class that implements &lt;code&gt;IPatternMatchListenerDelegate&lt;/code&gt;

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.console.IPatternMatchListenerDelegate"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-         <attribute name="regex" type="string" use="required">

-            <annotation>

-               <documentation>

-                  specifies the regular expression to be matched. Since 3.2, this attribute supports string variable substitution.

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="flags" type="string">

-            <annotation>

-               <documentation>

-                  specifies flags to be used when matching the pattern. Acceptable flags are defined in &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; and should be specified as Strings (eg &quot;Pattern.MULTILINE&quot; or &quot;MULTILINE&quot;)

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="qualifier" type="string">

-            <annotation>

-               <documentation>

-                  a simple regular expression used to identify a line that may contain this pattern match listener&apos;s complete regular expression &lt;code&gt;regex&lt;/code&gt;. When a line is found containing this expression, a search is performed from the beginning of the line for this pattern matcher&apos;s complete &lt;code&gt;regex&lt;/code&gt;. Use of this attribute is optional but can greatly improve performance as lines not containing this expression are disqualified from the search. Since 3.2, this attribute supports string variable substitution.

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="since"/>

-      </appInfo>

-      <documentation>

-         3.1

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is an example of a console pattern match listener extension point: 

-&lt;pre&gt;

-   &lt;extension

-         point=&quot;org.eclipse.ui.console.consolePatternMatchListener&quot;&gt;

-      &lt;consolePatternMatchListener

-            class=&quot;com.example.ExampleConsolePatternMatcher&quot;

-            id=&quot;com.example.ExampleConsolePatternMatcher&quot;

-            regex=&quot;.*foo.*&quot;&gt;

-         &lt;enablement&gt;

-            &lt;test property=&quot;org.eclipse.ui.console.consoleTypeTest&quot; value=&quot;exampleConsole&quot;/&gt;

-         &lt;/enablement&gt;

-      &lt;/consolePatternMatchListener&gt;

-   &lt;/extension&gt;

-&lt;/pre&gt;

-In the above example, the contributed console pattern matcher will be used for consoles with a type of &quot;exampleConsole.&quot;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.ui.console.IPatternMatchListenerDelegate&lt;/b&gt;.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         The console plug-in provides a console type property tester for enablement expressions that tests the value of &lt;code&gt;IConsole.getType()&lt;/code&gt;. The property tester&apos;s identifier is &lt;code&gt;org.eclipse.ui.console.consoleTypeTest&lt;/code&gt;.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;

-All rights reserved. This program and the accompanying materials are made 

-available under the terms of the Eclipse Public License v1.0 which 

-accompanies this distribution, and is available at 

-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/org.eclipse.ui.console/scripts/exportplugin.xml b/org.eclipse.ui.console/scripts/exportplugin.xml
deleted file mode 100644
index af246f1..0000000
--- a/org.eclipse.ui.console/scripts/exportplugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- Export a jar of .class files for the org.eclipse.ui.console Eclipse plugin
-     along with other important plugin files to the "plugin-export" subdirectory
-     of the target Eclipse installation -->
-<project name="Export ui.console" 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.ui.console_3.0.0" />
-	</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}/console.jar"
-			basedir="bin"
-		/>
-		<!-- Create the source zip -->
-		<zip zipfile="${dest}/consolesrc.zip">
-			<fileset dir="src"/>
-		</zip>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<copy file=".classpath" todir="${dest}"/>
-		<copy file=".options" todir="${dest}"/>
-		<copy todir="${dest}/icons">
-			<fileset dir="icons" />
-		</copy>
-	</target>
-	
-</project>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java
deleted file mode 100644
index 99fb784..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-
-/**
- * Common function for consoles.
- * <p>
- * Clients implementing consoles should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractConsole implements IConsole {
-	
-	// property listeners
-	private ListenerList fListeners;
-	
-	/**
-	 * Console name
-	 */
-	private String fName = null;
-	
-	/**
-	 * Console image descriptor
-	 */
-	private ImageDescriptor fImageDescriptor = null;
-	
-	/**
-	 * Console type identifier
-	 */
-	private String fType = null;
-	
-	/**
-	 * Used to notify this console of lifecycle methods <code>init()</code>
-	 * and <code>dispose()</code>.
-	 */
-	class Lifecycle implements IConsoleListener {
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.ui.console.IConsoleListener#consolesAdded(org.eclipse.ui.console.IConsole[])
-		 */
-		public void consolesAdded(IConsole[] consoles) {
-			for (int i = 0; i < consoles.length; i++) {
-				IConsole console = consoles[i];
-				if (console == AbstractConsole.this) {
-					initialize();
-				}
-			}
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.ui.console.IConsoleListener#consolesRemoved(org.eclipse.ui.console.IConsole[])
-		 */
-		public void consolesRemoved(IConsole[] consoles) {
-			for (int i = 0; i < consoles.length; i++) {
-				IConsole console = consoles[i];
-				if (console == AbstractConsole.this) {
-					ConsolePlugin.getDefault().getConsoleManager().removeConsoleListener(this);
-					destroy();
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Notifies listeners of property changes, handling any exceptions
-	 */
-	class PropertyNotifier implements ISafeRunnable {
-		
-		private IPropertyChangeListener fListener;
-		private PropertyChangeEvent fEvent;
-		
-		/**
-		 * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
-		 */
-		public void handleException(Throwable exception) {
-			IStatus status = new Status(IStatus.ERROR, ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, ConsoleMessages.AbstractConsole_0, exception); 
-			ConsolePlugin.log(status);
-		}
-
-		/**
-		 * @see org.eclipse.core.runtime.ISafeRunnable#run()
-		 */
-		public void run() throws Exception {
-			fListener.propertyChange(fEvent);
-		}
-
-		/**
-		 * Notifies listeners of the property change
-		 * 
-		 * @param event the event that describes the property that has changed
-		 */
-		public void notify(PropertyChangeEvent event) {
-			if (fListeners == null) {
-				return;
-			}
-			fEvent = event;
-			Object[] copiedListeners= fListeners.getListeners();
-			for (int i= 0; i < copiedListeners.length; i++) {
-				fListener = (IPropertyChangeListener)copiedListeners[i];
-                SafeRunner.run(this);
-			}	
-			fListener = null;			
-		}
-	}	
-	
-	/**
-	 * Constructs a new console with the given name and image.
-	 * 
-	 * @param name console name, cannot be <code>null</code>
-	 * @param imageDescriptor image descriptor, or <code>null</code> if none
-	 * @param autoLifecycle whether this console's lifecycle methods should be called
-	 *  automatically when it is added (<code>initialize()</code>) and removed
-	 *  (<code>destroy()</code>) from the console manager. When <code>false</code>,
-	 *  clients are responsible for calling the lifecycle methods.
-	 * @since 3.1
-	 */
-	public AbstractConsole(String name, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
-	    this(name, null, imageDescriptor, autoLifecycle);
-	}
-	
-	/**
-	 * Constructs a new console with the given name, type, image and lifecycle.
-	 * 
-	 * @param name console name, cannot be <code>null</code>
-	 * @param type console type identifier or <code>null</code>
-	 * @param imageDescriptor image descriptor, or <code>null</code> if none
-	 * @param autoLifecycle whether this console's lifecycle methods should be called
-	 *  automatically when it is added (<code>initialize()</code>) and removed
-	 *  (<code>destroy()</code>) from the console manager. When <code>false</code>,
-	 *  clients are responsible for calling the lifecycle methods.
-	 * @since 3.1
-	 */
-	public AbstractConsole(String name, String type, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
-		setName(name);
-		setType(type);
-		setImageDescriptor(imageDescriptor);
-		if (autoLifecycle) {
-		    ConsolePlugin.getDefault().getConsoleManager().addConsoleListener(new Lifecycle());
-		}
-	}	
-	
-	/**
-	 * Constructs a new console with the given name and image. The console's lifecycle
-	 * methods <code>init()</code> and <code>dispose()</code> will be called when the
-	 * console is added and removed from the console manager.
-	 * 
-	 * @param name console name, cannot be <code>null</code>
-	 * @param imageDescriptor image descriptor, or <code>null</code> if none
-	 */
-	public AbstractConsole(String name, ImageDescriptor imageDescriptor) {
-		this(name, imageDescriptor, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsole#getName()
-	 */
-	public String getName() {
-		return fName;
-	}
-
-	/**
-	 * Sets the name of this console to the specified value and notifies
-	 * property listeners of the change.
-	 * 
-	 * @param name the new name
-	 */
-	protected void setName(String name) {
-        if (!name.equals(fName)) {
-            String old = fName;
-            fName = name;
-            firePropertyChange(this, IBasicPropertyConstants.P_TEXT, old, name);
-        }
-    }
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsole#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return fImageDescriptor;
-	}
-	
-	/**
-	 * Sets the image descriptor for this console to the specified value and notifies
-	 * property listeners of the change.
-	 * 
-	 * @param imageDescriptor the new image descriptor
-	 */
-	protected void setImageDescriptor(ImageDescriptor imageDescriptor) {
-		ImageDescriptor old = fImageDescriptor;
-		fImageDescriptor =imageDescriptor;
-		firePropertyChange(this, IBasicPropertyConstants.P_IMAGE, old, imageDescriptor);
-	}	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsole#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		if (fListeners == null) {
-			fListeners = new ListenerList();
-		}
-		fListeners.add(listener);		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsole#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		if (fListeners != null) {
-			fListeners.remove(listener);
-		}
-	}
-
-	/**
-	 * Notify all listeners that the given property has changed.
-	 * 
-	 * @param source the object on which a property has changed 
-	 * @param property identifier of the property that has changed
-	 * @param oldValue the old value of the property, or <code>null</code>
-	 * @param newValue the new value of the property, or <code>null</code>
-	 */
-	public void firePropertyChange(Object source, String property, Object oldValue, Object newValue) {
-		if (fListeners == null) {
-			return;
-		}
-		PropertyNotifier notifier = new PropertyNotifier();
-		notifier.notify(new PropertyChangeEvent(source, property, oldValue, newValue));
-	}
-	
-	/**
-	 * Initializes this console. This method should only be called by clients managing a
-	 * console's lifecycle, otherwise this method will be called automatically when this console
-	 * is added to the console manager. The method is called once to initialize this console,
-	 * marking the beginning of its lifecycle.
-	 * 
-	 * @since 3.1
-	 */
-	public final void initialize() {
-	    init();
-	}
-	
-	/**
-	 * Called when this console is added to the console manager. Default
-	 * implementation does nothing. Subclasses may override.
-	 * <p>
-	 * Since 3.1, this method is only called automatically if this console was
-	 * created with an automatic lifecycle.
-	 * </p>
-	 */
-	protected void init() {
-	}
-	
-	/**
-	 * Disposes this console. This method should only be called by clients managing a
-	 * console's lifecycle, otherwise this method will be called automatically when this
-	 * console is removed from the console manager. The method is called once to dispose
-	 * this console, after which this console will no longer be used. 
-	 * 
-	 * @since 3.1
-	 */
-	public final void destroy() {
-	    dispose();
-	}
-	
-	/**
-	 * Called when this console is removed from the console manager. Default
-	 * implementation does nothing. Subclasses may override.
-	 * <p>
-	 * Since 3.1, this methods is only called automatically if this console was
-	 * created with an automatic lifecycle.
-	 * </p>
-	 */
-	protected void dispose() {
-	}
-	
-	/**
-	 * Shows this console in all console views. This console will be become visible
-	 * if another console is currently pinned. 
-	 * 
-	 * @since 3.1
-	 */
-    public void activate() {
-        ConsolePlugin.getDefault().getConsoleManager().showConsoleView(this);
-    }
-    
-    /**
-     * Sets this console's type identifier.
-     * 
-     * @param typeIdentifier the type identifier for this console 
-     * @since 3.1
-     */
-    protected void setType(String typeIdentifier) {
-        fType = typeIdentifier;
-    }
-    
-    /**
-     * @see org.eclipse.ui.console.IConsole#getType()
-     * @since 3.1
-     */
-    public String getType() {
-        return fType;
-    }
-    
-    /**
-     * Returns the help context identifier for this console, or <code>null</code>
-     * if none. When a non-<code>null</code> value is returned the associated help
-     * will be installed for this console.
-     * 
-     * @return help context id or <code>null</code>
-     * @since 3.2
-     */
-    public String getHelpContextId() {
-    	return null;
-    }
-    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java
deleted file mode 100644
index 924ee1b..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.console.ConsoleManager;
-import org.eclipse.ui.internal.console.ConsolePluginImages;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The console plug-in class.
- * 
- * @since 3.0
- */
-
-public class ConsolePlugin extends AbstractUIPlugin {
-	
-	/**
-	 * Singleton console manager
-	 */
-	private IConsoleManager fConsoleManager = null;
-
-	/**
-	 * The singleton console plug-in instance
-	 */
-	private static ConsolePlugin fgPlugin= null;
-	
-	/**
-	 * Unique identifier constant (value <code>"org.eclipse.ui.console"</code>)
-	 * for the UI Console plug-in.
-	 */
-	private static final String PI_UI_CONSOLE = "org.eclipse.ui.console"; //$NON-NLS-1$
-		
-	/**
-	 * Returns the singleton instance of the console plug-in.
-	 */
-	public static ConsolePlugin getDefault() {
-		return fgPlugin;
-	}
-
-	public ConsolePlugin() {
-		super();
-		fgPlugin = this;
-	}
-	
-	/**
-	 * Convenience method which returns the unique identifier of this plug-in.
-	 */
-	public static String getUniqueIdentifier() {
-		return PI_UI_CONSOLE;
-	}
-
-	/**
-	 * Logs the specified status with this plug-in's log.
-	 * 
-	 * @param status status to log
-	 */
-	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 
-	 */
-	public static void log(Throwable t) {
-		if (t instanceof CoreException) {
-			log(((CoreException)t).getStatus());
-		} else {
-			log(newErrorStatus("Error logged from Console plug-in: ", t)); //$NON-NLS-1$
-		}
-	}
-	
-	/**
-	 * Returns a new error status for this plug-in with the given message
-	 * @param message the message to be included in the status
-	 * @param exception the exception to be included in the status or <code>null</code> if none
-	 * @return a new error status
-	 */
-	public static IStatus newErrorStatus(String message, Throwable exception) {
-		return new Status(IStatus.ERROR, getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, message, exception);
-	}
-	
-	/**
-	 * Returns the console manager. The manager will be created lazily on 
-	 * the first access.
-	 * 
-	 * @return IConsoleManager
-	 */
-	public IConsoleManager getConsoleManager() {
-		if (fConsoleManager == null) {
-			fConsoleManager = new ConsoleManager();
-		}
-		return fConsoleManager;
-	}
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated display. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display= Display.getCurrent();
-		if (display == null) {
-			display= Display.getDefault();
-		}
-		return display;		
-	}
-	
-	/**
-	 * Utility method with conventions
-	 */
-	public static void errorDialog(Shell shell, String title, String message, Throwable t) {
-		IStatus status;
-		if (t instanceof CoreException) {
-			status= ((CoreException)t).getStatus();
-			// if the 'message' resource string and the IStatus' message are the same,
-			// don't show both in the dialog
-			if (status != null && message.equals(status.getMessage())) {
-				message= null;
-			}
-		} else {
-			status= new Status(IStatus.ERROR, getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, "Error within Debug UI: ", t); //$NON-NLS-1$
-			log(status);	
-		}
-		ErrorDialog.openError(shell, title, message, status);
-	}
-    
-    /**
-     * Returns the <code>Image</code> identified by the given key,
-     * or <code>null</code> if it does not exist.
-     * 
-     * @return the <code>Image</code> identified by the given key,
-     * or <code>null</code> if it does not exist
-     * @since 3.1
-     */
-    public static Image getImage(String key) {
-        return ConsolePluginImages.getImage(key);
-    }
-    
-    /**
-     * Returns the <code>ImageDescriptor</code> identified by the given key,
-     * or <code>null</code> if it does not exist.
-     * 
-     * @return the <code>ImageDescriptor</code> identified by the given key,
-     * or <code>null</code> if it does not exist
-     * @since 3.1
-     */
-    public static ImageDescriptor getImageDescriptor(String key) {
-        return ConsolePluginImages.getImageDescriptor(key);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-    	if (fConsoleManager != null) {
-	        IConsole[] consoles = fConsoleManager.getConsoles();
-	        if (consoles != null) {
-	            fConsoleManager.removeConsoles(consoles);
-	        }
-    	}
-        super.stop(context);
-    }    
-    
-    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java
deleted file mode 100644
index af1b4ce..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console. A console is commonly used to display messages such as the output
- * streams of a system process. A console can be displayed in one or more console
- * views.
- * <p>
- * The console implementations provided by this plug-in are textual
- * (<code>TextConsole</code>, <code>MessageConsole</code> and <code>IOConsole</code>).
- * However a client can provide alternate presentations since a console implementation
- * is responsible for providing is page for the page book views in which consoles are
- * displayed.
- * </p>
- * <p>
- * This interface is not intended to be implemented directly by clients. 
- * Subclass <code>AbstractConsole</code> instead.
- * </p>
- * @since 3.0
- */
-public interface IConsole {
-		
-	/**
-	 * Returns the name of this console.
-	 * 
-	 * @return the name of this console
-	 */
-	public String getName();
-	
-	/**
-	 * Returns an image descriptor for this console, or <code>null</code>
-	 * if none.
-	 * 
-	 * @return an image descriptor for this console, or <code>null</code>
-	 *  if none
-	 */
-	public ImageDescriptor getImageDescriptor();
-		
-	/**
-	 * Creates and returns a new page for this console. The page is displayed
-	 * for this console in the console given view.
-	 * 
-	 * @param view the view in which the page is to be created
-	 * @return a page book view page representation of this console
-	 */
-	public IPageBookViewPage createPage(IConsoleView view);
-	
-	/**
-	 * Adds a listener for changes to properties of this console.
-	 * Has no effect if an identical listener is already registered.
-	 * <p>
-	 * The changes supported by the console view are as follows:
-	 * <ul>
-	 *   <li><code>IBasicPropertyConstants.P_TEXT</code> - indicates the name
-	 *      of a console has changed</li>
-	 * 	 <li><code>IBasicPropertyConstants.P_IMAGE</code> - indicates the image
-	 *      of a console has changed</li>
-	 * </ul>
-	 * </p>
-	 * <p>
-	 * Consoles may define additional properties as required.
-	 * </p>
-	 *
-	 * @param listener a property change listener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener);
-	
-	/**
-	 * Removes the given property listener from this console page.
-	 * Has no effect if an identical listener is not already registered.
-	 * 
-	 * @param listener a property listener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener);	
-	
-	/**
-	 * Returns a unique identifier for this console's type, or <code>null</code>
-	 * if unspecified.
-	 * 
-	 * @return a unique identifier for this console's type, or <code>null</code>
-	 * @since 3.1
-	 */
-	public String getType();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java
deleted file mode 100644
index 4321582..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-/**
- * Constants relating to the console plug-in.
- * 
- * @since 3.0
- */
-public interface IConsoleConstants {
-	
-	/**
-	 * Console plug-in identifier (value <code>"org.eclipse.ui.console"</code>).
-	 */
-	public static final String PLUGIN_ID = ConsolePlugin.getUniqueIdentifier();
-	
-	/**
-	 * Console view identifier (value <code>"org.eclipse.ui.console.ConsoleView"</code>).
-	 */
-	public static final String ID_CONSOLE_VIEW= "org.eclipse.ui.console.ConsoleView"; //$NON-NLS-1$
-
-	/**
-	 * Type identifier for MessageConsole
-	 * @since 3.1
-	 */
-    public static final String MESSAGE_CONSOLE_TYPE = "org.eclipse.ui.MessageConsole"; //$NON-NLS-1$
-	
-	/**
-	 * The name of the font to use for the Console (value <code>"org.eclipse.ui.console.ConsoleFont"</code>).
-	 * 
-	 * @deprecated When a console is created, its font is set to the default text font as specified
-	 * by <code>JFaceResources.TEXT_FONT</code>. Clients must provide their own infrastructure to
-	 * manage console specific fonts. 
-	 */ 
-	public static final String CONSOLE_FONT= "org.eclipse.ui.console.ConsoleFont"; //$NON-NLS-1$
-	
-	/**
-	 * Menu group identifier for the console view context menu and toolbar, for actions pertaining to
-	 * launching (value <code>"launchGroup"</code>).
-	 */
-	public static final String LAUNCH_GROUP = "launchGroup"; //$NON-NLS-1$
-
-	/**
-	 * Menu group identifier for the console view context menu and toolbar, for actions pertaining to
-	 * console output. (value<code>"outputGroup"</code>).
-	 */
-	public static final String OUTPUT_GROUP = "outputGroup"; //$NON-NLS-1$	
-		
-	/** 
-	 * Console view image identifier.
-	 */
-	public static final String IMG_VIEW_CONSOLE= "IMG_VIEW_CONSOLE"; //$NON-NLS-1$
-	
-	/** 
-	 * Clear action image identifier. 
-	 */
-	public static final String IMG_LCL_CLEAR= "IMG_LCL_CLEAR"; //$NON-NLS-1$
-		
-	/**
-	 * Status code indicating an unexpected internal error.
-	 */
-	public static final int INTERNAL_ERROR = 120;
-
-	/**
-	 * Console pattern match listeners extension point identifier
-	 * (value <code>"consolePatternMatchListeners"</code>).
-	 * 
-	 * @since 3.1 
-	 */
-    public static final String EXTENSION_POINT_CONSOLE_PATTERN_MATCH_LISTENERS = "consolePatternMatchListeners"; //$NON-NLS-1$
-
-    /**
-     * Console page participants extension point identifier
-     * (value <code>"consolePageParticipants"</code>).
-     * 
-     * @since 3.1
-     */
-    public static final String EXTENSION_POINT_CONSOLE_PAGE_PARTICIPANTS = "consolePageParticipants"; //$NON-NLS-1$
-
-    /**
-     * Console factories extension point identifier
-     * (value <code>"consoleFactories"</code>).
-     * 
-     * @since 3.1
-     */
-    public static final String EXTENSION_POINT_CONSOLE_FACTORIES = "consoleFactories"; //$NON-NLS-1$
-    
-	/**
-	 * Property constant indicating a console's font has changed.
-	 *  
-	 * @since 3.1
-	 */
-	public static final String P_FONT = ConsolePlugin.getUniqueIdentifier() + ".P_FONT"; //$NON-NLS-1$
-	
-	/**
-	 * Property constant indicating that a font style has changed
-	 * 
-	 * @since 3.1
-	 */
-	public static final String P_FONT_STYLE = ConsolePlugin.getUniqueIdentifier() + ".P_FONT_STYLE"; //$NON-NLS-1$
-	
-	/**
-	 * Property constant indicating the color of a stream has changed.
-	 * 
-	 *  @since 3.1
-	 */
-	public static final String P_STREAM_COLOR = ConsolePlugin.getUniqueIdentifier()  + ".P_STREAM_COLOR";	 //$NON-NLS-1$
-		
-	/**
-	 * Property constant indicating tab size has changed
-	 * 
-	 *  @since 3.1
-	 */
-	public static final String P_TAB_SIZE = ConsolePlugin.getUniqueIdentifier()  + ".P_TAB_SIZE";	 //$NON-NLS-1$
-	
-	/**
-	 * Property constant indicating the width of a fixed width console has changed.
-	 * 
-	 * @since 3.1
-	 */
-	public static final String P_CONSOLE_WIDTH = ConsolePlugin.getUniqueIdentifier() + ".P_CONSOLE_WIDTH"; //$NON-NLS-1$
-	
-	/**
-	 * Property constant indicating that all streams connected to this console have been closed
-	 * and that all queued output has been processed.
-	 * 
-	 * @since 3.1
-	 */
-	public static final String P_CONSOLE_OUTPUT_COMPLETE = ConsolePlugin.getUniqueIdentifier() + ".P_CONSOLE_STREAMS_CLOSED"; //$NON-NLS-1$
-	
-	/**
-	 * Property constant indicating the background color of a console has changed.
-	 * 
-	 *  @since 3.3
-	 */
-	public static final String P_BACKGROUND_COLOR = ConsolePlugin.getUniqueIdentifier()  + ".P_BACKGROUND_COLOR";	 //$NON-NLS-1$	
-
-    /**
-     * The default tab size for text consoles.
-     * 
-     * @since 3.1
-     */
-    public static final int DEFAULT_TAB_SIZE = 8;
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java
deleted file mode 100644
index 0da81fe..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.swt.custom.StyleRange;
-
-/**
- * A document partitioner for a text console.
- * <p>
- * In addition to regular partitioner duties, a console document partitioner
- * dictates which regions in its document are read-only and provides style ranges.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public interface IConsoleDocumentPartitioner extends IDocumentPartitioner {
-       
-    /**
-     * Returns whether this partitioner's document is read-only at the specified
-     * offset. The user is not allowed to type in read-only locations. 
-     * 
-     * @param offset document offset
-     * @return whether this partitioner's document is read-only at the specified
-     * offset
-     */
-    public boolean isReadOnly(int offset);
-    
-    /**
-     * Returns style ranges for the specified region of this partitioner's document
-     * to use when rendering, or <code>null</code> if none. 
-     * 
-     * @param offset beginning offset for which style ranges are requested
-     * @param length the length of text for which style ranges are requested
-     * @return style ranges for the specified region of this partitioner's document
-     * to use when rendering, or <code>null</code> if none
-     */
-    public StyleRange[] getStyleRanges(int offset, int length);
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java
deleted file mode 100644
index 4e27fed..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A console factory extension is responsible for opening a console in the console view.
- * Extensions appear on a menu in the console view, and their <code>openConsole</code>
- * method is called when the action is invoked. Implementations may choose to open a new
- * console or activate an existing console. The extension point used to contribute a
- * console factory is <code>org.eclipse.ui.console.consoleFactories</code>.
- * <p>
- * Following is an example console factory extension.
- * <pre>
- * &lt;extension point="org.eclipse.ui.console.consoleFactories"&gt;
- *   &lt;consoleFactory
- *      label="Command Console"
- *      icon="icons\cmd_console.gif"
- *      class="com.example.CommandConsoleFactory"&gt;
- *   &lt;/consoleFactory&gt;
- * &lt;/extension&gt;
- * </pre>
- * An action appears in the console view's 'Open Console' drop-down menu with the
- * corresponding <code>label</code> and optional <code>icon</code>. When the action
- * is invoked, the specified <code>class</code> is instantiated and called to
- * open a console, via the method <code>openConsole()</code>. 
- * </p>
- * <p>
- * Clients providing console factory extensions are intended to implement
- * this interface.
- * </p>
- * @since 3.1
- */
-public interface IConsoleFactory {
-    /**
-     * Opens a console in the console view. Implementations may create a new
-     * console or activate an existing console.
-     */
-    public void openConsole();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java
deleted file mode 100644
index 41aedb2..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A console listener is notified when consoles are added or removed from
- * the console manager.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IConsoleListener {
-	
-	/**
-	 * Notification the given consoles have been added to the console
-	 * manager.
-	 * 
-	 * @param consoles added consoles
-	 */
-	public void consolesAdded(IConsole[] consoles);
-	
-	/**
-	 * Notification the given consoles have been removed from the
-	 * console manager.
-	 * 
-	 * @param consoles removed consoles
-	 */
-	public void consolesRemoved(IConsole[] consoles);
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java
deleted file mode 100644
index e5f16fd..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * The console manager manages registered consoles.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0 
- */
-public interface IConsoleManager {
-	
-	/**
-	 * Registers the given listener for console notifications. Has
-	 * no effect if an identical listener is already registered.
-	 * 
-	 * @param listener listener to register
-	 */
-	public void addConsoleListener(IConsoleListener listener);
-	
-	/**
-	 * Unregisters the given listener for console notifications. Has
-	 * no effect if an identical listener is not already registered.
-	 * 
-	 * @param listener listener to unregister
-	 */
-	public void removeConsoleListener(IConsoleListener listener);
-
-	/**
-	 * Adds the given consoles to the console manager. Has no effect for
-	 * equivalent consoles already registered. The consoles will be added
-	 * to any existing console views.
-	 * 
-	 * @param consoles consoles to add
-	 */
-	public void addConsoles(IConsole[] consoles);
-	
-	/**
-	 * Removes the given consoles from the console manager. If the consoles are
-	 * being displayed in any console views, the associated pages will be removed
-	 * and disposed.
-	 * 
-	 * @param consoles consoles to remove
-	 */
-	public void removeConsoles(IConsole[] consoles);
-	
-	/**
-	 * Returns a collection of consoles registered with the console manager.
-	 * 
-	 * @return a collection of consoles registered with the console manager
-	 */
-	public IConsole[] getConsoles();
-	
-	/**
-	 * Opens the console view and displays given the console.
-	 * If the view is already open, it is brought to the front unless
-	 * the view is pinned on a console other than the given console.
-	 * Has no effect if the given console is not currently registered.
-	 * 
-	 * @param console console to display
-	 */
-	public void showConsoleView(IConsole console);
-	
-	/**
-	 * Warns that the content of the given console has changed in
-	 * all console views. Has no effect if the given console is not
-	 * currently registered.
-	 * 
-	 * @param console the console that has changed
-	 */
-	public void warnOfContentChange(IConsole console);
-	
-	/**
-	 * Creates and returns a collection of new pattern match listeners enabled for
-	 * the given console. The pattern match listeners are new instances, intended
-	 * to be used in a new console. No methods on the participants have been
-	 * called. Clients are responsible for connecting to and disconnecting from
-	 * the pattern match listeners.
-     * <p>
-     * Console pattern match listeners are contributed via the
-     * <code>org.eclipse.ui.console.consolePatternMatchListeners</code> extension point.
-     * </p>
-	 * 
-	 * @param console the console for which pattern match listeners are requested
-	 * @return a collection of new pattern match listeners
-     * @see IPatternMatchListener
-	 * @since 3.1
-	 */
-	public IPatternMatchListener[] createPatternMatchListeners(IConsole console);
-    
-    /**
-     * Requests a redraw of any visible console page containing the specified console.
-     * 
-     * @param console the console to be refreshed
-     * @since 3.1
-     */
-    public void refresh(IConsole console);
-	
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java
deleted file mode 100644
index a2e7514..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console page participant is notified of page lifecycle events such as
- * creation, activation, deactivation and disposal. A page participant can
- * also provide adapters for a page. Participants are contributed via the
- * <code>org.eclispe.ui.console.consolePageParticipants</code> extension point.
- * <p>
- * Participant behavior is implementation dependent. For example, a page participant
- * could add actions to a console's toolbar by accessing a its page's action bars.  
- * </p>
- * <p>
- * Following is an example extension definition.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.ui.console.consolePageParticipants&quot;&gt;
- *   &lt;consolePageParticipant
- *      id=&quot;com.example.ExamplePageParticipant&quot;
- *      class=&quot;com.example.ExamplePageParticipant&quot;&gt;
- *   &lt;/consolePageParticipant&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * The example page participant is contributed to all console pages. An optional
- * <code>enablement</code> attribute may be specified to control which consoles
- * a page participant is applicable to.
- * <p>
- * Clients contributing console page participant extensions are intended to 
- * implement this interface.
- * </p>
- * @since 3.1
- */
-public interface IConsolePageParticipant extends IAdaptable {
-    /**
-     * Called during page initialization. Marks the start of this 
-     * page participant's lifecycle.
-     * 
-     * @param page the page corresponding to the given console
-     * @param console the console for which a page has been created
-     */
-    public void init(IPageBookViewPage page, IConsole console);
-    
-    /**
-     * Disposes this page participant. Marks the end of this
-     * page participant's lifecycle.
-     */
-    public void dispose();
-    
-    /**
-     * Notification this participant's page has been activated.
-     */
-    public void activated();
-    
-    /**
-     * Notification this participant's page has been deactivated.
-     */
-    public void deactivated();
-    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java
deleted file mode 100644
index b76b3c3..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.ui.IViewPart;
-
-/**
- * A view that displays consoles registered with the console manager.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IConsoleView extends IViewPart {
-	
-	/**
-	 * Displays the page for the given console in this console view.
-	 * Has no effect if this console view has a pinned console. 
-	 *  
-	 * @param console console to display, cannot be <code>null</code>
-	 */
-	public void display(IConsole console);
-	
-	/**
-	 * Pins this console view. No other console page will be displayed until
-     * this console view is un-pinned.
-	 *  
-	 * @param pin <code>true</code> to pin the current console to the 
-     * top of the stack, <code>false</code> otherwise
-     * @since 3.1
-	 */
-	public void setPinned(boolean pin);
-	
-    /**
-     * Displays and pins the given console in this console view. No
-     * other console can be displayed until this console view is
-     * un-pinned. Specifying <code>null</code> un-pins this console
-     *  
-     * @param console console to pin, or <code>null</code> to un-pin
-     * @deprecated rather than pinning a specific console, a console view is
-     *  pinned - use <code>setPinned(boolean)</code>
-     */
-    public void pin(IConsole console);
-    
-	/**
-	 * Returns whether this console view is currently pinned to a
-	 * specific console.
-	 * 
-	 * @return whether this console view is currently pinned to a
-	 *  specific console
-	 */
-	public boolean isPinned();
-	
-	/**
-	 * Returns the console currently being displayed, or <code>null</code>
-	 * if none
-	 * 
-	 * @return the console currently being displayed, or <code>null</code>
-	 *  if none
-	 */
-	public IConsole getConsole();
-	
-	/**
-	 * Warns that the content of the given console has changed.
-	 * 
-	 * @param console the console that has changed
-	 */
-	public void warnOfContentChange(IConsole console);	
-    
-    /**
-     * Sets the scroll lock state of the currently active console.
-     * 
-     * @param scrollLock <code>true</code> to turn scroll lock on, otherwise <code>false</code>
-     * @since 3.1
-     */
-    public void setScrollLock(boolean scrollLock);
-    
-    /**
-     * Returns the scroll lock state of the currently active console.
-     * 
-     * @return <code>true</code> if scroll lock is on, <code>false</code> otherwise
-     * @since 3.1
-     */
-    public boolean getScrollLock();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java
deleted file mode 100644
index 38aa499..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A hyperlink in a console. Link behavior is implementation dependent.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.1
- */
-public interface IHyperlink {
-	
-	/**
-	 * Notification that the mouse has entered this link's region.
-	 */
-	public void linkEntered();
-	
-	/**
-	 * Notification that the mouse has exited this link's region
-	 */
-	public void linkExited();
-	
-	/**
-	 * Notification that this link has been activated. Performs
-	 * context specific linking.
-	 */
-	public void linkActivated();
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink2.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink2.java
deleted file mode 100644
index 3895f15..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink2.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.swt.widgets.Event;
-
-/**
- * Optional extension to {@link IHyperlink}.
- * <p>
- * Clients implementing {@link IHyperlink} may also implement this interface.
- * When implemented, the method <code>linkActivated(Event)</code> is called instead of
- * <code>linkActivated()</code>.
- * </p>
- * @since 3.2
- */
-public interface IHyperlink2 extends IHyperlink {
-	
-	/**
-	 * Notification that this link has been activated. Performs
-	 * context specific linking.
-	 * 
-	 * @param event the SWT event which triggered this hyperlink
-	 */
-	public void linkActivated(Event event);
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
deleted file mode 100644
index d7d106e..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.internal.console.IOConsolePage;
-import org.eclipse.ui.internal.console.IOConsolePartitioner;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console that displays text from I/O streams. An I/O console can have multiple
- * output streams connected to it and provides one input stream connected to the
- * keyboard.
- * <p>
- * Clients may instantiate and subclass this class.
- * </p>
- * @since 3.1
- */
-public class IOConsole extends TextConsole {
-	/**
-	 * The document partitioner
-	 */
-    private IOConsolePartitioner partitioner;
-    
-    /**
-     * The stream from which user input may be read
-     */
-    private IOConsoleInputStream inputStream;
-        
-    /**
-     * A collection of open streams connected to this console.
-     */
-    private List openStreams;
-
-    /**
-     * The encoding used to for displaying console output.
-     */
-    private String fEncoding = WorkbenchEncoding.getWorkbenchDefaultEncoding();
-
-    
-    /**
-     * Constructs a console with the given name, type, image, and lifecycle, with the
-     * workbench's default encoding.
-     * 
-     * @param name name to display for this console
-     * @param consoleType console type identifier or <code>null</code>
-     * @param imageDescriptor image to display for this console or <code>null</code>
-     * @param autoLifecycle whether lifecycle methods should be called automatically
-     *  when this console is added/removed from the console manager
-     */
-    public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
-        this(name, consoleType, imageDescriptor, null, autoLifecycle);
-    }
-
-    /**
-     * Constructs a console with the given name, type, image, encoding and lifecycle.
-     * 
-     * @param name name to display for this console
-     * @param consoleType console type identifier or <code>null</code>
-     * @param imageDescriptor image to display for this console or <code>null</code>
-     * @param autoLifecycle whether lifecycle methods should be called automatically
-     *  when this console is added/removed from the console manager
-     */
-    public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, String encoding, boolean autoLifecycle) {
-        super(name, consoleType, imageDescriptor, autoLifecycle);
-        if (encoding != null) {
-            fEncoding = encoding;
-        }
-        openStreams = new ArrayList();
-        inputStream = new IOConsoleInputStream(this);
-        synchronized (openStreams) {
-        	openStreams.add(inputStream);	
-		}
-        
-        partitioner = new IOConsolePartitioner(inputStream, this);
-        partitioner.connect(getDocument());
-    }
-    
-    /**
-     * Constructs a console with the given name, type, and image with the workbench's
-     * default encoding. Lifecycle methods will be called when this console is
-     * added/removed from the console manager.
-     * 
-     * @param name name to display for this console
-     * @param consoleType console type identifier or <code>null</code>
-     * @param imageDescriptor image to display for this console or <code>null</code>
-     */
-    public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor) {
-        this(name, consoleType, imageDescriptor, true);
-    }    
-    
-    /**
-     * Constructs a console with the given name and image. Lifecycle methods
-     * will be called when this console is added/removed from the console manager.
-     * This console will have an unspecified (<code>null</code>) type.
-     * 
-     * @param name name to display for this console
-     * @param imageDescriptor image to display for this console or <code>null</code>
-     */
-    public IOConsole(String name, ImageDescriptor imageDescriptor) {
-        this(name, null, imageDescriptor);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsole#createPage(org.eclipse.ui.console.IConsoleView)
-     */
-    public IPageBookViewPage createPage(IConsoleView view) {
-        return new IOConsolePage(this, view);
-    }
-    
-    /**
-     * Creates and returns a new output stream which may be used to write to this console.
-     * A console may be connected to more than one output stream at once. Clients are
-     * responsible for closing any output streams created on this console.
-     * <p>
-     * Clients should avoid writing large amounts of output to this stream in the UI
-     * thread. The console needs to process the output in the UI thread and if the client
-     * hogs the UI thread writing output to the console, the console will not be able
-     * to process the output.
-     * </p>
-     * @return a new output stream connected to this console
-     */
-    public IOConsoleOutputStream newOutputStream() {
-        IOConsoleOutputStream outputStream = new IOConsoleOutputStream(this);
-        outputStream.setEncoding(fEncoding);
-        synchronized(openStreams) {
-            openStreams.add(outputStream);
-        }
-        return outputStream;
-    }
-    
-    /**
-     * Returns the input stream connected to the keyboard.
-     * 
-     * @return the input stream connected to the keyboard.
-     */
-    public IOConsoleInputStream getInputStream() {
-        return inputStream;
-    }
-
-    /**
-     * Returns this console's document partitioner.
-     * 
-     * @return this console's document partitioner
-     */
-    protected IConsoleDocumentPartitioner getPartitioner() {
-        return partitioner;
-    }
-
-	/**
-	 * Returns the maximum number of characters that the console will display at
-	 * once. This is analogous to the size of the text buffer this console
-	 * maintains.
-	 * 
-	 * @return the maximum number of characters that the console will display
-	 */
-	public int getHighWaterMark() {
-	    return partitioner.getHighWaterMark();
-	}
-	
-	/**
-	 * Returns the number of characters that will remain in this console
-	 * when its high water mark is exceeded.
-	 *  
-	 * @return the number of characters that will remain in this console
-	 *  when its high water mark is exceeded
-	 */
-	public int getLowWaterMark() {
-		return partitioner.getLowWaterMark();
-	}
-	
-	/**
-	 * Sets the text buffer size for this console. The high water mark indicates
-	 * the maximum number of characters stored in the buffer. The low water mark
-	 * indicates the number of characters remaining in the buffer when the high
-	 * water mark is exceeded.
-	 * 
-	 * @param low the number of characters remaining in the buffer when the high
-	 *  water mark is exceeded (if -1 the console does not limit output)
-	 * @param high the maximum number of characters this console will cache in
-	 *  its text buffer (if -1 the console does not limit output)
-	 * @exception IllegalArgumentException if low >= high & low != -1
-	 */
-	public void setWaterMarks(int low, int high) {
-        if (low >= 0) {
-    	    if (low >= high) {
-    	        throw new IllegalArgumentException("High water mark must be greater than low water mark"); //$NON-NLS-1$
-    	    }
-        }
-		partitioner.setWaterMarks(low, high);
-	}
-
-    /**
-     * Check if all streams connected to this console are closed. If so,
-     * notify the partitioner that this console is finished. 
-     */
-    private void checkFinished() {
-        if (openStreams.isEmpty()) {
-            partitioner.streamsClosed();
-        }
-    }
-    
-    /**
-     * Notification that an output stream connected to this console has been closed.
-     * 
-     * @param stream stream that closed
-     */
-    void streamClosed(IOConsoleOutputStream stream) {
-    	synchronized (openStreams) {
-            openStreams.remove(stream);
-            checkFinished();
-		}
-    }
-    
-    /**
-     * Notification that the input stream connected to this console has been closed.
-     * 
-     * @param stream stream that closed
-     */
-    void streamClosed(IOConsoleInputStream stream) {
-    	synchronized (openStreams) {
-            openStreams.remove(stream);
-            checkFinished();
-		}
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.TextConsole#clearConsole()
-     */
-    public void clearConsole() {
-        if (partitioner != null) {
-            partitioner.clearBuffer();
-        }
-    }
-    
-    /**
-     * Disposes this console.
-     */
-    protected void dispose() {
-        super.dispose();
-        partitioner.disconnect();
-        //make a copy of the open streams and close them all
-        //a copy is needed as close the streams results in a callback that 
-        //removes the streams from the openStreams collection (bug 152794)
-        Object[] allStreams= openStreams.toArray();
-        for (int i = 0; i < allStreams.length; i++) {
-        	Object stream = allStreams[i];
-        	if (stream instanceof IOConsoleInputStream) {
-        		IOConsoleInputStream is = (IOConsoleInputStream) stream;
-        		try {
-        			is.close();
-        		} catch (IOException e) {
-        		}
-        	} else if (stream instanceof IOConsoleOutputStream) {
-        		IOConsoleOutputStream os = (IOConsoleOutputStream) stream;
-        		try {
-        			os.close();
-        		} catch (IOException e) {
-        		}					
-        	}
-        }
-        inputStream = null;
-    }
-
-    /**
-     * Returns the encoding for this console, or <code>null</code> to indicate
-     * default encoding.
-     * 
-     * @return the encoding set for this console, or <code>null</code> to indicate
-     * 	default encoding
-     * @since 3.3
-     */
-	public String getEncoding() {
-		return fEncoding;
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java
deleted file mode 100644
index 66b0ffe..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * InputStream used to read input from an IOConsole. 
- * This stream will buffer input that it receives until it has been read.
- * <p>
- * Clients are not intended to instantiate this class directly, instead
- * use <code>IOConsole.getInputStream()</code>. Clients are not intended
- * to subclass this class.
- * </p>
- * @since 3.1
- *
- */
-public class IOConsoleInputStream extends InputStream {
-    /**
-     * Buffer to hold data from console until it is read.
-     */
-    private byte[] input = new byte[100];
-    
-    /**
-     * Location in the buffer that the next byte of data from the
-     * console should be stored.
-     */
-    private int inPointer = 0;
-    
-    /**
-     * Location in the buffer that the next byte of data read from
-     * this stream should come from.
-     */
-    private int outPointer = 0;
-    
-    /**
-     * The number of bytes of real data currently in the buffer. 
-     */
-    private int size = 0;
-    
-    /**
-     * Flag to indicate that EOF has been sent already.
-     */
-    private boolean eofSent = false;
-    
-    /**
-     * Flag to indicate that the stream has been closed.
-     */
-    private boolean closed = false;
-    
-    /**
-     * The console that this stream is connected to.
-     */
-    private IOConsole console;
-    
-    /**
-     * The color used to display input in the console.
-     */
-    private Color color;
-    
-    /**
-     * The font style used to decorate input in the console.
-     */
-    private int fontStyle = SWT.NORMAL;
-
-
-    /**
-     * Constructs a new input stream on the given console.
-     * 
-     * @param console I/O console
-     */
-    IOConsoleInputStream(IOConsole console) {
-        this.console = console;
-    }
-    
-    /*
-     *  (non-Javadoc)
-     * @see java.io.InputStream#read(byte[], int, int)
-     */
-    public synchronized int read(byte[] b, int off, int len) throws IOException {
-        waitForData();
-        if (available() == -1) {
-            return -1;
-        }
-    
-        int toCopy = Math.min(len, size);
-        if(input.length-outPointer > toCopy) {
-            System.arraycopy(input, outPointer, b, off, toCopy);
-            outPointer += toCopy;
-            size -= toCopy;
-        } else {
-            int bytesToEnd = input.length-outPointer;
-            System.arraycopy(input, outPointer, b, off, bytesToEnd);
-            System.arraycopy(input, 0, b, off+bytesToEnd, toCopy-bytesToEnd);
-            outPointer = toCopy-bytesToEnd;
-            size -=toCopy;
-        }
-        return toCopy;
-    }
-    
-    /*
-     *  (non-Javadoc)
-     * @see java.io.InputStream#read(byte[])
-     */
-    public int read(byte[] b) throws IOException {
-        return read(b, 0, b.length);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see java.io.InputStream#read()
-     */
-    public synchronized int read() throws IOException {
-        waitForData();
-        if (available() == -1) { 
-            return -1;
-        }
-        
-        byte b = input[outPointer];
-        outPointer++;
-        if (outPointer == input.length) {
-            outPointer = 0;
-        }
-        size -= 1;
-        return b;
-    }
-    
-    /**
-     * Blocks until data is available to be read.
-     * Ensure that the monitor for this object is obtained before
-     * calling this method.
-     */
-    private void waitForData() {
-        while (size == 0 && !closed) {
-            try {
-                wait();
-            } catch (InterruptedException e) {
-            }
-        }
-    }
-
-    /**
-     * Appends text to this input stream's buffer.
-     * 
-     * @param text the text to append to the buffer.
-     */
-    public synchronized void appendData(String text) {
-    	String encoding = console.getEncoding();
-        byte[] newData;
-        if (encoding!=null)
-			try {
-				newData = text.getBytes(encoding);
-			} catch (UnsupportedEncodingException e) {
-				newData = text.getBytes();	
-			}
-		else
-        	newData = text.getBytes();
-        
-        while(input.length-size < newData.length) {
-            growArray();
-        }
-        
-        if (size == 0) { //inPointer == outPointer
-            System.arraycopy(newData, 0, input, 0, newData.length);
-            inPointer = newData.length;
-            size = newData.length;
-            outPointer = 0;
-        } else if (inPointer < outPointer || input.length - inPointer > newData.length) {
-            System.arraycopy(newData, 0, input, inPointer, newData.length);
-            inPointer += newData.length;
-            size += newData.length;
-        } else {
-            System.arraycopy(newData, 0, input, inPointer, input.length-inPointer);
-            System.arraycopy(newData, input.length-inPointer, input, 0, newData.length-(input.length-inPointer));
-            inPointer = newData.length-(input.length-inPointer);
-            size += newData.length;
-        }
-        
-        if (inPointer == input.length) {
-            inPointer = 0;
-        }
-        notifyAll();
-    }
-    
-    /**
-     * Enlarges the buffer.
-     */
-    private void growArray() {
-        byte[] newInput = new byte[input.length+1024];
-        if (outPointer < inPointer) {
-            System.arraycopy(input, outPointer, newInput, 0, size);
-        } else {
-            System.arraycopy(input, outPointer, newInput, 0, input.length-outPointer);
-            System.arraycopy(input, 0, newInput, input.length-outPointer, inPointer);
-        }
-        outPointer = 0;
-        inPointer = size;
-        input = newInput;
-        newInput = null;
-    }
-
-    /**
-     * Returns this stream's font style.
-     * 
-     * @return the font style used to decorate input in the associated console
-     */
-    public int getFontStyle() {
-        return fontStyle;
-    }
-
-    /**
-     * Sets this stream's font style.
-     * 
-     * @param newFontStyle the font style to be used to decorate input in the associated console
-     */
-    public void setFontStyle(int newFontStyle) {
-        if (newFontStyle != fontStyle) {
-            int old = fontStyle;
-            fontStyle = newFontStyle;
-            console.firePropertyChange(this, IConsoleConstants.P_FONT_STYLE, new Integer(old), new Integer(fontStyle));
-        }
-    }
-    
-    /**
-     * Sets the color to used to decorate input in the associated console.
-     * 
-     * @param newColor the color to used to decorate input in the associated console.
-     */
-    public void setColor(Color newColor) {
-        Color old = color;
-        if (old == null || !old.equals(newColor)) {
-            color = newColor;
-            console.firePropertyChange(this, IConsoleConstants.P_STREAM_COLOR, old, newColor);
-        }
-    }
-    
-    /**
-     * Returns the color used to decorate input in the associated console
-     * 
-     * @return the color used to decorate input in the associated console
-     */
-    public Color getColor() {
-        return color;
-    }
-    
-    /* (non-Javadoc)
-     * @see java.io.InputStream#available()
-     */
-    public int available() throws IOException {
-        if (closed && eofSent) {
-            throw new IOException("Input Stream Closed"); //$NON-NLS-1$
-        } else if (size == 0) {
-            if (!eofSent) {
-                eofSent = true;
-                return -1;
-            } 
-            throw new IOException("Input Stream Closed"); //$NON-NLS-1$
-        }
-        
-        return size;
-    }
-    
-    /* (non-Javadoc)
-     * @see java.io.InputStream#close()
-     */
-    public synchronized void close() throws IOException {
-        if(closed) {
-            throw new IOException("Input Stream Closed"); //$NON-NLS-1$
-        }
-        closed = true;
-        notifyAll();
-        console.streamClosed(this);
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java
deleted file mode 100644
index f886fb9..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.internal.console.IOConsolePartitioner;
-
-/**
- * OutputStream used to write to an IOConsole.
- * <p>
- * Clients are not intended to instantiate this class directly, instead
- * use <code>IOConsole.newOutputStream()</code>. Clients are not intended
- * to subclass this class.
- * </p>
- * <p>
- * Clients should avoid writing large amounts of output to this stream in the UI
- * thread. The console needs to process the output in the UI thread and if the client
- * hogs the UI thread writing output to the console, the console will not be able
- * to process the output.
- * </p>
- * @since 3.1
- */
-public class IOConsoleOutputStream extends OutputStream {
-    /**
-     * Flag indicating whether this stream has been closed.
-     */
-    private boolean closed = false;
-
-    /**
-     * The console's document partitioner.
-     */
-    private IOConsolePartitioner partitioner;
-    
-    /**
-     * The console this stream is attached to.
-     */
-    private IOConsole console;
-    
-    /**
-     * Flag indicating that the console should be activated when data
-     * is written to this stream.
-     */
-    private boolean activateOnWrite = false;
-    
-    /**
-     * The color used to decorate data written to this stream.
-     */
-    private Color color;
-    
-    /**
-     * The font style used to decorate data written to this stream.
-     */
-    private int fontStyle;
-
-    private String fEncoding;
-    private String fDefaultEncoding = WorkbenchEncoding.getWorkbenchDefaultEncoding();
-
-    private boolean fNeedsEncoding = false;
-
-    private boolean prependCR;
-    
-    /**
-     * Constructs a new output stream on the given console.
-     * 
-     * @param console I/O console
-     */
-    IOConsoleOutputStream(IOConsole console) {
-        this.console = console;
-        this.partitioner = (IOConsolePartitioner) console.getPartitioner();
-    }
-
-    /**
-     * Returns the font style used to decorate data written to this stream.
-     * 
-     * @return the font style used to decorate data written to this stream
-     */
-    public int getFontStyle() {
-        return fontStyle;
-    }
-    
-    /**
-     * Sets the font style to be used to decorate data written to this stream.
-     * 
-     * @param newFontStyle the font style to be used to decorate data written to this stream
-     */
-    public void setFontStyle(int newFontStyle) {
-        if (newFontStyle != fontStyle) {
-            int old = fontStyle;
-            fontStyle = newFontStyle;
-            console.firePropertyChange(this, IConsoleConstants.P_FONT_STYLE, new Integer(old), new Integer(fontStyle));
-        }
-    }
-    
-    /**
-     * Returns whether the console this stream is writing to will be activated when this stream
-     * is written to.
-     * 
-     * @return whether the console this stream is writing to will be activated when this stream
-     * is written to.
-     */
-    public boolean isActivateOnWrite() {
-        return activateOnWrite;
-    }
-
-    /**
-     * Sets whether to activate the console this stream is writing to when this stream
-     * is written to.
-     * 
-     * @param activateOnWrite whether the console this stream is writing to will be activated when this stream
-     * is written to.
-     */
-    public void setActivateOnWrite(boolean activateOnWrite) {
-        this.activateOnWrite = activateOnWrite;
-    }
-    
-	/**
-	 * Sets the color of this stream. Use <code>null</code> to indicate
-     * the default color.
-	 * 
-	 * @param newColor color of this stream, or <code>null</code>
-	 */
-	public void setColor(Color newColor) {
-		Color old = color;
-		if (old == null || !old.equals(newColor)) {
-		    color = newColor;
-		    console.firePropertyChange(this, IConsoleConstants.P_STREAM_COLOR, old, newColor);
-		}
-	}
-	
-	/**
-	 * Returns the color of this stream, or <code>null</code>
-	 * if default.
-	 * 
-	 * @return the color of this stream, or <code>null</code>
-	 */
-	public Color getColor() {
-	    return color;
-	}
-	
-    /**
-     * Returns true if the stream has been closed
-     * @return true is the stream has been closed, false otherwise.
-     */
-    public synchronized boolean isClosed() {
-        return closed;
-    }
-    
-	/*
-	 *  (non-Javadoc)
-	 * @see java.io.OutputStream#close()
-	 */
-    public synchronized void close() throws IOException {
-        if(closed) {
-            throw new IOException("Output Stream is closed"); //$NON-NLS-1$
-        }
-        if (prependCR) { // force writing of last /r
-            prependCR = false;
-            notifyParitioner("\r"); //$NON-NLS-1$
-        }
-        console.streamClosed(this);
-        closed = true;
-        partitioner = null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see java.io.OutputStream#flush()
-     */
-    public void flush() throws IOException {
-        if(closed) {
-            throw new IOException("Output Stream is closed"); //$NON-NLS-1$
-        }
-    }
-    
-    /*
-     *  (non-Javadoc)
-     * @see java.io.OutputStream#write(byte[], int, int)
-     */
-    public void write(byte[] b, int off, int len) throws IOException {
-        if (fNeedsEncoding) {
-            encodedWrite(new String(b, off, len, fEncoding));
-        } else {
-            encodedWrite(new String(b, off, len));
-        }
-    }
-    /*
-     *  (non-Javadoc)
-     * @see java.io.OutputStream#write(byte[])
-     */
-    public void write(byte[] b) throws IOException {
-        write(b, 0, b.length);
-    }
-    /*
-     *  (non-Javadoc)
-     * @see java.io.OutputStream#write(int)
-     */
-    public void write(int b) throws IOException {
-        write(new byte[] {(byte)b}, 0, 1);
-    }    
-    
-    /**
-     * Writes a string to the attached console.
-     * 
-     * @param str the string to write to the attached console.
-     * @throws IOException if the stream is closed.
-     */
-    public synchronized void write(String str) throws IOException {
-        if (fNeedsEncoding) {
-	        byte[] defaultBytes = str.getBytes();
-	        str = new String(defaultBytes, fEncoding);
-        }
-        encodedWrite(str);
-    }
-    
-    private void encodedWrite(String encodedString) throws IOException {
-        if(closed) {
-            throw new IOException("Output Stream is closed"); //$NON-NLS-1$
-        }
-        if (prependCR){
-            encodedString="\r"+encodedString; //$NON-NLS-1$
-            prependCR=false;
-        }
-        if (encodedString.endsWith("\r")) { //$NON-NLS-1$
-            prependCR = true;
-            encodedString = new String(encodedString.substring(0, encodedString.length()-1));
-        }
-        notifyParitioner(encodedString);
-    }
-
-    private void notifyParitioner(String encodedString) throws IOException {
-        try {
-            partitioner.streamAppended(this, encodedString);
-
-            if (activateOnWrite) {
-            	console.activate();
-            } else {
-            	ConsolePlugin.getDefault().getConsoleManager().warnOfContentChange(console);
-            }
-        } catch (IOException e) {
-            if (!closed) {
-                close();
-            }
-            throw e;
-        }
-    }
-
-    /**
-     * Sets the character encoding used to interpret characters written to this steam. 
-     * 
-     * @param encoding encoding identifier
-     */
-    public void setEncoding(String encoding) {
-        fEncoding = encoding;
-        fNeedsEncoding = (fEncoding!=null) && (!fEncoding.equals(fDefaultEncoding));
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java
deleted file mode 100644
index d3042ea..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A pattern match listener is registered with a <code>TextConsole</code>,
- * and is notified when its pattern has been matched to contents in
- * that console. A pattern match listener can be registered with a console
- * programmatically or via the <code>consolePatternMatchListeners</code> extension
- * point.
- * <p>
- * Following is an example console pattern match listener extension definition.
- * </pre>
- * &lt;extension point="org.eclipse.ui.console.consolePatternMatchListeners"&gt;
- *   &lt;consolePatternMatchListener
- *      id="com.example.ConsolePatternMatcher"
- *      regex=".*foo.*"
- *      class="com.example.ConsolePatternMatcher"&gt;
- *   &lt;/consolePatternMatchListener&gt;
- * &lt;/extension&gt;
- * </pre>
- * Attributes are specified as follows:
- * <ul>
- * <li><code>id</code> - a unique identifier for the pattern match listener</li>
- * <li><code>regex</code> - regular expression to match</li>
- * <li><code>class</code> - fully qualified name of the Java class implementing
- *  <code>org.eclipse.ui.console.IPatternMatchListenerDelegate</code></li>
- * </ul>
- * </p> 
- * <p>
- * Optionally a <code>qualifier</code> attribute may be specified to improve performance
- * of regular expression matching. A qualifier specifies a simple regular expression used to
- * qualify lines for the search. Lines that do not contain the qualifier are not considered.
- * </p>
- * <p>
- * Optionally an <code>enablement</code> expression may be provided to specify
- * which console(s) a pattern matcher should be contributed to.
- * </p>
- * <p>
- * Clients may implement this interface directly if registering a pattern match listener with
- * a text console programmatically. Clients contributing a pattern match listener via an
- * extension implement <code>IPatternMatchListenerDelegate</code> instead.
- * </p>
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public interface IPatternMatchListener extends IPatternMatchListenerDelegate {
-    /**
-     * Returns the pattern to be used for matching. The pattern is
-     * a string representing a regular expression. 
-     * 
-     * @return the regular expression to be used for matching
-     */
-    public String getPattern();
-    
-    /**
-     * Returns the flags to use when compiling this pattern match listener's
-     * regular expression, as defined by by <code>Pattern.compile(String regex, int flags)</code>
-     * 
-     * @return the flags to use when compiling this pattern match listener's
-     * regular expression
-     * @see java.util.regex.Pattern#compile(java.lang.String, int)
-     */
-    public int getCompilerFlags();
-    
-    /**
-     * Returns a simple regular expression used to identify lines that may
-     * match this pattern matcher's complete pattern, or <code>null</code>.
-     * Use of this attribute can improve performance by disqualifying lines
-     * from the search. When a line is found containing a match for this expression,
-     * the line is searched from the beginning for this pattern matcher's
-     * complete pattern. Lines not containing this pattern are discarded.
-     * 
-     * @return a simple regular expression used to identify lines that may
-     * match this pattern matcher's complete pattern, or <code>null</code>
-     */
-    public String getLineQualifier();
-    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java
deleted file mode 100644
index a3e60dd..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A pattern match listener delegate is notified of regular expression matches
- * in a text console. A delegate is contributed via the
- * <code>consolePatternMatcherListeners</code> extension point.
- * <p>
- * Clients contributing a console pattern match listener extension are intended
- * to implement this interface.
- * </p>
- * @see org.eclipse.ui.console.IPatternMatchListener
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public interface IPatternMatchListenerDelegate {
-    /**
-     * Notification that pattern matching will begin in the specified console.
-     * A pattern matcher is connected to only one console at a time.
-     * 
-     * @param console the console in which pattern matching will be performed
-     */
-    public void connect(TextConsole console);
-    
-    /**
-     * Notification that pattern matching has been completed in the console
-     * this delegate was last connected to.
-     */
-    public void disconnect();
-    
-    /**
-     * Notification that a match has been found.
-     * 
-     * @param event event describing where the match was found
-     */
-    public void matchFound(PatternMatchEvent event);
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java
deleted file mode 100644
index a429e94..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.console.IOConsolePage;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console that displays messages. A message console may have one or
- * more streams connected to it (<code>MessageConsoleStream</code>).
- * Text written to streams is buffered and processed in a Job by the 
- * console's document partitioner.
- * <p>
- * Clients may instantiate this class; not intended to be subclassed.
- * </p>
- * @since 3.0
- */
-public class MessageConsole extends IOConsole {
-	
-	/**
-	 * Property constant indicating the font of this console has changed. 
-	 * 
-	 * @deprecated use {@link IConsoleConstants#P_FONT} 
-	 */
-	public static final String P_FONT = IConsoleConstants.P_FONT;
-	
-	/**
-	 * Property constant indicating the color of a stream has changed. 
-	 * 
-	 * @deprecated use {@link IConsoleConstants#P_STREAM_COLOR} 
-	 */
-	public static final String P_STREAM_COLOR = IConsoleConstants.P_STREAM_COLOR;
-	
-	/**
-	 * Property constant indicating tab size has changed
-	 * 
-	 * @deprecated use {@link IConsoleConstants#P_TAB_SIZE}
-	 */
-	public static final String P_TAB_SIZE = IConsoleConstants.P_TAB_SIZE;
-	
-	/**
-	 * The default tab size
-	 * 
-	 * @deprecated use {@link IConsoleConstants#DEFAULT_TAB_SIZE}
-	 */
-	public static final int DEFAULT_TAB_SIZE = IConsoleConstants.DEFAULT_TAB_SIZE;	
-
-    /**
-     * Constructs a message console with the given name and image.
-     * 
-     * @param name console name
-     * @param imageDescriptor console image descriptor or <code>null</code>
-     */
-	public MessageConsole(String name, ImageDescriptor imageDescriptor) {
-		this(name, imageDescriptor, true);
-	}
-	
-	/**
-	 * Constructs a message console.
-	 * 
-	 * @param name console name
-	 * @param imageDescriptor console image descriptor or <code>null</code>
-	 * @param autoLifecycle whether lifecycle methods should be called automatically
-	 *  when added and removed from the console manager
-	 * @since 3.1
-	 */
-	public MessageConsole(String name, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
-		super(name, IConsoleConstants.MESSAGE_CONSOLE_TYPE, imageDescriptor, autoLifecycle);
-	}	
-		
-	/**
-	 * Returns a new message stream connected to this console.
-	 * <p>
-     * Clients should avoid writing large amounts of output to this stream in the UI
-     * thread. The console needs to process the output in the UI thread and if the client
-     * hogs the UI thread writing output to the console, the console will not be able
-     * to process the output.
-     * </p>
-	 * @return a new message stream connected to this console
-	 */
-	public MessageConsoleStream newMessageStream() {
-		return new MessageConsoleStream(this);
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsole#createPage(org.eclipse.ui.console.IConsoleView)
-     */
-    public IPageBookViewPage createPage(IConsoleView view) {
-        IOConsolePage page = (IOConsolePage) super.createPage(view);
-        page.setReadOnly();
-        return page;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IOConsole#getInputStream()
-     */
-    public IOConsoleInputStream getInputStream() {
-        throw new UnsupportedOperationException("Message Console does not support user input"); //$NON-NLS-1$
-    }
-    
-	
-	/** 
-	 * Appends the given message to this console, from the specified stream.
-	 * 
-	 * @param text message
-	 * @param stream stream the message belongs to
-	 * @deprecated since 3.1, this method should no longer be called, and has no effect.
-	 * Writing to a message console stream updates the document
-	 */
-	protected void appendToDocument(String text, MessageConsoleStream stream) {
-	}    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java
deleted file mode 100644
index 97ef02b..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-
-/**
- * Used to write messages to a message console. A message console may have more
- * than one stream connected to it. Each stream may be displayed in a different
- * color.
- * <p>
- * Clients are not intended to subclass or instantiate this class. Instances
- * are created via a {@link org.eclipse.ui.console.MessageConsole}.
- * </p>
- * <p>
- * Clients should avoid writing large amounts of output to this stream in the UI
- * thread. The console needs to process the output in the UI thread and if the client
- * hogs the UI thread writing output to the console, the console will not be able
- * to process the output.
- * </p>
- * <p>
- * Since 3.1, this class extends {@link org.eclipse.ui.console.IOConsoleOutputStream}.
- * </p>
- * @since 3.0
- */
-public class MessageConsoleStream extends IOConsoleOutputStream {
-    
-    private MessageConsole fMessageConsole;
-    
-	/**
-	 * Constructs a new stream connected to the given console.
-	 * 
-	 * @param console the console to write messages to
-	 */
-	public MessageConsoleStream(MessageConsole console) {
-	    super(console);
-        fMessageConsole = console;
-	}
-	
-	/**
-	 * Appends the specified message to this stream.
-	 * 
-	 * @param message message to append
-	 */
-	public void print(String message) {
-		try {
-            write(message);
-        } catch (IOException e) {
-            ConsolePlugin.log(e);
-        }
-	}
-	
-	
-	/**
-	 * Appends a line separator string to this stream.
-	 */
-	public void println() {
-		try {
-            write("\n"); //$NON-NLS-1$
-        } catch (IOException e) {
-            ConsolePlugin.log(e);
-        }
-	}	
-	
-	/**
-	 * Appends the specified message to this stream, followed by a line
-	 * separator string.
-	 * 
-	 * @param message message to print
-	 */
-	public void println(String message) {
-		print(message + "\n"); //$NON-NLS-1$
-	}	
-    
-    /**
-     * Returns the console this stream is connected to.
-     * 
-     * @return the console this stream is connected to
-     */
-    public MessageConsole getConsole() {
-        return fMessageConsole;
-    }    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java
deleted file mode 100644
index 50693c4..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.util.EventObject;
-
-/**
- * An event describing a pattern match in a text console. The source of the event
- * is a <code>TextConsole</code>.
- * <p>
- * Clients may instantiate this class; not intended to be subclassed.
- * </p>
- * @see org.eclipse.ui.console.IPatternMatchListener
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public class PatternMatchEvent extends EventObject {
-    /*
-     * required by EventObject for ObjectSerialization.
-     */
-    private static final long serialVersionUID = 876890383326854537L;
-    
-    /**
-     * The offset of the match within the console's document. 
-     */
-    private int offset;
-    
-    /**
-     * The length of the matched string
-     */
-    private int length;
-
-    /**
-     * Constructs a new pattern match event.
-     * 
-     * @param console the console in which the match was found
-     * @param matchOffset the offset at which the match was found
-     * @param matchLength the length of the text that matched
-     */
-    public PatternMatchEvent(TextConsole console, int matchOffset, int matchLength) {
-        super(console);
-        offset = matchOffset;
-        length = matchLength;
-    }
-
-    /**
-     * Returns the length of the matched string.
-     * 
-     * @return the length of the matched string
-     */
-    public int getLength() {
-        return length;
-    }
-
-    /**
-     * Returns the offset of the match within the document.
-     * 
-     * @return the offset of the match within the document
-     */
-    public int getOffset() {
-        return offset;
-    }
-    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java
deleted file mode 100644
index 81561f9..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.ui.internal.console.ConsoleDocument;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-import org.eclipse.ui.internal.console.ConsolePatternMatcher;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * An abstract text console that supports regular expression matching and
- * hyperlinks.
- * <p>
- * Pattern match listeners can be registered with a console programmatically
- * or via the <code>org.eclipse.ui.console.consolePatternMatchListeners</code>
- * extension point.
- * </p>
- * <p>
- * Clients may subclass this class. Subclasses must provide a document partitioner.
- * </p>
- * @since 3.1
- */
-public abstract class TextConsole extends AbstractConsole {
-
-    /**
-     * The current width of the console. Used for fixed width consoles.
-     * A value of <=0 means does not have a fixed width.
-     */
-    private int fConsoleWidth;
-    /**
-     * The current tab width
-     */
-    private int fTabWidth;
-    /** 
-	 * The font used by this console
-	 */
-    private Font fFont;    
-    
-    /**
-     * The background color used by this console or <code>null</code> if default
-     */
-    private Color fBackground;
-    
-    /**
-     * The Console's regular expression pattern matcher
-     */
-    private ConsolePatternMatcher fPatternMatcher;
-    
-    /**
-     * The Console's document
-     */
-    private ConsoleDocument fDocument;
-    
-   /**
-    * indication that the console's partitioner is not expecting more input
-    */
-    private boolean fPartitionerFinished = false;
-    
-    /**
-     * Indication that the console's pattern matcher has finished.
-     * (all matches have been found and all listeners notified)
-     */
-    private boolean fMatcherFinished = false;
-    
-    /**
-     * indication that the console output complete property has been fired
-     */
-    private boolean fCompleteFired = false;
-
-    
-    /**
-     * Map of client defined attributes
-     */
-    private HashMap fAttributes = new HashMap();
-    
-    private IConsoleManager fConsoleManager = ConsolePlugin.getDefault().getConsoleManager();
-    
-   
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.AbstractConsole#dispose()
-     */
-    protected void dispose() {
-        super.dispose();
-        fFont = null;
-		synchronized(fAttributes) {
-		    fAttributes.clear();
-		}
-    }
-    /**
-     * Constructs a console with the given name, image descriptor, and lifecycle
-     * 
-     * @param name name to display for this console
-     * @param consoleType console type identifier or <code>null</code>
-     * @param imageDescriptor image to display for this console or <code>null</code>
-     * @param autoLifecycle whether lifecycle methods should be called automatically
-     *  when this console is added/removed from the console manager
-     */
-    public TextConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
-        super(name, consoleType, imageDescriptor, autoLifecycle);
-        fDocument = new ConsoleDocument();
-        fDocument.addPositionCategory(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-        fPatternMatcher = new ConsolePatternMatcher(this);
-        fDocument.addDocumentListener(fPatternMatcher);
-        fTabWidth = IConsoleConstants.DEFAULT_TAB_SIZE;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsole#createPage(org.eclipse.ui.console.IConsoleView)
-     */
-    public IPageBookViewPage createPage(IConsoleView view) {
-        return new TextConsolePage(this, view);
-    }
-    
-	/**
-	 * Returns this console's document.
-     * <p>
-     * Note that a console may or may not support direct manipulation of its document.
-     * For example, an I/O console document and its partitions are produced from the
-     * streams connected to it, and clients are not intended to modify the document's
-     * contents.
-     * </p>
-	 * 
-	 * @return this console's document
-	 */
-    public IDocument getDocument() {
-        return fDocument;
-    }
-    
-    /**
-     * Returns the current width of this console. A value of zero of less 
-     * indicates this console has no fixed width.
-     * 
-     * @return the current width of this console
-     */
-    public int getConsoleWidth() {
-        return fConsoleWidth;
-    }
-    
-    /**
-     * Sets the width of this console in characters. Any value greater than zero
-     * will cause this console to have a fixed width.
-     * 
-     * @param width the width to make this console. Values of 0 or less imply
-     * the console does not have any fixed width.
-     */
-    public void setConsoleWidth(int width) {
-        if (fConsoleWidth != width) {
-            int old = fConsoleWidth;
-            fConsoleWidth = width;
-            
-            firePropertyChange(this, IConsoleConstants.P_CONSOLE_WIDTH, new Integer(old), new Integer(fConsoleWidth));
-        }
-    }
-
-	/**
-	 * Sets the tab width used in this console.
-	 * 
-	 * @param newTabWidth the tab width 
-	 */
-    public void setTabWidth(final int newTabWidth) {
-        if (fTabWidth != newTabWidth) {
-            final int oldTabWidth = fTabWidth;
-            fTabWidth = newTabWidth;
-            ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    firePropertyChange(TextConsole.this, IConsoleConstants.P_TAB_SIZE, new Integer(oldTabWidth), new Integer(fTabWidth));           
-                }
-            });
-        }
-    }
-    
-	/**
-	 * Returns the tab width used in this console.
-	 * 
-	 * @return tab width used in this console
-	 */
-    public int getTabWidth() {
-        return fTabWidth;
-    }
-    
-    /**
-	 * Returns the font used by this console. Must be called in the UI thread.
-	 * 
-	 * @return font used by this console
-	 */
-    public Font getFont() {
-        if (fFont == null) {
-            fFont = getDefaultFont();
-        }
-        return fFont;
-    }
-    
-    /**
-     * Returns the default text font.
-     * 
-     * @return the default text font
-     */
-    private Font getDefaultFont() {
-        return JFaceResources.getFont(JFaceResources.TEXT_FONT);
-    }
-    
-	/**
-	 * Sets the font used by this console. Specify <code>null</code> to use
-	 * the default text font.
-	 * 
-	 * @param newFont font, or <code>null</code> to indicate the default font
-	 */
-    public void setFont(Font newFont) {
-        // ensure font is initialized
-        getFont();
-        // translate null to default font
-        if (newFont == null) {
-            newFont = getDefaultFont();
-        }
-        // fire property change if required
-        if (!fFont.equals(newFont)) {
-            Font old = fFont;
-            fFont = newFont;
-            firePropertyChange(this, IConsoleConstants.P_FONT, old, fFont);
-        }
-    }
-	
-	/**
-	 * Sets the background color used by this console. Specify <code>null</code> to use
-	 * the default background color.
-	 * 
-	 * @param background background color or <code>null</code> for default
-	 * @since 3.3
-	 * @deprecated use setBackground(Color) instead
-	 */
-    public void setBackgrond(Color background) {
-    	setBackground(background);
-    }  
-    
-	/**
-	 * Sets the background color used by this console. Specify <code>null</code> to use
-	 * the default background color.
-	 * 
-	 * @param background background color or <code>null</code> for default
-	 * @since 3.3
-	 */
-    public void setBackground(Color background) {
-    	if (fBackground == null) {
-    		if (background == null) {
-    			return;
-    		}
-    	} else if (fBackground.equals(background)){
-    		return;
-    	}
-        Color old = fBackground;
-        fBackground = background;
-        firePropertyChange(this, IConsoleConstants.P_BACKGROUND_COLOR, old, fBackground);
-    }    
-    
-    /**
-     * Returns the background color to use for this console or <code>null</code> for the 
-     * default background color.
-     * 
-     * @return background color or <code>null</code> for default
-     * @since 3.3
-     */
-    public Color getBackground() {
-    	return fBackground;
-    }
-    
-    /**
-     * Clears the console.
-     * <p>
-     * Since a console may or may not support direct manipulation
-     * of its document's contents, this method should be called to clear a text console's
-     * document. The default implementation sets this console's document content
-     * to the empty string directly. Subclasses should override as required.
-     * </p>
-     */
-    public void clearConsole() {
-        IDocument document = getDocument();
-        if (document != null) {
-            document.set(""); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Returns the console's document partitioner.
-     * @return The console's document partitioner
-     */
-    protected abstract IConsoleDocumentPartitioner getPartitioner();
-    
-    /**
-     * Returns all hyperlinks in this console.
-     * 
-     * @return all hyperlinks in this console
-     */
-    public IHyperlink[] getHyperlinks() {
-        try {
-            Position[] positions = getDocument().getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-            IHyperlink[] hyperlinks = new IHyperlink[positions.length];
-            for (int i = 0; i < positions.length; i++) {
-                ConsoleHyperlinkPosition position = (ConsoleHyperlinkPosition) positions[i];
-                hyperlinks[i] = position.getHyperLink();
-            }
-            return hyperlinks;
-        } catch (BadPositionCategoryException e) {
-            return new IHyperlink[0];
-        }
-    }
-    
-    /**
-     * Returns the hyperlink at the given offset of <code>null</code> if none.
-     * 
-     * @param offset offset for which a hyperlink is requested
-     * @return the hyperlink at the given offset of <code>null</code> if none
-     */
-    public IHyperlink getHyperlink(int offset) {
-        try {
-        	IDocument document = getDocument();
-        	if (document != null) {
-	            Position[] positions = document.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-	            Position position = findPosition(offset, positions);
-	            if (position instanceof ConsoleHyperlinkPosition) {
-	                return ((ConsoleHyperlinkPosition) position).getHyperLink();
-	            }
-        	}
-        } catch (BadPositionCategoryException e) {
-        }        
-        return null;
-    }
-
-	/**
-	 * Binary search for the position at a given offset.
-	 *
-	 * @param offset the offset whose position should be found
-	 * @return the position containing the offset, or <code>null</code>
-	 */
-	private Position findPosition(int offset, Position[] positions) {
-		
-		if (positions.length == 0)
-			return null;
-			
-		int left= 0;
-		int right= positions.length -1;
-		int mid= 0;
-		Position position= null;
-		
-		while (left < right) {
-			
-			mid= (left + right) / 2;
-				
-			position= positions[mid];
-			if (offset < position.getOffset()) {
-				if (left == mid)
-					right= left;
-				else
-					right= mid -1;
-			} else if (offset > (position.getOffset() + position.getLength() - 1)) {
-				if (right == mid)
-					left= right;
-				else
-					left= mid  +1;
-			} else {
-				left= right= mid;
-			}
-		}
-		
-		position= positions[left];
-		if (offset >= position.getOffset() && (offset < (position.getOffset() + position.getLength()))) {
-			return position;
-		}
-		return null;
-	}
-
-    /**
-     * Adds the given pattern match listener to this console. The listener will
-     * be connected and receive match notifications. Has no effect if an identical
-     * listener has already been added.
-     * 
-     * @param listener the listener to add
-     */
-    public void addPatternMatchListener(IPatternMatchListener listener) {
-        fPatternMatcher.addPatternMatchListener(listener);
-    }
-    
-    /**
-     * Removes the given pattern match listener from this console. The listener will be
-     * disconnected and will no longer receive match notifications. Has no effect
-     * if the listener was not previously added.
-     * 
-     * @param listener the pattern match listener to remove
-     */
-    public void removePatternMatchListener(IPatternMatchListener listener) {
-        fPatternMatcher.removePatternMatchListener(listener);
-    }    
-    
-    
-    /**
-     * Job scheduling rule that prevent the job from running if the console's PatternMatcher
-     * is active.
-     */
-    private class MatcherSchedulingRule implements ISchedulingRule {
-        public boolean contains(ISchedulingRule rule) {
-            return rule == this;
-        }
-
-        public boolean isConflicting(ISchedulingRule rule) {
-            if (contains(rule)) {
-                return true;
-            }
-            if (rule != this && rule instanceof MatcherSchedulingRule) {
-                return (((MatcherSchedulingRule)rule).getConsole() == TextConsole.this);   
-            }
-            return false;
-        }
-        
-        public TextConsole getConsole() {
-            return TextConsole.this;
-        }
-    }
-    
-    /**
-     * Returns a scheduling rule which can be used to prevent jobs from running
-     * while this console's pattern matcher is active.
-     * <p>
-     * Although this scheduling rule prevents jobs from running at the same time as
-     * pattern matching jobs for this console, it does not enforce any ordering of jobs.
-     * Since 3.2, pattern matching jobs belong to the job family identified by the console
-     * object that matching is occurring on. To ensure a job runs after all scheduled pattern
-     * matching is complete, clients must join on this console's job family.
-     * </p>
-     * @return a scheduling rule which can be used to prevent jobs from running
-     * while this console's pattern matcher is active
-     */
-    public ISchedulingRule getSchedulingRule() {
-        return new MatcherSchedulingRule();
-    }
-    
-    /**
-     * This console's partitioner should call this method when it is not expecting any new data
-     * to be appended to the document. 
-     */
-    public void partitionerFinished() {
-        fPatternMatcher.forceFinalMatching();
-        fPartitionerFinished  = true;
-        checkFinished();
-    }
-    
-    /**
-     * Called by this console's pattern matcher when matching is complete.
-     * <p>
-     * Clients should not call this method.
-     * <p>
-     */
-    public void matcherFinished() {
-        fMatcherFinished = true;
-        fDocument.removeDocumentListener(fPatternMatcher);
-        checkFinished();
-    }
-    
-    /**
-     * Fires the console output complete property change event.
-     */
-    private synchronized void checkFinished() {
-        if (!fCompleteFired && fPartitionerFinished && fMatcherFinished ) {
-            fCompleteFired = true;
-            firePropertyChange(this, IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE, null, null);
-        }
-    }
-    
-    /**
-     * Adds a hyperlink to this console.
-     * 
-     * @param hyperlink the hyperlink to add
-     * @param offset the offset in the console document at which the hyperlink should be added
-     * @param length the length of the text which should be hyperlinked
-     * @throws BadLocationException if the specified location is not valid.
-     */
-    public void addHyperlink(IHyperlink hyperlink, int offset, int length) throws BadLocationException {
-        IDocument document = getDocument();
-		ConsoleHyperlinkPosition hyperlinkPosition = new ConsoleHyperlinkPosition(hyperlink, offset, length); 
-		try {
-			document.addPosition(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY, hyperlinkPosition);
-            fConsoleManager.refresh(this);
-		} catch (BadPositionCategoryException e) {
-			ConsolePlugin.log(e);
-		} 
-    }
-    
-    /**
-     * Returns the region associated with the given hyperlink.
-     * 
-     * @param link hyperlink
-     * @return the region associated with the hyperlink or null if the hyperlink is not found.
-     */
-    public IRegion getRegion(IHyperlink link) {
-		try {
-		    IDocument doc = getDocument();
-		    if (doc != null) {
-				Position[] positions = doc.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-				for (int i = 0; i < positions.length; i++) {
-					ConsoleHyperlinkPosition position = (ConsoleHyperlinkPosition)positions[i];
-					if (position.getHyperLink().equals(link)) {
-						return new Region(position.getOffset(), position.getLength());
-					}
-				}
-		    }
-		} catch (BadPositionCategoryException e) {
-		}
-		return null;
-    }
-    
-    /**
-     * Returns the attribute associated with the specified key.
-     * 
-     * @param key attribute key
-     * @return the attribute associated with the specified key
-     */
-    public Object getAttribute(String key) {
-        synchronized (fAttributes) {
-            return fAttributes.get(key);
-        }
-    }
-    
-    /**
-     * Sets an attribute value. Intended for client data.
-     * 
-     * @param key attribute key
-     * @param value attribute value
-     */
-    public void setAttribute(String key, Object value) {
-        synchronized(fAttributes) {
-            fAttributes.put(key, value);
-        }
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java
deleted file mode 100644
index 349572f..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IFindReplaceTarget;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.console.actions.ClearOutputAction;
-import org.eclipse.ui.console.actions.TextViewerAction;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-import org.eclipse.ui.internal.console.ConsoleResourceBundleMessages;
-import org.eclipse.ui.internal.console.FollowHyperlinkAction;
-import org.eclipse.ui.internal.console.IConsoleHelpContextIds;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.texteditor.FindReplaceAction;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * A page for a text console.
- * <p>
- * Clients may contribute actions to the context menu of a text console page
- * using the <code>org.eclipse.ui.popupMenus</code> extension point. The context
- * menu identifier for a text console page is the associated console's type
- * suffixed with <code>.#ContextMenu</code>. When a console does not specify 
- * a type, the context menu id is <code>#ContextMenu</code>.
- * </p>
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.1
- */
-public class TextConsolePage implements IPageBookViewPage, IPropertyChangeListener, IAdaptable {
-    private IPageSite fSite;
-    private TextConsole fConsole;
-    private IConsoleView fConsoleView;
-    private TextConsoleViewer fViewer;
-    private MenuManager fMenuManager;
-    protected Map fGlobalActions = new HashMap();
-    protected ArrayList fSelectionActions = new ArrayList();
-    protected ClearOutputAction fClearOutputAction;
-    
-	// text selection listener, used to update selection dependent actions on selection changes
-	private ISelectionChangedListener selectionChangedListener =  new ISelectionChangedListener() {
-		public void selectionChanged(SelectionChangedEvent event) {
-			updateSelectionDependentActions();
-		}
-	};
-    
-	// updates the find replace action if the document length is > 0
-	private ITextListener textListener = new ITextListener() {
-	    public void textChanged(TextEvent event) {
-			IUpdate findReplace = (IUpdate)fGlobalActions.get(ActionFactory.FIND.getId());
-			if (findReplace != null) {
-				findReplace.update();
-			}
-		}
-	};
-	
-    /**
-     * Constructs a text console page for the given console in the given view.
-     * 
-     * @param console text console
-     * @param view console view the page is contained in
-     */
-	public TextConsolePage(TextConsole console, IConsoleView view) {
-	    fConsole = console;
-	    fConsoleView = view;
-	}
-	
-    /**
-     * Returns a viewer used to display the contents of this page's console.
-     * 
-     * @param parent container for the viewer
-     * @return a viewer used to display the contents of this page's console
-     */
-	protected TextConsoleViewer createViewer(Composite parent) {
-	    return new TextConsoleViewer(parent, fConsole);
-	}
-    
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPageBookViewPage#getSite()
-     */
-    public IPageSite getSite() {
-        return fSite;
-    }
-    	
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPageBookViewPage#init(org.eclipse.ui.part.IPageSite)
-     */
-    public void init(IPageSite pageSite) throws PartInitException {
-        fSite = pageSite;
-    }
-
-    /**
-     * Updates selection dependent actions.
-     */
-    protected void updateSelectionDependentActions() {
-		Iterator iterator= fSelectionActions.iterator();
-		while (iterator.hasNext()) {
-			updateAction((String)iterator.next());		
-		}
-	}
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createControl(Composite parent) {
-        fViewer = createViewer(parent);
-		fViewer.setConsoleWidth(fConsole.getConsoleWidth());
-		fViewer.setTabWidth(fConsole.getTabWidth());
-		fConsole.addPropertyChangeListener(this);
-		JFaceResources.getFontRegistry().addListener(this);
-		
-		String id = "#ContextMenu"; //$NON-NLS-1$
-		if (getConsole().getType() != null) {
-		    id = getConsole().getType() + "." + id; //$NON-NLS-1$
-		}
-		fMenuManager= new MenuManager("#ContextMenu", id);  //$NON-NLS-1$
-		fMenuManager.setRemoveAllWhenShown(true);
-		fMenuManager.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager m) {
-				contextMenuAboutToShow(m);
-			}
-		});
-		Menu menu = fMenuManager.createContextMenu(getControl());
-		getControl().setMenu(menu);
-		
-		createActions();
-		configureToolBar(getSite().getActionBars().getToolBarManager());
-		
-		getSite().registerContextMenu(id, fMenuManager, fViewer); 
-		getSite().setSelectionProvider(fViewer);
-		
-		fViewer.getSelectionProvider().addSelectionChangedListener(selectionChangedListener);
-		fViewer.addTextListener(textListener);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPage#dispose()
-     */
-    public void dispose() {
-        fConsole.removePropertyChangeListener(this);
-        JFaceResources.getFontRegistry().removeListener(this);
-        
-        if (fMenuManager != null) {
-            fMenuManager.dispose();
-        }
-        fClearOutputAction = null;
-        fSelectionActions.clear();
-        fGlobalActions.clear();
-        
-        fViewer.getSelectionProvider().removeSelectionChangedListener(selectionChangedListener);
-        fViewer.removeTextListener(textListener);
-        fViewer = null;
-    }
-
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPage#getControl()
-     */
-    public Control getControl() {
-        return fViewer != null ? fViewer.getControl() : null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
-     */
-    public void setActionBars(IActionBars actionBars) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.IPage#setFocus()
-     */
-    public void setFocus() {
-        if (fViewer != null) {
-            fViewer.getTextWidget().setFocus();
-        }
-    }
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-	 */
-    public void propertyChange(PropertyChangeEvent event) {
-        if (fViewer != null) {
-			Object source = event.getSource();
-			String property = event.getProperty();
-			
-			if (source.equals(fConsole) && IConsoleConstants.P_FONT.equals(property)) {
-				fViewer.setFont(fConsole.getFont());	
-			} else if (IConsoleConstants.P_FONT_STYLE.equals(property)) {
-			    fViewer.getTextWidget().redraw();
-			} else if (property.equals(IConsoleConstants.P_STREAM_COLOR)) {
-			    fViewer.getTextWidget().redraw();
-			} else if (source.equals(fConsole) && property.equals(IConsoleConstants.P_TAB_SIZE)) {
-			    Integer tabSize = (Integer)event.getNewValue();
-			    fViewer.setTabWidth(tabSize.intValue());
-			} else if (source.equals(fConsole) && property.equals(IConsoleConstants.P_CONSOLE_WIDTH)) {
-			    fViewer.setConsoleWidth(fConsole.getConsoleWidth()); 
-			} else if (IConsoleConstants.P_BACKGROUND_COLOR.equals(property)) {
-				fViewer.getTextWidget().setBackground(fConsole.getBackground());
-			}
-        }
-	}
-
-    /**
-     * Creates actions.
-     */
-    protected void createActions() {
-        IActionBars actionBars= getSite().getActionBars();
-        TextViewerAction action= new TextViewerAction(fViewer, ITextOperationTarget.SELECT_ALL);
-		action.configureAction(ConsoleMessages.TextConsolePage_SelectAllText, ConsoleMessages.TextConsolePage_SelectAllDescrip, ConsoleMessages.TextConsolePage_SelectAllDescrip);
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.SELECT_ALL);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(action, IConsoleHelpContextIds.CONSOLE_SELECT_ALL_ACTION);
-		setGlobalAction(actionBars, ActionFactory.SELECT_ALL.getId(), action);
-		
-		action= new TextViewerAction(fViewer, ITextOperationTarget.CUT);
-		action.configureAction(ConsoleMessages.TextConsolePage_CutText, ConsoleMessages.TextConsolePage_CutDescrip, ConsoleMessages.TextConsolePage_CutDescrip);  
-		action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.CUT);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(action, IConsoleHelpContextIds.CONSOLE_CUT_ACTION);
-		setGlobalAction(actionBars, ActionFactory.CUT.getId(), action);
-		
-		action= new TextViewerAction(fViewer, ITextOperationTarget.COPY);
-		action.configureAction(ConsoleMessages.TextConsolePage_CopyText, ConsoleMessages.TextConsolePage_CopyDescrip, ConsoleMessages.TextConsolePage_CopyDescrip);
-		action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.COPY);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(action, IConsoleHelpContextIds.CONSOLE_COPY_ACTION);
-		setGlobalAction(actionBars, ActionFactory.COPY.getId(), action);
-		
-		action= new TextViewerAction(fViewer, ITextOperationTarget.PASTE);
-		action.configureAction(ConsoleMessages.TextConsolePage_PasteText, ConsoleMessages.TextConsolePage_PasteDescrip, ConsoleMessages.TextConsolePage_PasteDescrip); 
-		action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.PASTE);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(action, IConsoleHelpContextIds.CONSOLE_PASTE_ACTION);
-		setGlobalAction(actionBars, ActionFactory.PASTE.getId(), action);
-		
-		fClearOutputAction = new ClearOutputAction(fConsole);
-        
-        ResourceBundle bundle = ConsoleResourceBundleMessages.getBundle();
-        FindReplaceAction fraction = new FindReplaceAction(bundle, "find_replace_action_", fConsoleView); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(fraction, IConsoleHelpContextIds.CONSOLE_FIND_REPLACE_ACTION);
-		setGlobalAction(actionBars, ActionFactory.FIND.getId(), fraction);
-
-		fSelectionActions.add(ActionFactory.CUT.getId());
-		fSelectionActions.add(ActionFactory.COPY.getId());
-		fSelectionActions.add(ActionFactory.PASTE.getId());
-		fSelectionActions.add(ActionFactory.FIND.getId());
-		
-		actionBars.updateActionBars();
-    }
-    
-    /**
-     * Configures an action for key bindings.
-     * 
-     * @param actionBars action bars for this page
-     * @param actionID action definition id
-     * @param action associated action
-     */
-    protected void setGlobalAction(IActionBars actionBars, String actionID, IAction action) {
-        fGlobalActions.put(actionID, action);  
-        actionBars.setGlobalActionHandler(actionID, action);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-     */
-    public Object getAdapter(Class required) {
-		if (IFindReplaceTarget.class.equals(required)) {
-			return fViewer.getFindReplaceTarget();
-		}
-		if (Widget.class.equals(required)) {
-			return fViewer.getTextWidget();
-		}
-		return null;
-    }
-    
-    /**
-	 * Returns the view this page is contained in.
-	 * 
-	 * @return the view this page is contained in
-	 */
-	protected IConsoleView getConsoleView() {
-		return fConsoleView;
-	}
-	
-	/**
-	 * Returns the console this page is displaying.
-	 * 
-	 * @return the console this page is displaying
-	 */
-	protected IConsole getConsole() {
-		return fConsole;
-	}
-	
-    /**
-     * Updates the global action with the given id
-     * 
-     * @param actionId action definition id
-     */
-	protected void updateAction(String actionId) {
-		IAction action= (IAction)fGlobalActions.get(actionId);
-		if (action instanceof IUpdate) {
-			((IUpdate) action).update();
-		}
-	}	
-
-    
-	/**
-	 * Fill the context menu
-	 * 
-	 * @param menuManager menu
-	 */
-	protected void contextMenuAboutToShow(IMenuManager menuManager) {
-		IDocument doc= fViewer.getDocument();
-		if (doc == null) {
-			return;
-		}
-
-		menuManager.add((IAction)fGlobalActions.get(ActionFactory.CUT.getId()));
-		menuManager.add((IAction)fGlobalActions.get(ActionFactory.COPY.getId()));
-		menuManager.add((IAction)fGlobalActions.get(ActionFactory.PASTE.getId()));
-		menuManager.add((IAction)fGlobalActions.get(ActionFactory.SELECT_ALL.getId()));
-		
-		menuManager.add(new Separator("FIND")); //$NON-NLS-1$
-		menuManager.add((IAction)fGlobalActions.get(ActionFactory.FIND.getId()));
-		menuManager.add(new FollowHyperlinkAction(fViewer));
-		menuManager.add(fClearOutputAction);
-		
-		menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	protected void configureToolBar(IToolBarManager mgr) {
-		mgr.appendToGroup(IConsoleConstants.OUTPUT_GROUP, fClearOutputAction);
-	}
-
-
-    /**
-     * Returns the viewer contained in this page.
-     * 
-     * @return the viewer contained in this page
-     */
-    public TextConsoleViewer getViewer() {
-        return fViewer;
-    }
-    
-    /**
-     * Sets the viewer contained in this page.
-     * 
-     * @param viewer text viewer
-     */
-    public void setViewer(TextConsoleViewer viewer) {
-        this.fViewer = viewer;
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
deleted file mode 100644
index 50c1a8e..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
+++ /dev/null
@@ -1,699 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentAdapter;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IPositionUpdater;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.LineBackgroundEvent;
-import org.eclipse.swt.custom.LineBackgroundListener;
-import org.eclipse.swt.custom.LineStyleEvent;
-import org.eclipse.swt.custom.LineStyleListener;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.internal.console.ConsoleDocumentAdapter;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-import org.eclipse.ui.progress.WorkbenchJob;
-
-/**
- * Default viewer used to display a <code>TextConsole</code>.
- * <p>
- * Clients may subclass this class.
- * </p>
- * 
- * @since 3.1
- */
-public class TextConsoleViewer extends SourceViewer implements LineStyleListener, LineBackgroundListener, MouseTrackListener, MouseMoveListener, MouseListener {
-    /**
-     * Adapts document to the text widget.
-     */
-    private ConsoleDocumentAdapter documentAdapter;
-
-    private IHyperlink hyperlink;
-
-    private Cursor handCursor;
-
-    private Cursor textCursor;
-
-    private int consoleWidth = -1;
-
-    private TextConsole console;
-
-    private IPropertyChangeListener propertyChangeListener;
-
-    private IDocumentListener documentListener = new IDocumentListener() {
-        public void documentAboutToBeChanged(DocumentEvent event) {
-        }
-
-        public void documentChanged(DocumentEvent event) {
-            updateLinks(event.fOffset);
-        }
-    };
-    // event listener used to send event to hyperlink for IHyperlink2
-    private Listener mouseUpListener = new Listener() {
-		public void handleEvent(Event event) {
-	        if (hyperlink != null) {
-	            String selection = getTextWidget().getSelectionText();
-	            if (selection.length() <= 0) {
-	                if (event.button == 1) {
-	                	if (hyperlink instanceof IHyperlink2) {
-							((IHyperlink2) hyperlink).linkActivated(event);
-						} else {
-							hyperlink.linkActivated();
-						}
-	                }
-	            }
-	        }
-		}
-	};
-
-    WorkbenchJob revealJob = new WorkbenchJob("Reveal End of Document") {//$NON-NLS-1$
-        public IStatus runInUIThread(IProgressMonitor monitor) {
-            StyledText textWidget = getTextWidget();
-            if (textWidget != null && !textWidget.isDisposed()) {
-                int lineCount = textWidget.getLineCount();
-                textWidget.setTopIndex(lineCount - 1);
-            }
-            return Status.OK_STATUS;
-        }
-    };
-    
-    private IPositionUpdater positionUpdater = new IPositionUpdater() {
-        public void update(DocumentEvent event) {
-            try {
-                IDocument document = getDocument();
-                if (document != null) {
-                    Position[] positions = document.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-                    for (int i = 0; i < positions.length; i++) {
-                        Position position = positions[i];
-                        if (position.offset == event.fOffset && position.length<=event.fLength) {
-                            position.delete();
-                        }
-                        if (position.isDeleted) {
-                            document.removePosition(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY, position);
-                        }
-                    }
-                }
-            } catch (BadPositionCategoryException e) {
-            }
-        }
-    };
-
-    /**
-     * Constructs a new viewer in the given parent for the specified console.
-     * 
-     * @param parent
-     *            containing widget
-     * @param console
-     *            text console
-     */
-    public TextConsoleViewer(Composite parent, TextConsole console) {
-        super(parent, null, SWT.V_SCROLL | SWT.H_SCROLL);
-        this.console = console;
-
-        IDocument document = console.getDocument();
-        setDocument(document);
-
-        StyledText styledText = getTextWidget();
-        styledText.setDoubleClickEnabled(true);
-        styledText.addLineStyleListener(this);
-        styledText.addLineBackgroundListener(this);
-        styledText.setEditable(true);
-        setFont(console.getFont());
-        styledText.addMouseTrackListener(this);
-        styledText.addListener(SWT.MouseUp, mouseUpListener);
-
-        ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
-        propertyChangeListener = new HyperlinkColorChangeListener();
-        colorRegistry.addListener(propertyChangeListener);
-
-        revealJob.setSystem(true);
-        document.addDocumentListener(documentListener);
-        document.addPositionUpdater(positionUpdater);
-    }
-
-    /**
-     * Sets the tab width used by this viewer.
-     * 
-     * @param tabWidth
-     *            the tab width used by this viewer
-     */
-    public void setTabWidth(int tabWidth) {
-        StyledText styledText = getTextWidget();
-        int oldWidth = styledText.getTabs();
-        if (tabWidth != oldWidth) {
-            styledText.setTabs(tabWidth);
-        }
-    }
-
-    /**
-     * Sets the font used by this viewer.
-     * 
-     * @param font
-     *            the font used by this viewer
-     */
-    public void setFont(Font font) {
-        StyledText styledText = getTextWidget();
-        Font oldFont = styledText.getFont();
-        if (oldFont == font) {
-            return;
-        }
-        if (font == null || !(font.equals(oldFont))) {
-            styledText.setFont(font);
-        }
-    }
-
-    /**
-     * Positions the cursor at the end of the document.
-     */
-    protected void revealEndOfDocument() {
-        revealJob.schedule(50);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.custom.LineStyleListener#lineGetStyle(org.eclipse.swt.custom.LineStyleEvent)
-     */
-    public void lineGetStyle(LineStyleEvent event) {
-        IDocument document = getDocument();
-        if (document != null && document.getLength() > 0) {
-            ArrayList ranges = new ArrayList();
-            int offset = event.lineOffset;
-            int length = event.lineText.length();
-
-            StyleRange[] partitionerStyles = ((IConsoleDocumentPartitioner) document.getDocumentPartitioner()).getStyleRanges(event.lineOffset, event.lineText.length());
-            if (partitionerStyles != null) {
-                for (int i = 0; i < partitionerStyles.length; i++) {
-                    ranges.add(partitionerStyles[i]);
-                }
-            } else {
-                ranges.add(new StyleRange(offset, length, null, null));
-            }
-
-            try {
-                Position[] positions = getDocument().getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-                Position[] overlap = findPosition(offset, length, positions);
-                Color color = JFaceColors.getHyperlinkText(Display.getCurrent());
-                if (overlap != null) {
-                    for (int i = 0; i < overlap.length; i++) {
-                        Position position = overlap[i];
-                        StyleRange linkRange = new StyleRange(position.offset, position.length, color, null);
-                        linkRange.underline = true;
-                        override(ranges, linkRange);
-                    }
-                }
-            } catch (BadPositionCategoryException e) {
-            }
-
-            if (ranges.size() > 0) {
-                event.styles = (StyleRange[]) ranges.toArray(new StyleRange[ranges.size()]);
-            }
-        }
-    }
-
-    private void override(List ranges, StyleRange newRange) {
-        if (ranges.isEmpty()) {
-            ranges.add(newRange);
-            return;
-        }
-
-        int start = newRange.start;
-        int end = start + newRange.length;
-        for (int i = 0; i < ranges.size(); i++) {
-            StyleRange existingRange = (StyleRange) ranges.get(i);
-            int rEnd = existingRange.start + existingRange.length;
-            if (end <= existingRange.start || start >= rEnd) {
-                continue;
-            }
-
-            if (start < existingRange.start && end > existingRange.start) {
-                start = existingRange.start;
-            }
-
-            if (start >= existingRange.start && end <= rEnd) {
-                existingRange.length = start - existingRange.start;
-                ranges.add(++i, newRange);
-                if (end != rEnd) {
-                    ranges.add(++i, new StyleRange(end, rEnd - end - 1, existingRange.foreground, existingRange.background));
-                }
-                return;
-            } else if (start >= existingRange.start && start < rEnd) {
-                existingRange.length = start - existingRange.start;
-                ranges.add(++i, newRange);
-            } else if (end >= rEnd) {
-                ranges.remove(i);
-            } else {
-                ranges.add(++i, new StyleRange(end + 1, rEnd - end + 1, existingRange.foreground, existingRange.background));
-            }
-        }
-    }
-
-    /**
-     * Binary search for the positions overlapping the given range
-     * 
-     * @param offset
-     *            the offset of the range
-     * @param length
-     *            the length of the range
-     * @param positions
-     *            the positions to search
-     * @return the positions overlapping the given range, or <code>null</code>
-     */
-    private Position[] findPosition(int offset, int length, Position[] positions) {
-
-        if (positions.length == 0)
-            return null;
-
-        int rangeEnd = offset + length;
-        int left = 0;
-        int right = positions.length - 1;
-        int mid = 0;
-        Position position = null;
-
-        while (left < right) {
-
-            mid = (left + right) / 2;
-
-            position = positions[mid];
-            if (rangeEnd < position.getOffset()) {
-                if (left == mid)
-                    right = left;
-                else
-                    right = mid - 1;
-            } else if (offset > (position.getOffset() + position.getLength() - 1)) {
-                if (right == mid)
-                    left = right;
-                else
-                    left = mid + 1;
-            } else {
-                left = right = mid;
-            }
-        }
-
-        List list = new ArrayList();
-        int index = left - 1;
-        if (index >= 0) {
-            position = positions[index];
-            while (index >= 0 && (position.getOffset() + position.getLength()) > offset) {
-                index--;
-                if (index > 0) {
-                    position = positions[index];
-                }
-            }
-        }
-        index++;
-        position = positions[index];
-        while (index < positions.length && (position.getOffset() < rangeEnd)) {
-            list.add(position);
-            index++;
-            if (index < positions.length) {
-                position = positions[index];
-            }
-        }
-
-        if (list.isEmpty()) {
-            return null;
-        }
-        return (Position[]) list.toArray(new Position[list.size()]);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.custom.LineBackgroundListener#lineGetBackground(org.eclipse.swt.custom.LineBackgroundEvent)
-     */
-    public void lineGetBackground(LineBackgroundEvent event) {
-        event.lineBackground = null;
-    }
-
-    /**
-     * Returns the hand cursor.
-     * 
-     * @return the hand cursor
-     */
-    protected Cursor getHandCursor() {
-        if (handCursor == null) {
-            handCursor = new Cursor(ConsolePlugin.getStandardDisplay(), SWT.CURSOR_HAND);
-        }
-        return handCursor;
-    }
-
-    /**
-     * Returns the text cursor.
-     * 
-     * @return the text cursor
-     */
-    protected Cursor getTextCursor() {
-        if (textCursor == null) {
-            textCursor = new Cursor(ConsolePlugin.getStandardDisplay(), SWT.CURSOR_IBEAM);
-        }
-        return textCursor;
-    }
-
-    /**
-     * Notification a hyperlink has been entered.
-     * 
-     * @param link
-     *            the link that was entered
-     */
-    protected void linkEntered(IHyperlink link) {
-        Control control = getTextWidget();
-        if (hyperlink != null) {
-            linkExited(hyperlink);
-        }
-        hyperlink = link;
-        hyperlink.linkEntered();
-        control.setCursor(getHandCursor());
-        control.redraw();
-        control.addMouseListener(this);
-    }
-
-    /**
-     * Notification a link was exited.
-     * 
-     * @param link
-     *            the link that was exited
-     */
-    protected void linkExited(IHyperlink link) {
-        link.linkExited();
-        hyperlink = null;
-        Control control = getTextWidget();
-        control.setCursor(getTextCursor());
-        control.redraw();
-        control.removeMouseListener(this);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseTrackListener#mouseEnter(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseEnter(MouseEvent e) {
-        getTextWidget().addMouseMoveListener(this);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseTrackListener#mouseExit(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseExit(MouseEvent e) {
-        getTextWidget().removeMouseMoveListener(this);
-        if (hyperlink != null) {
-            linkExited(hyperlink);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseHover(MouseEvent e) {
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseMove(MouseEvent e) {
-        int offset = -1;
-        try {
-            Point p = new Point(e.x, e.y);
-            offset = getTextWidget().getOffsetAtLocation(p);
-        } catch (IllegalArgumentException ex) {
-            // out of the document range
-        }
-        updateLinks(offset);
-    }
-
-    /**
-     * The cursor has just be moved to the given offset, the mouse has hovered
-     * over the given offset. Update link rendering.
-     * 
-     * @param offset
-     */
-    protected void updateLinks(int offset) {
-        if (offset >= 0) {
-            IHyperlink link = getHyperlink(offset);
-            if (link != null) {
-                if (link.equals(hyperlink)) {
-                    return;
-                }
-                linkEntered(link);
-                return;
-            }
-        }
-        if (hyperlink != null) {
-            linkExited(hyperlink);
-        }
-    }
-
-    /**
-     * Returns the currently active hyperlink or <code>null</code> if none.
-     * 
-     * @return the currently active hyperlink or <code>null</code> if none
-     */
-    public IHyperlink getHyperlink() {
-        return hyperlink;
-    }
-
-    /**
-     * Returns the hyperlink at the specified offset, or <code>null</code> if
-     * none.
-     * 
-     * @param offset
-     *            offset at which a hyperlink has been requested
-     * @return hyperlink at the specified offset, or <code>null</code> if none
-     */
-    public IHyperlink getHyperlink(int offset) {
-        if (offset >= 0 && console != null) {
-            return console.getHyperlink(offset);
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseDoubleClick(MouseEvent e) {
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseDown(MouseEvent e) {
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
-     */
-    public void mouseUp(MouseEvent e) {
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.TextViewer#createDocumentAdapter()
-     */
-    protected IDocumentAdapter createDocumentAdapter() {
-        if (documentAdapter == null) {
-            documentAdapter = new ConsoleDocumentAdapter(consoleWidth = -1);
-        }
-        return documentAdapter;
-    }
-
-    /**
-     * Sets the console to have a fixed character width. Use -1 to indicate that
-     * a fixed width should not be used.
-     * 
-     * @param width
-     *            fixed character width of the console, or -1
-     */
-    public void setConsoleWidth(int width) {
-        if (consoleWidth != width) {
-            consoleWidth = width;
-            ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
-                public void run() {
-                    if (documentAdapter != null) {
-                        documentAdapter.setWidth(consoleWidth);
-                    }
-                }
-            });
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.TextViewer#handleDispose()
-     */
-    protected void handleDispose() {
-        IDocument document = getDocument();
-        if (document != null) {
-            document.removeDocumentListener(documentListener);
-            document.removePositionUpdater(positionUpdater);
-        }
-
-        StyledText styledText = getTextWidget();
-        styledText.removeLineStyleListener(this);
-        styledText.removeLineBackgroundListener(this);
-        styledText.removeMouseTrackListener(this);
-
-        if(handCursor != null) {
-        	handCursor.dispose();
-        }
-        handCursor = null;
-        if(textCursor != null) {
-        	textCursor.dispose();
-        }
-        textCursor = null;
-        hyperlink = null;
-        console = null;
-
-        ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
-        colorRegistry.removeListener(propertyChangeListener);
-        
-        super.handleDispose();
-    }
-
-    class HyperlinkColorChangeListener implements IPropertyChangeListener {
-        public void propertyChange(PropertyChangeEvent event) {
-            if (event.getProperty().equals(JFacePreferences.ACTIVE_HYPERLINK_COLOR) || event.getProperty().equals(JFacePreferences.HYPERLINK_COLOR)) {
-                getTextWidget().redraw();
-            }
-        }
-
-    }
-
-    /*
-     * work around to memory leak in TextViewer$WidgetCommand
-     */
-    protected void updateTextListeners(WidgetCommand cmd) {
-        super.updateTextListeners(cmd);
-        cmd.preservedText = null;
-        cmd.event = null;
-        cmd.text = null;
-    }
-
-    protected void internalRevealRange(int start, int end) {
-        StyledText textWidget = getTextWidget();
-        int startLine = documentAdapter.getLineAtOffset(start);
-        int endLine = documentAdapter.getLineAtOffset(end);
-
-        int top = textWidget.getTopIndex();
-        if (top > -1) {
-            // scroll vertically
-            int lines = getVisibleLinesInViewport();
-            int bottom = top + lines;
-
-            // two lines at the top and the bottom should always be left
-            // if window is smaller than 5 lines, always center position is
-            // chosen
-            int bufferZone = 2;
-            if (startLine >= top + bufferZone && startLine <= bottom - bufferZone && endLine >= top + bufferZone && endLine <= bottom - bufferZone) {
-
-                // do not scroll at all as it is already visible
-            } else {
-                int delta = Math.max(0, lines - (endLine - startLine));
-                textWidget.setTopIndex(startLine - delta / 3);
-                updateViewportListeners(INTERNAL);
-            }
-
-            // scroll horizontally
-            if (endLine < startLine) {
-                endLine += startLine;
-                startLine = endLine - startLine;
-                endLine -= startLine;
-            }
-
-            int startPixel = -1;
-            int endPixel = -1;
-
-            if (endLine > startLine) {
-                // reveal the beginning of the range in the start line
-                IRegion extent = getExtent(start, start);
-                startPixel = extent.getOffset() + textWidget.getHorizontalPixel();
-                endPixel = startPixel;
-            } else {
-                IRegion extent = getExtent(start, end);
-                startPixel = extent.getOffset() + textWidget.getHorizontalPixel();
-                endPixel = startPixel + extent.getLength();
-            }
-
-            int visibleStart = textWidget.getHorizontalPixel();
-            int visibleEnd = visibleStart + textWidget.getClientArea().width;
-
-            // scroll only if not yet visible
-            if (startPixel < visibleStart || visibleEnd < endPixel) {
-                // set buffer zone to 10 pixels
-                bufferZone = 10;
-                int newOffset = visibleStart;
-                int visibleWidth = visibleEnd - visibleStart;
-                int selectionPixelWidth = endPixel - startPixel;
-
-                if (startPixel < visibleStart)
-                    newOffset = startPixel;
-                else if (selectionPixelWidth + bufferZone < visibleWidth)
-                    newOffset = endPixel + bufferZone - visibleWidth;
-                else
-                    newOffset = startPixel;
-
-                float index = ((float) newOffset) / ((float) getAverageCharWidth());
-
-                textWidget.setHorizontalIndex(Math.round(index));
-            }
-
-        }
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java
deleted file mode 100644
index 6b0d874..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-import org.eclipse.ui.internal.console.ConsolePluginImages;
-import org.eclipse.ui.internal.console.IConsoleHelpContextIds;
-import org.eclipse.ui.internal.console.IInternalConsoleConstants;
-
-/**
- * Clears the output in a text console.
- * <p>
- * Clients may instantiate this class; this class is not intended to 
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ClearOutputAction extends Action {
-
-	private ITextViewer fViewer;
-	private TextConsole fIOConsole;
-
-	/**
-	 * Constructs a clear output action.
-	 * 
-	 * @since 3.1
-	 */
-	private ClearOutputAction() {
-		super(ConsoleMessages.ClearOutputAction_title); 
-		setToolTipText(ConsoleMessages.ClearOutputAction_toolTipText); 
-		setHoverImageDescriptor(ConsolePluginImages.getImageDescriptor(IConsoleConstants.IMG_LCL_CLEAR));		
-		setDisabledImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_DLCL_CLEAR));
-		setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_CLEAR));
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CLEAR_CONSOLE_ACTION);	    
-	}
-	
-	/**
-	 * Constructs a clear output action for an I/O console. Clearing an I/O console
-	 * is performed via API on the <code>IOConsole</code>, rather than clearing
-	 * its document directly.
-	 * 
-	 * @param ioConsole I/O console the action is associated with
-	 * @since 3.1
-	 */
-	public ClearOutputAction(TextConsole ioConsole) {
-		this();
-		fIOConsole = ioConsole;
-	}
-	
-	/**
-	 * Constructs an action to clear the document associated with a text viewer.
-	 * 
-	 * @param viewer viewer whose document this action is associated with 
-	 */
-	public ClearOutputAction(ITextViewer viewer) {
-	    this();
-	    fViewer = viewer;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		BusyIndicator.showWhile(ConsolePlugin.getStandardDisplay(), new Runnable() {
-			public void run() {
-			    if (fIOConsole == null) {
-					IDocument document = fViewer.getDocument();
-					if (document != null) {
-						document.set(""); //$NON-NLS-1$
-					}
-					fViewer.setSelectedRange(0, 0);
-			    } else {
-			        fIOConsole.clearConsole();
-			    }
-			}
-		});
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java
deleted file mode 100644
index 3891847..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-import org.eclipse.ui.internal.console.ConsolePluginImages;
-import org.eclipse.ui.internal.console.IInternalConsoleConstants;
-
-/**
- * Removes a console from the console manager.
- * <p>
- * Clients may instantiate this class; this class is not intended to 
- * be subclassed.
- * </p>
- * @since 3.1
- */
-public class CloseConsoleAction extends Action {
-    
-    private IConsole fConsole;
-    
-    public CloseConsoleAction(IConsole console) {
-        super(ConsoleMessages.CloseConsoleAction_0, ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_CLOSE)); 
-        setToolTipText(ConsoleMessages.CloseConsoleAction_1); 
-        fConsole = console;
-    }
-
-    public void run() {
-        ConsolePlugin.getDefault().getConsoleManager().removeConsoles(new IConsole[]{fConsole});
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java
deleted file mode 100644
index b3809ea..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Common function for actions that operate on a text viewer.
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.0
- */
-public class TextViewerAction extends Action implements IUpdate {
-
-	private int fOperationCode= -1;
-	private ITextOperationTarget fOperationTarget;
-
-	/**
-	 * Constructs a new action in the given text viewer with
-	 * the specified operation code.
-	 * 
-	 * @param viewer
-	 * @param operationCode
-	 */
-	public TextViewerAction(ITextViewer viewer, int operationCode) {
-		fOperationCode= operationCode;
-		fOperationTarget= viewer.getTextOperationTarget();
-		update();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.IUpdate#update()
-	 * 
-	 * Updates the enabled state of the action.
-	 * Fires a property change if the enabled state changes.
-	 * 
-	 * @see org.eclipse.jface.action.Action#firePropertyChange(String, Object, Object)
-	 */
-	public void update() {
-
-		boolean wasEnabled= isEnabled();
-		boolean isEnabled= (fOperationTarget != null && fOperationTarget.canDoOperation(fOperationCode));
-		setEnabled(isEnabled);
-
-		if (wasEnabled != isEnabled) {
-			firePropertyChange(ENABLED, wasEnabled ? Boolean.TRUE : Boolean.FALSE, isEnabled ? Boolean.TRUE : Boolean.FALSE);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		if (fOperationCode != -1 && fOperationTarget != null) {
-			fOperationTarget.doOperation(fOperationCode);
-		}
-	}
-	
-	/**
-	 * Configures this action with a label, tool tip, and description.
-	 * 
-	 * @param text action label
-	 * @param toolTipText action tool tip
-	 * @param description action description
-	 */
-	public void configureAction(String text, String toolTipText, String description) {
-		setText(text);
-		setToolTipText(toolTipText);
-		setDescription(description);
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java
deleted file mode 100644
index 879e1f4..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-
-import com.ibm.icu.text.MessageFormat;
-
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-
-/**
- * Action to position a text viewer to a specific line.
- * <p>
- * Clients may instantiate this class; this class is not intended to 
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class TextViewerGotoLineAction extends TextViewerAction {
-
-	/**
-	 * Validates whether the text found in the input field of the
-	 * dialog forms a valid line number, i.e. one to which can be 
-	 * jumped.
-	 */
-	class NumberValidator implements IInputValidator {
-
-		public String isValid(String input) {
-			try {
-				int i= Integer.parseInt(input);
-				if (i <= 0 || fLastLine < i)
-					return ConsoleMessages.TextViewerGotoLineAction_Line_number_out_of_range_1; 
-
-			} catch (NumberFormatException x) {
-				return ConsoleMessages.TextViewerGotoLineAction_Not_a_number_2; 
-			}
-
-			return null;
-		}
-	}
-
-	protected int fLastLine;
-	protected ITextViewer fTextViewer;
-	
-	/**
-	 * Constructs a goto line action for the viewer using the provided resource bundle
-	 */
-	public TextViewerGotoLineAction(ITextViewer viewer) {
-		super(viewer, -1);
-		fTextViewer= viewer;
-		setText(ConsoleMessages.TextViewerGotoLineAction_Go_to__Line____Ctrl_L_4); 
-		setToolTipText(ConsoleMessages.TextViewerGotoLineAction_Go_To_Line_1); 
-		setDescription(ConsoleMessages.TextViewerGotoLineAction_Go_To_Line_1);		 
-	}
-	
-	/**
-	 * @see TextViewerAction#update()
-	 */
-	public void update() {
-	}
-
-	/**
-	 * Jumps to the line.
-	 */
-	protected void gotoLine(int line) {
-
-		IDocument document= fTextViewer.getDocument();
-		try {
-			int start= document.getLineOffset(line);
-			int length= document.getLineLength(line);
-			fTextViewer.getTextWidget().setSelection(start, start + length);
-			fTextViewer.revealRange(start, length);
-		} catch (BadLocationException x) {
-			ConsolePlugin.errorDialog(fTextViewer.getTextWidget().getShell(), ConsoleMessages.TextViewerGotoLineAction_Go_To_Line_1, ConsoleMessages.TextViewerGotoLineAction_Exceptions_occurred_attempt_to_go_to_line_2, x); // 
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		try {
-			Point selection= fTextViewer.getTextWidget().getSelection();
-			IDocument document= fTextViewer.getDocument();
-			fLastLine= document.getLineOfOffset(document.getLength()) + 1;
-			int startLine= selection == null ? 1 : fTextViewer.getTextWidget().getLineAtOffset(selection.x) + 1;
-			String title= ConsoleMessages.TextViewerGotoLineAction_Go_To_Line_1; 
-			String message= MessageFormat.format(ConsoleMessages.TextViewerGotoLineAction_Enter_line_number__8, new Object[] {new Integer(fLastLine)}); 
-			String value= Integer.toString(startLine);
-			Shell activeShell= fTextViewer.getTextWidget().getShell();
-			InputDialog d= new InputDialog(activeShell, title, message, value, new NumberValidator());
-			if (d.open() == Window.OK) {
-				try {
-					int line= Integer.parseInt(d.getValue());
-					gotoLine(line - 1);
-				} catch (NumberFormatException x) {
-					ConsolePlugin.errorDialog(activeShell, ConsoleMessages.TextViewerGotoLineAction_Go_To_Line_1, ConsoleMessages.TextViewerGotoLineAction_Exceptions_occurred_attempt_to_go_to_line_2, x); // 
-				}
-			}
-		} catch (BadLocationException x) {
-			ConsolePlugin.errorDialog(fTextViewer.getTextWidget().getShell(), ConsoleMessages.TextViewerGotoLineAction_Go_To_Line_1, ConsoleMessages.TextViewerGotoLineAction_Exceptions_occurred_attempt_to_go_to_line_2, x); // 
-			return;
-		}
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html
deleted file mode 100644
index cfb538c..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html
+++ /dev/null
@@ -1,20 +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>Console Actions</title>
-</head>
-
-<body link="#0000FF" vlink="#800080">
-
-<p align="left"> Application programming interfaces for Eclipse console specific
-  actions.</p>
-
-<h2 align="left">Package Specification</h2>
-
-<p>This package provides a set of actions related to the Eclipse console.</p>
-<p>Clients are allowed to instantiate classes from this package. The classes are 
-  not intended to be subclassed.</p>
-</body>
-</html>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/package.html b/org.eclipse.ui.console/src/org/eclipse/ui/console/package.html
deleted file mode 100644
index f6debb1..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/package.html
+++ /dev/null
@@ -1,36 +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 Console</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Application programming interfaces for interaction
-with the Eclipse console.</p>
-
-<h2>Package Specification</h2>
-
-<p>The Eclipse platform UI console plug-in provides a set of classes and interfaces to
-facilitate the creation and display of consoles in the <b>ConsoleView</b>. This package
-contains a generic abstract console (<b>AbstractConsole</b>) that provides some basic 
-functionality as well as two complete implementations of consoles that may be subclassed.
- <p> The class <b>TextConsole</b> supports regular expression matching and hyperlinks. 
- Clients must provide their own document partitioner.
- </p>
-<p><b>IOConsole</b> extends <b>TextConsole</b> and provides support for creating consoles based upon
-input and output streams via the use of <b>IOConsoleOutputStream</b> and 
-<b>IOConsoleInputStream</b>. IOConsole is not an abstract class, it may be used as is or
-subclassed.
- </p>
-<p>A console manager (<b>IConsoleManager</b>) manages all active consoles, and 
-  provides notification of consoles which are added and removed. Consoles are 
-  displayed in a page book view. Each console implementation is reponsible for 
-  creating its page (<b>IPageBookView</b>), which provides freedom of presentation 
-  to the console implementation. A single console may be displayed simultaneously 
-  in multiple console views, in different workbench windows.
-</p>
-</body>
-</html>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java
deleted file mode 100644
index ddf2491..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-
-/**
- * A console document. Requires synchronization for multi-threaded access.
- */
-public class ConsoleDocument extends Document {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#get(int, int)
-	 */
-	public synchronized String get(int pos, int length) throws BadLocationException {
-		return super.get(pos, length);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLength()
-	 */
-	public synchronized int getLength() {
-		return super.getLength();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLineDelimiter(int)
-	 */
-	public synchronized String getLineDelimiter(int line) throws BadLocationException {
-		return super.getLineDelimiter(line);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLineInformation(int)
-	 */
-	public synchronized IRegion getLineInformation(int line) throws BadLocationException {
-		return super.getLineInformation(line);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLineInformationOfOffset(int)
-	 */
-	public synchronized IRegion getLineInformationOfOffset(int offset) throws BadLocationException {
-		return super.getLineInformationOfOffset(offset);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLineLength(int)
-	 */
-	public synchronized int getLineLength(int line) throws BadLocationException {
-		return super.getLineLength(line);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLineOffset(int)
-	 */
-	public synchronized int getLineOffset(int line) throws BadLocationException {
-		return super.getLineOffset(line);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getLineOfOffset(int)
-	 */
-	public int getLineOfOffset(int pos) throws BadLocationException {
-		return super.getLineOfOffset(pos);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getNumberOfLines()
-	 */
-	public synchronized int getNumberOfLines() {
-		return super.getNumberOfLines();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#replace(int, int, java.lang.String)
-	 */
-	public synchronized void replace(int pos, int length, String text) throws BadLocationException {
-		super.replace(pos, length, text);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#set(java.lang.String)
-	 */
-    public synchronized void set(String text) {
-        super.set(text);
-    }
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.AbstractDocument#completeInitialization()
-	 */
-    protected void completeInitialization() {
-        super.completeInitialization();
-        addPositionUpdater(new HyperlinkUpdater());
-    }
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#addPosition(java.lang.String, org.eclipse.jface.text.Position)
-	 */    
-    public synchronized void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException {
-        super.addPosition(category, position);
-    }
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#removePosition(java.lang.String, org.eclipse.jface.text.Position)
-	 */    
-    public synchronized void removePosition(String category, Position position) throws BadPositionCategoryException {
-        super.removePosition(category, position);
-    }
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocument#getPositions(java.lang.String)
-	 */    
-    public synchronized Position[] getPositions(String category) throws BadPositionCategoryException {
-        return super.getPositions(category);
-    }    
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java
deleted file mode 100644
index 456e834..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentAdapter;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.swt.custom.TextChangeListener;
-import org.eclipse.swt.custom.TextChangedEvent;
-import org.eclipse.swt.custom.TextChangingEvent;
-
-/**
- * Adapts a Console's document to the viewer StyledText widget. Allows proper line
- * wrapping of fixed width consoles without having to add line delimiters to the StyledText.
- * 
- * By using this adapter, the offset of any character is the same in both the widget and the
- * document.
- * 
- * @since 3.1
- */
-public class ConsoleDocumentAdapter implements IDocumentAdapter, IDocumentListener {
-    
-    private int consoleWidth = -1;
-    private List textChangeListeners;
-    private IDocument document;
-    
-    int[] offsets = new int[5000];
-    int[] lengths = new int[5000];
-    private int regionCount = 1;
-    private Pattern pattern = Pattern.compile("$", Pattern.MULTILINE); //$NON-NLS-1$
-    
-    
-    public ConsoleDocumentAdapter(int width) {
-        textChangeListeners = new ArrayList();
-        consoleWidth = width;
-    }
-    
-    /*
-     * repairs lines list from the beginning of the line containing the offset of any 
-     * DocumentEvent, to the end of the Document.
-     */
-    private void repairLines(int eventOffset) {
-        if (document == null) {
-            return;
-        }
-        try {
-            int docLine = document.getLineOfOffset(eventOffset);
-            int docLineOffset = document.getLineOffset(docLine);
-            int widgetLine = getLineAtOffset(docLineOffset);
-            
-            for (int i=regionCount-1; i>=widgetLine; i--) {
-                regionCount--;
-            }
-            
-            int numLinesInDoc = document.getNumberOfLines();
-
-            int nextOffset =  document.getLineOffset(docLine);
-            for (int i = docLine; i<numLinesInDoc; i++) {
-                int offset = nextOffset;
-                int length = document.getLineLength(i);
-                nextOffset += length;
-                
-                if (length == 0) {
-                    addRegion(offset, 0);
-                } else {
-                    while (length > 0) {
-                        int trimmedLength = length;
-                        String lineDelimiter = document.getLineDelimiter(i);
-                        int lineDelimiterLength = 0;
-                        if (lineDelimiter != null) {
-                            lineDelimiterLength = lineDelimiter.length(); 
-                            trimmedLength -= lineDelimiterLength;
-                        }
-
-                        if (consoleWidth > 0 && consoleWidth < trimmedLength) {
-                            addRegion(offset, consoleWidth);
-                            offset += consoleWidth;
-                            length -= consoleWidth;
-                        } else {
-                            addRegion(offset, length);
-                            offset += length;
-                            length -= length;
-                        }
-                    }
-                }
-            }
-        } catch (BadLocationException e) {
-        }
-        
-        if (regionCount == 0) {
-            addRegion(0, document.getLength());
-        }
-    }
-    
-    private void addRegion(int offset, int length) {
-        if (regionCount == 0) {
-            offsets[0] = offset;
-            lengths[0] = length;
-        } else {
-            if (regionCount == offsets.length) {
-                growRegionArray(regionCount * 2);
-            }
-            offsets[regionCount] = offset;
-            lengths[regionCount] = length;
-        }
-        regionCount++;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.IDocumentAdapter#setDocument(org.eclipse.jface.text.IDocument)
-     */
-    public void setDocument(IDocument doc) {
-        if (document != null) {
-            document.removeDocumentListener(this);
-        }
-        
-        document = doc;
-        
-        if (document != null) {
-            document.addDocumentListener(this);
-            repairLines(0);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#addTextChangeListener(org.eclipse.swt.custom.TextChangeListener)
-     */
-    public synchronized void addTextChangeListener(TextChangeListener listener) {
-		Assert.isNotNull(listener);
-		if (!textChangeListeners.contains(listener)) {
-			textChangeListeners.add(listener);
-		}
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#removeTextChangeListener(org.eclipse.swt.custom.TextChangeListener)
-     */
-    public synchronized void removeTextChangeListener(TextChangeListener listener) {
-        if(textChangeListeners != null) {
-            Assert.isNotNull(listener);
-            textChangeListeners.remove(listener);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getCharCount()
-     */
-    public int getCharCount() {
-        return document.getLength();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getLine(int)
-     */
-    public String getLine(int lineIndex) {
-        try {
-            StringBuffer line = new StringBuffer(document.get(offsets[lineIndex], lengths[lineIndex]));
-            int index = line.length() - 1;
-            while(index > -1 && (line.charAt(index)=='\n' || line.charAt(index)=='\r')) {
-                index--;
-            }
-            return new String(line.substring(0, index+1));
-        } catch (BadLocationException e) {
-        }
-        return ""; //$NON-NLS-1$    
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getLineAtOffset(int)
-     */
-    public int getLineAtOffset(int offset) {
-        if (offset == 0 || regionCount <= 1) {
-            return 0;
-        }
-        
-        if (offset == document.getLength()) {
-            return regionCount-1;
-        }
-        
-		int left= 0;
-		int right= regionCount-1;
-		int midIndex = 0;
-		
-		while (left <= right) {
-			if(left == right) {
-	    		return right;
-	    	}
-		    midIndex = (left + right) / 2;
-		    
-		    if (offset < offsets[midIndex]) {
-		        right = midIndex;
-		    } else if (offset >= offsets[midIndex] + lengths[midIndex]) {
-		        left = midIndex + 1;
-		    } else {
-		        return midIndex;
-		    }
-		}
-		
-		return midIndex;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getLineCount()
-     */
-    public int getLineCount() {
-        return regionCount;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getLineDelimiter()
-     */
-    public String getLineDelimiter() {
-        return System.getProperty("line.separator"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getOffsetAtLine(int)
-     */
-    public int getOffsetAtLine(int lineIndex) {
-        return offsets[lineIndex];
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#getTextRange(int, int)
-     */
-    public String getTextRange(int start, int length) {
-        try {
-            return document.get(start, length);
-        } catch (BadLocationException e) {
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#replaceTextRange(int, int, java.lang.String)
-     */
-    public void replaceTextRange(int start, int replaceLength, String text) {
-        try {
-            document.replace(start, replaceLength, text);
-        } catch (BadLocationException e) {
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.custom.StyledTextContent#setText(java.lang.String)
-     */
-    public synchronized void setText(String text) {
-        TextChangedEvent changeEvent = new TextChangedEvent(this);
-        for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
-            TextChangeListener element = (TextChangeListener) iter.next();
-            element.textSet(changeEvent);
-        }    
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-     */
-    public synchronized void documentAboutToBeChanged(DocumentEvent event) {
-        if (document == null) {
-            return;
-        }
-        
-        TextChangingEvent changeEvent = new TextChangingEvent(this);
-        changeEvent.start = event.fOffset;
-        changeEvent.newText = (event.fText == null ? "" : event.fText); //$NON-NLS-1$
-        changeEvent.replaceCharCount = event.fLength;
-        changeEvent.newCharCount = (event.fText == null ? 0 : event.fText.length());
-        
-        int first = getLineAtOffset(event.fOffset);
-        int lOffset = Math.max(event.fOffset + event.fLength - 1, 0);
-		int last = getLineAtOffset(lOffset);
-        changeEvent.replaceLineCount = Math.max(last - first, 0);
-     
-        int newLineCount = countNewLines(event.fText);
-		changeEvent.newLineCount = newLineCount >= 0 ? newLineCount : 0;
-
-        if (changeEvent.newLineCount > offsets.length-regionCount) {
-            growRegionArray(changeEvent.newLineCount);
-        }
-        
-        for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
-            TextChangeListener element = (TextChangeListener) iter.next();
-            element.textChanging(changeEvent);
-        }
-    }
-
-    private void growRegionArray(int minSize) {
-        int size = Math.max(offsets.length*2, minSize*2);
-        int[] newOffsets = new int[size];
-        System.arraycopy(offsets, 0, newOffsets, 0, regionCount);
-        offsets = newOffsets;
-        int[] newLengths = new int[size];
-        System.arraycopy(lengths, 0, newLengths, 0, regionCount);
-        lengths = newLengths;
-    }
-
-    private int countNewLines(String string) {
-		int count = 0;
-		
-		if (string.length() == 0) return 0;
-
-		// work around to
-		// http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4994840
-		// see bug 84641
-		int offset = string.length() - 1;
-		while (string.charAt(offset) == '\r') {
-			offset--;
-			count++;
-		}
-		if (offset < (string.length() - 1)) {
-			string = string.substring(0, offset);
-		}
-		
-		int lastIndex = 0;
-		int index = 0;
-		
-		Matcher matcher = pattern.matcher(string);
-		
-		while (matcher.find()) {
-			index = matcher.start();
-			
-			if (index == 0)
-				count++;
-			else if (index!=string.length())
-				count++;
-			
-			if (consoleWidth > 0) {
-				int lineLen = index - lastIndex + 1;
-				if (index == 0) lineLen += lengths[regionCount-1];
-				count += lineLen/consoleWidth;
-			}
-			
-			lastIndex = index;
-		}
-		return count;
-	}
-
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
-     */
-    public synchronized void documentChanged(DocumentEvent event) {
-        if (document == null) {
-            return;
-        }
-        
-        repairLines(event.fOffset);
-        
-        TextChangedEvent changeEvent = new TextChangedEvent(this);
-
-        for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
-            TextChangeListener element = (TextChangeListener) iter.next();
-            element.textChanged(changeEvent);
-        }
-    }
-
-    /**
-     * sets consoleWidth, repairs line information, then fires event to the viewer text widget.
-     * @param width The console's width
-     */
-    public void setWidth(int width) {
-        if (width != consoleWidth) {
-            consoleWidth = width;
-            repairLines(0);
-            TextChangedEvent changeEvent = new TextChangedEvent(this);
-            for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
-                TextChangeListener element = (TextChangeListener) iter.next();
-                element.textSet(changeEvent);
-            }
-        }
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java
deleted file mode 100644
index 6af6354..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Drop down action in the console to select the console to display.
- */
-class ConsoleDropDownAction extends Action implements IMenuCreator, IConsoleListener, IUpdate {
-
-	private IConsoleView fView;
-	private Menu fMenu;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.IUpdate#update()
-	 */
-	public void update() {
-		IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles();
-		setEnabled(consoles.length > 1);
-	}
-
-	public ConsoleDropDownAction(IConsoleView view) {
-		fView= view;
-		setText(ConsoleMessages.ConsoleDropDownAction_0); 
-		setToolTipText(ConsoleMessages.ConsoleDropDownAction_1); 
-		setImageDescriptor(ConsolePluginImages.getImageDescriptor(IConsoleConstants.IMG_VIEW_CONSOLE));
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CONSOLE_DISPLAY_CONSOLE_ACTION);
-		setMenuCreator(this);
-		ConsolePlugin.getDefault().getConsoleManager().addConsoleListener(this);
-		update();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IMenuCreator#dispose()
-	 */
-	public void dispose() {
-		if (fMenu != null) {
-			fMenu.dispose();
-		}
-		
-		fView= null;
-		ConsolePlugin.getDefault().getConsoleManager().removeConsoleListener(this);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public Menu getMenu(Menu parent) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
-	 */
-	public Menu getMenu(Control parent) {
-		if (fMenu != null) {
-			fMenu.dispose();
-		}
-		
-		fMenu= new Menu(parent);
-		IConsole[] consoles= ConsolePlugin.getDefault().getConsoleManager().getConsoles();
-		IConsole current = fView.getConsole();
-		for (int i = 0; i < consoles.length; i++) {
-			IConsole console = consoles[i];
-			Action action = new ShowConsoleAction(fView, console);
-			action.setChecked(console.equals(current));
-			addActionToMenu(fMenu, action, i + 1);
-		}
-		return fMenu;
-	}
-	
-	private void addActionToMenu(Menu parent, Action action, int accelerator) {
-	    if (accelerator < 10) {
-		    StringBuffer label= new StringBuffer();
-			//add the numerical accelerator
-			label.append('&');
-			label.append(accelerator);
-			label.append(' ');
-			label.append(action.getText());
-			action.setText(label.toString());
-		}
-		ActionContributionItem item= new ActionContributionItem(action);
-		item.fill(parent, -1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-        ConsoleView consoleView = (ConsoleView) fView;
-        boolean pinned = consoleView.isPinned();
-        if (pinned) {
-            consoleView.setPinned(false);
-        }
-		List stack = consoleView.getConsoleStack();
-		if (stack.size() > 1) {
-			IConsole console = (IConsole) stack.get(1);
-			fView.display(console);
-		}
-        if (pinned) {
-            consoleView.setPinned(true);
-        }
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleListener#consolesAdded(org.eclipse.ui.console.IConsole[])
-	 */
-	public void consolesAdded(IConsole[] consoles) {
-		Display display = ConsolePlugin.getStandardDisplay();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				update();
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * 
-	 * Dispose the menu when a launch is removed, such that the actions in this
-	 * menu do not hang on to associated resources.
-	 * 
-	 * @see org.eclipse.ui.console.IConsoleListener#consolesRemoved(org.eclipse.ui.console.IConsole[])
-	 */
-	public void consolesRemoved(IConsole[] consoles) {
-		Display display = ConsolePlugin.getStandardDisplay();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (fMenu != null) {
-					fMenu.dispose();
-				}
-				update();
-			}
-		});
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java
deleted file mode 100644
index 377d3d5..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.net.URL;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleFactory;
-import org.osgi.framework.Bundle;
-
-/**
- * @since 3.1
- */
-public class ConsoleFactoryExtension implements IPluginContribution {
-
-    private IConfigurationElement fConfig;
-    private Expression fEnablementExpression;
-    private String fLabel;
-    private ImageDescriptor fImageDescriptor;
-    private IConsoleFactory fFactory;
-
-    ConsoleFactoryExtension(IConfigurationElement config) {
-        fConfig = config;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPluginContribution#getLocalId()
-     */
-    public String getLocalId() {
-        return fConfig.getAttribute("id"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPluginContribution#getPluginId()
-     */
-    public String getPluginId() {
-        return fConfig.getContributor().getName();
-    }
-
-    public boolean isEnabled() {
-        try {
-            Expression enablementExpression = getEnablementExpression();
-            if (enablementExpression == null) {
-                return true;
-            } 
-            EvaluationContext context = new EvaluationContext(null, this);
-            EvaluationResult evaluationResult = enablementExpression.evaluate(context);
-            return evaluationResult != EvaluationResult.FALSE;
-        } catch (CoreException e) {
-            ConsolePlugin.log(e);
-            return false;
-        }
-    }
-    
-    public Expression getEnablementExpression() throws CoreException {
-		if (fEnablementExpression == null) {
-			IConfigurationElement[] elements = fConfig.getChildren(ExpressionTagNames.ENABLEMENT);
-			IConfigurationElement enablement = elements.length > 0 ? elements[0] : null; 
-
-			if (enablement != null) {
-			    fEnablementExpression = ExpressionConverter.getDefault().perform(enablement);
-			}
-		}
-		return fEnablementExpression;
-    }
-
-    public String getLabel() {
-        if (fLabel == null) {
-            fLabel = fConfig.getAttribute("label"); //$NON-NLS-1$
-        }
-        return fLabel;
-    }
-
-    /**
-     * @return
-     */
-    public ImageDescriptor getImageDescriptor() {
-        if (fImageDescriptor == null) {
-            String path = fConfig.getAttribute("icon"); //$NON-NLS-1$
-            if (path != null) {
-                Bundle bundle = Platform.getBundle(getPluginId());
-                URL url = FileLocator.find(bundle, new Path(path), null);
-                if (url != null) {
-                	fImageDescriptor =  ImageDescriptor.createFromURL(url);
-                }
-            }
-        }
-        return fImageDescriptor;
-    }
-
-    /**
-     * @return
-     * @throws CoreException
-     */
-    public IConsoleFactory createFactory() throws CoreException {
-        if (fFactory == null) {
-            fFactory = (IConsoleFactory) fConfig.createExecutableExtension("class"); //$NON-NLS-1$
-        }
-        return fFactory;
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java
deleted file mode 100644
index b98df73..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IHyperlink;
-
-/**
- * Describes the postition of a hyperlink within the Console's document.
- * 
- * @since 3.1
- */
-public class ConsoleHyperlinkPosition extends Position {
-    
-	public static final String HYPER_LINK_CATEGORY = ConsolePlugin.getUniqueIdentifier() + ".CONSOLE_HYPERLINK_POSITION"; //$NON-NLS-1$
-	
-	private IHyperlink fLink = null;
-
-	public ConsoleHyperlinkPosition(IHyperlink link, int offset, int length) {
-		super(offset, length);
-		fLink = link;
-	}
-	
-	public IHyperlink getHyperLink() {
-		return fLink;
-	}
-
-	/**
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object arg) {
-		return arg instanceof ConsoleHyperlinkPosition && super.equals(arg) && getHyperLink().equals(((ConsoleHyperlinkPosition)arg).getHyperLink());
-	}
-
-	/**
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return super.hashCode() + getHyperLink().hashCode();
-	}
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java
deleted file mode 100644
index df883e2..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java
+++ /dev/null
@@ -1,461 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.regex.PatternSyntaxException;
-
-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.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.IConsolePageParticipant;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.progress.WorkbenchJob;
-
-/**
- * The singleton console manager.
- * 
- * @since 3.0
- */
-public class ConsoleManager implements IConsoleManager {
-	
-	/**
-	 * Console listeners
-	 */
-	private ListenerList fListeners = null;
-	
-	/**
-	 * List of registered consoles
-	 */
-	private List fConsoles = new ArrayList(10); 
-
-	
-	// change notification constants
-	private final static int ADDED = 1;
-	private final static int REMOVED = 2;
-
-    private List fPatternMatchListeners;
-
-    private List fPageParticipants;
-
-    private List fConsoleFactoryExtensions;
-    
-    private List fConsoleViews = new ArrayList();
-    
-    private boolean fWarnQueued = false;
-    
-    private RepaintJob fRepaintJob = new RepaintJob();
-    
-    private class RepaintJob extends WorkbenchJob {
-        private Set list = new HashSet();
-
-        public RepaintJob() {
-            super("schedule redraw() of viewers"); //$NON-NLS-1$
-            setSystem(true);
-        }
-        
-        void addConsole(IConsole console) {
-        	synchronized (list) {
-        		list.add(console);
-			}
-        }
-        
-        public IStatus runInUIThread(IProgressMonitor monitor) {
-            synchronized (list) {
-                if (list.isEmpty()) {
-                    return Status.OK_STATUS;
-                }
-                
-                IWorkbenchWindow[] workbenchWindows = PlatformUI.getWorkbench().getWorkbenchWindows();
-                for (int i = 0; i < workbenchWindows.length; i++) {
-                    IWorkbenchWindow window = workbenchWindows[i];
-                    if (window != null) {
-                        IWorkbenchPage page = window.getActivePage();
-                        if (page != null) {
-                            IViewPart part = page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
-                            if (part != null && part instanceof IConsoleView) {
-                                ConsoleView view = (ConsoleView) part;
-                                if (list.contains(view.getConsole())) {
-                                    Control control = view.getCurrentPage().getControl();
-                                    if (!control.isDisposed()) {
-                                        control.redraw();
-                                    }
-                                }
-                            }
-
-                        }
-                    }
-                }
-                list.clear();
-            }
-            return Status.OK_STATUS;
-        }
-    }
-    
-	/**
-	 * Notifies a console listener of additions or removals
-	 */
-	class ConsoleNotifier implements ISafeRunnable {
-		
-		private IConsoleListener fListener;
-		private int fType;
-		private IConsole[] fChanged;
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
-		 */
-		public void handleException(Throwable exception) {
-			IStatus status = new Status(IStatus.ERROR, ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, ConsoleMessages.ConsoleManager_0, exception); 
-			ConsolePlugin.log(status);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.ISafeRunnable#run()
-		 */
-		public void run() throws Exception {
-			switch (fType) {
-				case ADDED:
-					fListener.consolesAdded(fChanged);
-					break;
-				case REMOVED:
-					fListener.consolesRemoved(fChanged);
-					break;
-			}
-		}
-
-		/**
-		 * Notifies the given listener of the adds/removes
-		 * 
-		 * @param consoles the consoles that changed
-		 * @param update the type of change
-		 */
-		public void notify(IConsole[] consoles, int update) {
-			if (fListeners == null) {
-				return;
-			}
-			fChanged = consoles;
-			fType = update;
-			Object[] copiedListeners= fListeners.getListeners();
-			for (int i= 0; i < copiedListeners.length; i++) {
-				fListener = (IConsoleListener)copiedListeners[i];
-                SafeRunner.run(this);
-			}	
-			fChanged = null;
-			fListener = null;			
-		}
-	}	
-		
-	public void registerConsoleView(ConsoleView view) {
-	    synchronized (fConsoleViews) {
-	        fConsoleViews.add(view);
-	    }
-	}
-    public void unregisterConsoleView(ConsoleView view) {
-        synchronized (fConsoleViews) {
-            fConsoleViews.remove(view);
-        }
-    }
-    
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleManager#addConsoleListener(org.eclipse.ui.console.IConsoleListener)
-	 */
-	public void addConsoleListener(IConsoleListener listener) {
-		if (fListeners == null) {
-			fListeners = new ListenerList();
-		}
-		fListeners.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleManager#removeConsoleListener(org.eclipse.ui.console.IConsoleListener)
-	 */
-	public void removeConsoleListener(IConsoleListener listener) {
-		if (fListeners != null) {
-			fListeners.remove(listener);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleManager#addConsoles(org.eclipse.ui.console.IConsole[])
-	 */
-	public synchronized void addConsoles(IConsole[] consoles) {
-		List added = new ArrayList(consoles.length);
-		for (int i = 0; i < consoles.length; i++) {
-		    IConsole console = consoles[i];
-		    if(console instanceof TextConsole) {
-		        TextConsole ioconsole = (TextConsole)console;
-		        createPatternMatchListeners(ioconsole);
-		    }
-			if (!fConsoles.contains(console)) {
-				fConsoles.add(console);
-				added.add(console);
-			}
-		}
-		if (!added.isEmpty()) {
-			fireUpdate((IConsole[])added.toArray(new IConsole[added.size()]), ADDED);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleManager#removeConsoles(org.eclipse.ui.console.IConsole[])
-	 */
-	public synchronized void removeConsoles(IConsole[] consoles) {
-		List removed = new ArrayList(consoles.length);
-		for (int i = 0; i < consoles.length; i++) {
-			IConsole console = consoles[i];
-			if (fConsoles.remove(console)) {
-				removed.add(console);
-			}
-		}
-		if (!removed.isEmpty()) {
-			fireUpdate((IConsole[])removed.toArray(new IConsole[removed.size()]), REMOVED);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleManager#getConsoles()
-	 */
-	public synchronized IConsole[] getConsoles() {
-		return (IConsole[])fConsoles.toArray(new IConsole[fConsoles.size()]);
-	}
-
-	/**
-	 * Fires notification.
-	 * 
-	 * @param consoles consoles added/removed
-	 * @param type ADD or REMOVE
-	 */
-	private void fireUpdate(IConsole[] consoles, int type) {
-		new ConsoleNotifier().notify(consoles, type);
-	}
-	
-	
-	private class ShowConsoleViewJob extends WorkbenchJob {
-		private IConsole console; 
-		
-		ShowConsoleViewJob() {
-			super("Show Console View"); //$NON-NLS-1$
-			setSystem(true);
-			setPriority(Job.SHORT);
-		}
-		
-		void setConsole(IConsole console) {
-			this.console = console;
-		}
-		
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			boolean consoleFound = false;
-            IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-            if (window != null && console != null) {
-                IWorkbenchPage page= window.getActivePage();
-                if (page != null) {
-                    synchronized (fConsoleViews) {
-                        for (Iterator iter = fConsoleViews.iterator(); iter.hasNext();) {
-                            ConsoleView consoleView = (ConsoleView) iter.next();
-                            if (consoleView.getSite().getPage().equals(page)) {
-	                            boolean consoleVisible = page.isPartVisible(consoleView);
-	                            if (consoleVisible) {
-	                                consoleFound = true;
-	                                boolean bringToTop = shouldBringToTop(console, consoleView);
-	                                if (bringToTop) {
-	                                    page.bringToTop(consoleView);
-	                                }
-	                                consoleView.display(console);
-	                            }
-                            }
-                        }
-                    }
-                    
-                    if (!consoleFound) {
-                        try {
-                            IConsoleView consoleView = (IConsoleView) page.showView(IConsoleConstants.ID_CONSOLE_VIEW, null, IWorkbenchPage.VIEW_CREATE);
-                            boolean bringToTop = shouldBringToTop(console, consoleView);
-                            if (bringToTop) {
-                                page.bringToTop(consoleView);
-                            }
-                            consoleView.display(console);        
-                        } catch (PartInitException pie) {
-                            ConsolePlugin.log(pie);
-                        }
-                    }
-                }
-            }
-            console = null;
-			return Status.OK_STATUS;
-		}		
-	}
-	
-	private ShowConsoleViewJob showJob = new ShowConsoleViewJob();
-	/**
-	 * @see IConsoleManager#showConsoleView(IConsole)
-	 */
-	public void showConsoleView(final IConsole console) {
-		showJob.setConsole(console);
-		showJob.schedule(100);
-	}	
-	
-	/**
-	 * Returns whether the given console view should be brought to the top.
-	 * The view should not be brought to the top if the view is pinned on
-	 * a console other than the given console.
-	 */
-	private boolean shouldBringToTop(IConsole console, IViewPart consoleView) {
-		boolean bringToTop= true;
-		if (consoleView instanceof IConsoleView) {
-			IConsoleView cView= (IConsoleView)consoleView;
-			if (cView.isPinned()) {
-				IConsole pinnedConsole= cView.getConsole();
-				bringToTop = console.equals(pinnedConsole);
-			}
-		}
-		return bringToTop;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleManager#warnOfContentChange(org.eclipse.ui.console.IConsole)
-	 */
-	public void warnOfContentChange(final IConsole console) {
-		if (!fWarnQueued) {
-			fWarnQueued = true;
-			ConsolePlugin.getStandardDisplay().asyncExec(new Runnable(){
-				public void run() {
-					IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-					if (window != null) {
-						IWorkbenchPage page= window.getActivePage();
-						if (page != null) {
-							IConsoleView consoleView= (IConsoleView)page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
-							if (consoleView != null) {
-								consoleView.warnOfContentChange(console);
-							}
-						} 
-					}	
-					fWarnQueued = false;
-				}			
-			});
-		}
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleManager#getPatternMatchListenerDelegates(org.eclipse.ui.console.IConsole)
-     */
-    public IPatternMatchListener[] createPatternMatchListeners(IConsole console) {
-    		if (fPatternMatchListeners == null) {
-    		    fPatternMatchListeners = new ArrayList();
-    			IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.EXTENSION_POINT_CONSOLE_PATTERN_MATCH_LISTENERS);
-    			IConfigurationElement[] elements = extensionPoint.getConfigurationElements();
-    			for (int i = 0; i < elements.length; i++) {
-    				IConfigurationElement config = elements[i];
-    				PatternMatchListenerExtension extension = new PatternMatchListenerExtension(config);
-    				fPatternMatchListeners.add(extension); 
-    			}
-    		}
-    		ArrayList list = new ArrayList();
-    		for(Iterator i = fPatternMatchListeners.iterator(); i.hasNext(); ) {
-    		    PatternMatchListenerExtension extension = (PatternMatchListenerExtension) i.next();
-                try {
-                    if (extension.getEnablementExpression() == null) {
-                        i.remove();
-                        continue;
-                    }
-    		    
-    		        if (console instanceof TextConsole && extension.isEnabledFor(console)) {
-                        TextConsole textConsole = (TextConsole) console;
-    		            PatternMatchListener patternMatchListener = new PatternMatchListener(extension);
-                        try {
-                            textConsole.addPatternMatchListener(patternMatchListener);
-                            list.add(patternMatchListener);
-                        } catch (PatternSyntaxException e) {
-                            ConsolePlugin.log(e);
-                            i.remove();
-                        }
-    		        }
-    		    } catch (CoreException e) {
-    		        ConsolePlugin.log(e);
-    		    }
-    		}
-        return (PatternMatchListener[])list.toArray(new PatternMatchListener[0]);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleManager#getPageParticipants(org.eclipse.ui.console.IConsole)
-     */
-    public IConsolePageParticipant[] getPageParticipants(IConsole console) {
-        if(fPageParticipants == null) {
-            fPageParticipants = new ArrayList();
-            IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.EXTENSION_POINT_CONSOLE_PAGE_PARTICIPANTS);
-            IConfigurationElement[] elements = extensionPoint.getConfigurationElements();
-            for(int i = 0; i < elements.length; i++) {
-                IConfigurationElement config = elements[i];
-                ConsolePageParticipantExtension extension = new ConsolePageParticipantExtension(config);
-                fPageParticipants.add(extension);
-            }
-        }
-        ArrayList list = new ArrayList();
-        for(Iterator i = fPageParticipants.iterator(); i.hasNext(); ) {
-            ConsolePageParticipantExtension extension = (ConsolePageParticipantExtension) i.next();
-            try {
-                if (extension.isEnabledFor(console)) {
-                    list.add(extension.createDelegate());
-                }
-            } catch (CoreException e) {
-                ConsolePlugin.log(e);
-            }
-        }
-        return (IConsolePageParticipant[]) list.toArray(new IConsolePageParticipant[0]);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleManager#getConsoleFactories()
-     */
-    public ConsoleFactoryExtension[] getConsoleFactoryExtensions() {
-        if (fConsoleFactoryExtensions == null) {
-            fConsoleFactoryExtensions = new ArrayList();
-            IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.EXTENSION_POINT_CONSOLE_FACTORIES);
-            IConfigurationElement[] configurationElements = extensionPoint.getConfigurationElements();
-            for (int i = 0; i < configurationElements.length; i++) {
-                fConsoleFactoryExtensions.add(new ConsoleFactoryExtension(configurationElements[i]));
-            }
-        }
-        return (ConsoleFactoryExtension[]) fConsoleFactoryExtensions.toArray(new ConsoleFactoryExtension[0]);
-    }
-    
-    
-    public void refresh(final IConsole console) {
-        fRepaintJob.addConsole(console);
-        fRepaintJob.schedule(50); 
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java
deleted file mode 100644
index eaf17b1..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ConsoleMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.console.ConsoleMessages";//$NON-NLS-1$
-
-	public static String AbstractConsole_0;
-
-	public static String ConsoleDropDownAction_0;
-	public static String ConsoleDropDownAction_1;
-
-	public static String ConsoleManager_0;
-
-	public static String ConsoleView_0;
-
-	public static String PinConsoleAction_0;
-	public static String PinConsoleAction_1;
-
-	public static String ClearOutputAction_title;
-	public static String ClearOutputAction_toolTipText;
-
-	public static String TextViewerGotoLineAction_Enter_line_number__8;
-	public static String TextViewerGotoLineAction_Exceptions_occurred_attempt_to_go_to_line_2;
-	public static String TextViewerGotoLineAction_Go_to__Line____Ctrl_L_4;
-	public static String TextViewerGotoLineAction_Go_To_Line_1;
-	public static String TextViewerGotoLineAction_Line_number_out_of_range_1;
-	public static String TextViewerGotoLineAction_Not_a_number_2;
-
-	public static String ScrollLockAction_0;
-	public static String ScrollLockAction_1;
-	public static String FollowHyperlinkAction_0;
-	public static String FollowHyperlinkAction_1;
-	public static String OpenConsoleAction_0;
-	public static String OpenConsoleAction_1;
-	public static String CloseConsoleAction_0;
-	public static String CloseConsoleAction_1;
-
-    public static String TextConsolePage_SelectAllDescrip;
-    public static String TextConsolePage_SelectAllText;
-    public static String TextConsolePage_CutText;
-    public static String TextConsolePage_CutDescrip;
-    public static String TextConsolePage_CopyText;
-    public static String TextConsolePage_CopyDescrip;
-    public static String TextConsolePage_PasteText;
-    public static String TextConsolePage_PasteDescrip;
-    
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ConsoleMessages.class);
-	}
-
-    public static String PatternMatchListenerExtension_3;
-
-    public static String PatternMatchListenerExtension_4;
-
-    public static String PatternMatchListenerExtension_5;
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties
deleted file mode 100644
index 3d835a4..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-AbstractConsole_0=Exception occurred during console property change notification.
-
-ConsoleDropDownAction_0=Select Console
-ConsoleDropDownAction_1=Display Selected Console
-
-ConsoleManager_0=An exception occurred during console notification
-
-ConsoleView_0=No consoles to display at this time.
-
-PinConsoleAction_0=Pi&n Console
-PinConsoleAction_1=Pin Console
-
-ClearOutputAction_title=Clea&r
-ClearOutputAction_toolTipText=Clear Console
-
-TextViewerGotoLineAction_Enter_line_number__8=Enter line number (1...{0}):
-TextViewerGotoLineAction_Exceptions_occurred_attempt_to_go_to_line_2=Exceptions occurred attempt to go to line
-TextViewerGotoLineAction_Go_to__Line____Ctrl_L_4=Go to &Line...@Ctrl+L
-TextViewerGotoLineAction_Go_To_Line_1=Go to Line
-TextViewerGotoLineAction_Line_number_out_of_range_1=Line number out of range
-TextViewerGotoLineAction_Not_a_number_2=Not a number
-
-ScrollLockAction_0=&Scroll Lock
-ScrollLockAction_1=Scroll Lock
-FollowHyperlinkAction_0=&Open Link
-FollowHyperlinkAction_1=Follow the selected hyperlink
-OpenConsoleAction_0=Open Console
-OpenConsoleAction_1=Open Console
-CloseConsoleAction_0=&Close Console
-CloseConsoleAction_1=Close Console
-
-TextConsolePage_SelectAllDescrip=Select All
-TextConsolePage_SelectAllText=Select &All
-TextConsolePage_CutText=C&ut
-TextConsolePage_CutDescrip=Cut
-TextConsolePage_CopyText=&Copy
-TextConsolePage_CopyDescrip=Copy
-TextConsolePage_PasteText=&Paste
-TextConsolePage_PasteDescrip=Paste
-PatternMatchListenerExtension_3=Console Pattern Match Listener
-PatternMatchListenerExtension_4=contributed by
-PatternMatchListenerExtension_5=is missing required enablement expression and will be removed
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java
deleted file mode 100644
index c329cdb..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsolePageParticipant;
-
-public class ConsolePageParticipantExtension implements IPluginContribution {
-
-    private IConfigurationElement fConfig;
-    private Expression fEnablementExpression;
-
-    public ConsolePageParticipantExtension(IConfigurationElement config) {
-        fConfig = config;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPluginContribution#getLocalId()
-     */
-    public String getLocalId() {
-        return fConfig.getAttribute("id"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPluginContribution#getPluginId()
-     */
-    public String getPluginId() {
-        return fConfig.getContributor().getName();
-    }
-    
-    public boolean isEnabledFor(IConsole console) throws CoreException {
-        EvaluationContext context = new EvaluationContext(null, console);
-        EvaluationResult evaluationResult = getEnablementExpression().evaluate(context);
-        return evaluationResult == EvaluationResult.TRUE;
-    }
-    
-    public Expression getEnablementExpression() throws CoreException {
-		if (fEnablementExpression == null) {
-			IConfigurationElement[] elements = fConfig.getChildren(ExpressionTagNames.ENABLEMENT);
-			IConfigurationElement enablement = elements.length > 0 ? elements[0] : null; 
-
-			if (enablement != null) {
-			    fEnablementExpression = ExpressionConverter.getDefault().perform(enablement);
-			}
-		}
-		return fEnablementExpression;
-    }
-
-    public IConsolePageParticipant createDelegate() throws CoreException {
-        return (IConsolePageParticipant) fConfig.createExecutableExtension("class"); //$NON-NLS-1$;
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java
deleted file mode 100644
index 0a69d5f..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.PatternMatchEvent;
-import org.eclipse.ui.console.TextConsole;
-
-public class ConsolePatternMatcher implements IDocumentListener {
-
-    private MatchJob fMatchJob = new MatchJob();
-
-    /**
-     * Collection of compiled pattern match listeners
-     */
-    private ArrayList fPatterns = new ArrayList();
-
-    private TextConsole fConsole;
-
-    private boolean fFinalMatch;
-
-	private boolean fScheduleFinal;
-
-    public ConsolePatternMatcher(TextConsole console) {
-        fConsole = console;
-    }
-
-    private class MatchJob extends Job {
-        MatchJob() {
-            super("Match Job"); //$NON-NLS-1$
-            setSystem(true);
-        }
-
-        /*
-         * (non-Javadoc)
-         * 
-         * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-         */
-        protected IStatus run(IProgressMonitor monitor) {
-			IDocument doc = fConsole.getDocument();
-			String text = null;
-			int prevBaseOffset = -1;
-			if (doc != null && !monitor.isCanceled()) {
-				int endOfSearch = doc.getLength();
-				int indexOfLastChar = endOfSearch;
-				if (indexOfLastChar > 0) {
-					indexOfLastChar--;
-				}
-				int lastLineToSearch = 0;
-				int offsetOfLastLineToSearch = 0;
-				try {
-					lastLineToSearch = doc.getLineOfOffset(indexOfLastChar);
-					offsetOfLastLineToSearch = doc.getLineOffset(lastLineToSearch);
-				} catch (BadLocationException e) {
-					// perhaps the buffer was re-set
-					return Status.OK_STATUS;
-				}
-				for (int i = 0; i < fPatterns.size(); i++) {
-					if (monitor.isCanceled()) {
-						break;
-					}
-					CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) fPatterns.get(i);
-					int baseOffset = notifier.end;
-					int lengthToSearch = endOfSearch - baseOffset;
-					if (lengthToSearch > 0) {
-						try {
-							if (prevBaseOffset != baseOffset) {
-								// reuse the text string if possible
-								text = doc.get(baseOffset, lengthToSearch);
-							}
-							Matcher reg = notifier.pattern.matcher(text);
-							Matcher quick = null;
-							if (notifier.qualifier != null) {
-								quick = notifier.qualifier.matcher(text);
-							}
-							int startOfNextSearch = 0;
-							int endOfLastMatch = -1;
-							int lineOfLastMatch = -1;
-							while ((startOfNextSearch < lengthToSearch) && !monitor.isCanceled()) {
-								if (quick != null) {
-									if (quick.find(startOfNextSearch)) {
-										// start searching on the beginning
-										// of the line where the potential
-										// match was found, or after the
-										// last match on the same line
-										int matchLine = doc.getLineOfOffset(baseOffset + quick.start());
-										if (lineOfLastMatch == matchLine) {
-											startOfNextSearch = endOfLastMatch;
-										} else {
-											startOfNextSearch = doc.getLineOffset(matchLine) - baseOffset;
-										}
-									} else {
-										startOfNextSearch = lengthToSearch;
-									}
-								}
-								if (startOfNextSearch < 0) {
-									startOfNextSearch = 0;
-								}
-								if (startOfNextSearch < lengthToSearch) {
-									if (reg.find(startOfNextSearch)) {
-										endOfLastMatch = reg.end();
-										lineOfLastMatch = doc.getLineOfOffset(baseOffset + endOfLastMatch - 1);
-										int regStart = reg.start();
-										IPatternMatchListener listener = notifier.listener;
-										if (listener != null && !monitor.isCanceled()) {
-											listener.matchFound(new PatternMatchEvent(fConsole, baseOffset + regStart, endOfLastMatch - regStart));
-										}
-										startOfNextSearch = endOfLastMatch;
-									} else {
-										startOfNextSearch = lengthToSearch;
-									}
-								}
-							}
-							// update start of next search to the last line
-							// searched
-							// or the end of the last match if it was on the
-							// line that
-							// was last searched
-							if (lastLineToSearch == lineOfLastMatch) {
-								notifier.end = baseOffset + endOfLastMatch;
-							} else {
-								notifier.end = offsetOfLastLineToSearch;
-							}
-						} catch (BadLocationException e) {
-							ConsolePlugin.log(e);
-						}
-					}
-					prevBaseOffset = baseOffset;
-				}
-			}
-
-			if (fFinalMatch) {
-				disconnect();
-				fConsole.matcherFinished();
-			} else if (fScheduleFinal) {
-				fFinalMatch = true;
-				schedule();
-			}
-
-			return Status.OK_STATUS;
-		}
-
-        public boolean belongsTo(Object family) {
-            return family == fConsole;
-        }
-        
-        
-    }
-
-    private class CompiledPatternMatchListener {
-        Pattern pattern;
-
-        Pattern qualifier;
-
-        IPatternMatchListener listener;
-
-        int end = 0;
-
-        CompiledPatternMatchListener(Pattern pattern, Pattern qualifier, IPatternMatchListener matchListener) {
-            this.pattern = pattern;
-            this.listener = matchListener;
-            this.qualifier = qualifier;
-        }
-
-        public void dispose() {
-            listener.disconnect();
-            pattern = null;
-            qualifier = null;
-            listener = null;
-        }
-    }
-
-    /**
-	 * Adds the given pattern match listener to this console. The listener will
-	 * be connected and receive match notifications.
-	 * 
-	 * @param matchListener
-	 *            the pattern match listener to add
-	 */
-    public void addPatternMatchListener(IPatternMatchListener matchListener) {
-        synchronized (fPatterns) {
-            
-            // check for dups
-            for (Iterator iter = fPatterns.iterator(); iter.hasNext();) {
-                CompiledPatternMatchListener element = (CompiledPatternMatchListener) iter.next();
-                if (element.listener == matchListener) {
-                    return;
-                }
-            }
-            
-            if (matchListener == null || matchListener.getPattern() == null) {
-                throw new IllegalArgumentException("Pattern cannot be null"); //$NON-NLS-1$
-            }
-
-            Pattern pattern = Pattern.compile(matchListener.getPattern(), matchListener.getCompilerFlags());
-            String qualifier = matchListener.getLineQualifier();
-            Pattern qPattern = null;
-            if (qualifier != null) {
-                qPattern = Pattern.compile(qualifier, matchListener.getCompilerFlags());
-            }
-            CompiledPatternMatchListener notifier = new CompiledPatternMatchListener(pattern, qPattern, matchListener);
-            fPatterns.add(notifier);
-            matchListener.connect(fConsole);
-            fMatchJob.schedule();
-        }
-    }
-
-    /**
-     * Removes the given pattern match listener from this console. The listener
-     * will be disconnected and will no longer receive match notifications.
-     * 
-     * @param matchListener
-     *            the pattern match listener to remove.
-     */
-    public void removePatternMatchListener(IPatternMatchListener matchListener) {
-        synchronized (fPatterns) {
-            for (Iterator iter = fPatterns.iterator(); iter.hasNext();) {
-                CompiledPatternMatchListener element = (CompiledPatternMatchListener) iter.next();
-                if (element.listener == matchListener) {
-                    iter.remove();
-                    matchListener.disconnect();
-                }
-            }
-        }
-    }
-
-    public void disconnect() {
-        fMatchJob.cancel();
-        synchronized (fPatterns) {
-            Iterator iterator = fPatterns.iterator();
-            while (iterator.hasNext()) {
-                CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) iterator.next();
-                notifier.dispose();
-            }
-            fPatterns.clear();
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-     */
-    public void documentAboutToBeChanged(DocumentEvent event) {
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
-     */
-    public void documentChanged(DocumentEvent event) {
-        if (event.fLength > 0) {
-            synchronized (fPatterns) {
-                if (event.fDocument.getLength() == 0) {
-                    // document has been cleared, reset match listeners
-                    Iterator iter = fPatterns.iterator();
-                    while (iter.hasNext()) {
-                        CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) iter.next();
-                        notifier.end = 0;
-                    }
-                } else {
-                    if (event.fOffset == 0) { 
-                        //document was trimmed
-                        Iterator iter = fPatterns.iterator();
-                        while (iter.hasNext()) {
-                            CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) iter.next();
-                            notifier.end = notifier.end > event.fLength ? notifier.end-event.fLength : 0;
-                        }
-                    }
-                }
-            }
-        }
-        fMatchJob.schedule();
-    }
-
-    
-    public void forceFinalMatching() {
-    	fScheduleFinal = true;
-    	fMatchJob.schedule();
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java
deleted file mode 100644
index c5abc8c..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleConstants;
-
-/**
- * The images provided by the debug plugin.
- */
-public class ConsolePluginImages {
-
-	/** 
-	 * The image registry containing <code>Image</code>s and the <code>ImageDescriptor</code>s.
-	 */
-	private static ImageRegistry imageRegistry;
-		
-	/* Declare Common paths */
-	private static URL ICON_BASE_URL= null;
-
-	static {
-		String pathSuffix = "icons/full/"; //$NON-NLS-1$
-		ICON_BASE_URL= ConsolePlugin.getDefault().getBundle().getEntry(pathSuffix);
-	}
-
-	// Use IPath and toOSString to build the names to ensure they have the slashes correct
-	private final static String LOCALTOOL= "clcl16/"; //basic colors - size 16x16 //$NON-NLS-1$
-	private final static String DLCL= "dlcl16/"; //disabled - size 16x16 //$NON-NLS-1$
-	private final static String ELCL= "elcl16/"; //enabled - size 16x16 //$NON-NLS-1$
-	private final static String VIEW= "cview16/"; // views //$NON-NLS-1$
-	
-	/**
-	 * Declare all images
-	 */
-	private static void declareImages() {
-		// Actions
-		
-		//local toolbars
-		declareRegistryImage(IConsoleConstants.IMG_LCL_CLEAR, LOCALTOOL + "clear_co.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_LCL_PIN, LOCALTOOL + "pin.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_LCL_LOCK, LOCALTOOL + "lock_co.gif"); //$NON-NLS-1$
-			
-		// disabled local toolbars
-		declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_CLEAR, DLCL + "clear_co.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_PIN, DLCL + "pin.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_LOCK, DLCL + "lock_co.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_CLOSE, DLCL + "rem_co.gif"); //$NON-NLS-1$
-		
-		// enabled local toolbars
-		declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_CLEAR, ELCL + "clear_co.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_PIN, ELCL + "pin.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_LOCK, ELCL + "lock_co.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_CLOSE, ELCL + "rem_co.gif"); //$NON-NLS-1$
-		declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_NEW_CON, ELCL + "new_con.gif"); //$NON-NLS-1$
-		
-		// Views
-		declareRegistryImage(IConsoleConstants.IMG_VIEW_CONSOLE, VIEW + "console_view.gif"); //$NON-NLS-1$				
-	}
-
-	/**
-	 * Declare an Image in the registry table.
-	 * @param key 	The key to use when registering the image
-	 * @param path	The path where the image can be found. This path is relative to where
-	 *				this plugin class is found (i.e. typically the packages directory)
-	 */
-	private final static void declareRegistryImage(String key, String path) {
-		ImageDescriptor desc= ImageDescriptor.getMissingImageDescriptor();
-		try {
-			desc= ImageDescriptor.createFromURL(makeIconFileURL(path));
-		} catch (MalformedURLException me) {
-			ConsolePlugin.log(me);
-		}
-		imageRegistry.put(key, desc);
-	}
-	
-	/**
-	 * Returns the ImageRegistry.
-	 */
-	public static ImageRegistry getImageRegistry() {
-		if (imageRegistry == null) {
-			initializeImageRegistry();
-		}
-		return imageRegistry;
-	}
-
-	/**
-	 *	Initialize the image registry by declaring all of the required
-	 *	graphics. This involves creating JFace image descriptors describing
-	 *	how to create/find the image should it be needed.
-	 *	The image is not actually allocated until requested.
-	 *
-	 * 	Prefix conventions
-	 *		Wizard Banners			WIZBAN_
-	 *		Preference Banners		PREF_BAN_
-	 *		Property Page Banners	PROPBAN_
-	 *		Color toolbar			CTOOL_
-	 *		Enable toolbar			ETOOL_
-	 *		Disable toolbar			DTOOL_
-	 *		Local enabled toolbar	ELCL_
-	 *		Local Disable toolbar	DLCL_
-	 *		Object large			OBJL_
-	 *		Object small			OBJS_
-	 *		View 					VIEW_
-	 *		Product images			PROD_
-	 *		Misc images				MISC_
-	 *
-	 *	Where are the images?
-	 *		The images (typically gifs) are found in the same location as this plugin class.
-	 *		This may mean the same package directory as the package holding this class.
-	 *		The images are declared using this.getClass() to ensure they are looked up via
-	 *		this plugin class.
-	 *	@see org.eclipse.jface.resource.ImageRegistry
-	 */
-	public static ImageRegistry initializeImageRegistry() {
-		imageRegistry= new ImageRegistry(ConsolePlugin.getStandardDisplay());
-		declareImages();
-		return imageRegistry;
-	}
-
-	/**
-	 * Returns the <code>Image<code> identified by the given key,
-	 * or <code>null</code> if it does not exist.
-	 */
-	public static Image getImage(String key) {
-		return getImageRegistry().get(key);
-	}
-	
-	/**
-	 * Returns the <code>ImageDescriptor<code> identified by the given key,
-	 * or <code>null</code> if it does not exist.
-	 */
-	public static ImageDescriptor getImageDescriptor(String key) {
-		return getImageRegistry().getDescriptor(key);
-	}
-	
-	private static URL makeIconFileURL(String iconPath) throws MalformedURLException {
-		if (ICON_BASE_URL == null) {
-			throw new MalformedURLException();
-		}
-			
-		return new URL(ICON_BASE_URL, iconPath);
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.java
deleted file mode 100644
index 33b7d85..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ConsoleResourceBundleMessages {
-    private static final String BUNDLE_NAME = "org.eclipse.ui.internal.console.ConsoleResourceBundleMessages"; //$NON-NLS-1$
-
-    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-    private ConsoleResourceBundleMessages() {
-    }
-
-    public static String getString(String key) {
-        try {
-            return RESOURCE_BUNDLE.getString(key);
-        } catch (MissingResourceException e) {
-            return '!' + key + '!';
-        }
-    }
-
-    public static ResourceBundle getBundle() {
-        return RESOURCE_BUNDLE; 
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.properties b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.properties
deleted file mode 100644
index 9aeb0ef..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-
-# These strings are used by the Find Replace Action and loaded as a Resource Bundle.
-# See TextConsolePage.createActions()
-
-find_replace_action_label=&Find/Replace...
-find_replace_action_tooltip=Find/Replace
-find_replace_action_image=
-find_replace_action_description=Find/Replace
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java
deleted file mode 100644
index 46dc213..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.ui.console.IConsole;
-
-/**
- * Tests if an IOConsole's type matches the expected value
- * 
- * @since 3.1
- */
-public class ConsoleTypePropertyTester extends PropertyTester {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-     */
-    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-        IConsole console = (IConsole) receiver;
-        String type = console.getType();
-        return type != null ? type.equals(expectedValue) : false;
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java
deleted file mode 100644
index 0d2a382..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java
+++ /dev/null
@@ -1,715 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.AbstractConsole;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.IConsolePageParticipant;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-/**
- * Page book console view.
- * 
- * @since 3.0
- */
-public class ConsoleView extends PageBookView implements IConsoleView, IConsoleListener, IPropertyChangeListener, IPartListener2 {
-	
-	/**
-	 * Whether this console is pinned.
-	 */
-	private boolean fPinned = false;
-	
-	/**
-	 * Stack of consoles in MRU order
-	 */
-	private List fStack = new ArrayList();
-	
-	/**
-	 * The console being displayed, or <code>null</code> if none
-	 */
-	private IConsole fActiveConsole = null;
-	
-	/**
-	 * Map of consoles to dummy console parts (used to close pages)
-	 */
-	private Map fConsoleToPart;
-	
-	/**
-	 * Map of consoles to array of page participants
-	 */
-	private Map fConsoleToPageParticipants;
-	
-	/**
-	 * Map of parts to consoles
-	 */
-	private Map fPartToConsole;
-	
-	/**
-	 * Whether this view is active
-	 */
-	private boolean fActive = false;
-	
-	// actions
-	private PinConsoleAction fPinAction = null; 
-	private ConsoleDropDownAction fDisplayConsoleAction = null;
-	
-	private OpenConsoleAction fOpenConsoleAction = null;
-
-    private boolean fScrollLock;
-
-	private boolean isAvailable() {
-		return getPageBook() != null && !getPageBook().isDisposed();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-	 */
-	public void propertyChange(PropertyChangeEvent event) {
-		Object source = event.getSource();
-		if (source instanceof IConsole && event.getProperty().equals(IBasicPropertyConstants.P_TEXT)) {
-			if (source.equals(getConsole())) {
-				updateTitle();
-			}
-		}
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener#partClosed(org.eclipse.ui.IWorkbenchPart)
-	 */
-	public void partClosed(IWorkbenchPart part) {
-		super.partClosed(part);
-		fPinAction.update();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.console.IConsoleView#getConsole()
-	 */
-	public IConsole getConsole() {
-		return fActiveConsole;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#showPageRec(org.eclipse.ui.part.PageBookView.PageRec)
-	 */
-	protected void showPageRec(PageRec pageRec) {
-        // don't show the page when pinned, unless this is the first console to be added
-        // or its the default page
-        if (fActiveConsole != null && pageRec.page != getDefaultPage() && fPinned && fConsoleToPart.size() > 1) {
-            IConsole console = (IConsole)fPartToConsole.get(pageRec.part);
-            if (!fStack.contains(console)) {
-                fStack.add(console);
-            }
-            return;
-        }
-        
-        IConsole recConsole = (IConsole)fPartToConsole.get(pageRec.part);
-        if (recConsole!=null && recConsole.equals(fActiveConsole)) {
-            return;
-        }
-        
-	    super.showPageRec(pageRec);
-	    fActiveConsole = recConsole;
-	    IConsole tos = null;
-	    if (!fStack.isEmpty()) {
-	        tos = (IConsole) fStack.get(0);
-	    }
-	    if (tos != null && !tos.equals(fActiveConsole)) {
-	        deactivateParticipants(tos);
-	    }
-	    if (fActiveConsole != null && !fActiveConsole.equals(tos)) {
-	        fStack.remove(fActiveConsole);
-	        fStack.add(0,fActiveConsole);
-	        activateParticipants(fActiveConsole);
-	    }
-	    updateTitle();	
-	    updateHelp();
-	    // update console actions
-	    if (fPinAction != null) {
-	        fPinAction.update();
-	    }
-	    IPage page = getCurrentPage();
-	    if (page instanceof IOConsolePage) {
-	        ((IOConsolePage)page).setAutoScroll(!fScrollLock);
-	    }
-	}
-	
-	/**
-	 * Activates the participants for the given console, if any.
-	 * 
-	 * @param console
-	 */
-	private void activateParticipants(IConsole console) {
-		// activate
-		if (console != null && fActive) {
-			final ListenerList listeners = getParticipants(console);
-			if (listeners != null) {
-				Object[] participants = listeners.getListeners();
-			    for (int i = 0; i < participants.length; i++) {
-			    	final IConsolePageParticipant participant = (IConsolePageParticipant) participants[i];
-			    	SafeRunner.run(new ISafeRunnable() {
-						public void run() throws Exception {
-							participant.activated();
-						}
-						public void handleException(Throwable exception) {
-							ConsolePlugin.log(exception);
-							listeners.remove(participant);
-						}
-					});
-			    }
-			}
-		}
-	}
-
-	/**
-	 * Returns a stack of consoles in the view in MRU order.
-	 * 
-	 * @return a stack of consoles in the view in MRU order
-	 */
-	protected List getConsoleStack() {
-		return fStack;
-	}
-
-	/**
-	 * Updates the view title based on the active console
-	 */
-    protected void updateTitle() {
-        IConsole console = getConsole();
-        if (console == null) {
-            setContentDescription(ConsoleMessages.ConsoleView_0); 
-        } else {
-            String newName = console.getName();
-            String oldName = getContentDescription();
-            if (newName!=null && !(newName.equals(oldName))) {
-                setContentDescription(console.getName()); 
-            }
-        }
-    }
-    
-    protected void updateHelp() {
-    	IConsole console = getConsole();
-    	String helpContextId = null;
-		if (console instanceof AbstractConsole) {
-			AbstractConsole abs = (AbstractConsole) console;
-			helpContextId = abs.getHelpContextId();
-		}
-		if (helpContextId == null) {
-			helpContextId = IConsoleHelpContextIds.CONSOLE_VIEW;
-		}
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook().getParent(), helpContextId);
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#doDestroyPage(org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.part.PageBookView.PageRec)
-	 */
-	protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
-	    IConsole console = (IConsole)fPartToConsole.get(part);
-	    
-		// dispose page participants
-		ListenerList listeners = (ListenerList) fConsoleToPageParticipants.remove(console);
-		if (listeners != null) {
-			Object[] participants = listeners.getListeners();
-			for (int i = 0; i < participants.length; i++) {
-	            final IConsolePageParticipant participant = (IConsolePageParticipant) participants[i];
-	            SafeRunner.run(new ISafeRunnable() {
-					public void run() throws Exception {
-						participant.dispose();
-					}
-					public void handleException(Throwable exception) {
-						ConsolePlugin.log(exception);
-					}
-				});
-	        }
-		}
-
-		IPage page = pageRecord.page;
-		page.dispose();
-		pageRecord.dispose();
-		console.removePropertyChangeListener(this);
-						
-		// empty cross-reference cache
-		fPartToConsole.remove(part);
-		fConsoleToPart.remove(console);
-        if (fPartToConsole.isEmpty()) {
-            fActiveConsole = null;
-        }
-		
-		// update console actions
-		fPinAction.update();		
-	}
-	
-	/**
-	 * Returns the page participants registered for the given console, or <code>null</code>
-	 * 
-	 * @param console
-	 * @return registered page participants or <code>null</code>
-	 */
-	private ListenerList getParticipants(IConsole console) {
-	    return (ListenerList) fConsoleToPageParticipants.get(console);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#doCreatePage(org.eclipse.ui.IWorkbenchPart)
-	 */
-	protected PageRec doCreatePage(IWorkbenchPart dummyPart) {
-		ConsoleWorkbenchPart part = (ConsoleWorkbenchPart)dummyPart;
-		final IConsole console = part.getConsole();
-		final IPageBookViewPage page = console.createPage(this);
-		initPage(page);
-		page.createControl(getPageBook());
-		console.addPropertyChangeListener(this);
-		
-		// initialize page participants
-		IConsolePageParticipant[] consoleParticipants = ((ConsoleManager)getConsoleManager()).getPageParticipants(console);
-		final ListenerList participants = new ListenerList();
-		for (int i = 0; i < consoleParticipants.length; i++) {
-			participants.add(consoleParticipants[i]);
-		}
-		fConsoleToPageParticipants.put(console, participants);
-		Object[] listeners = participants.getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-            final IConsolePageParticipant participant = (IConsolePageParticipant) listeners[i];
-            SafeRunner.run(new ISafeRunnable() {
-				public void run() throws Exception {
-					participant.init(page, console);
-				}
-				public void handleException(Throwable exception) {
-					ConsolePlugin.log(exception);
-					participants.remove(participant);
-				}
-			});
-        }
-		
-		PageRec rec = new PageRec(dummyPart, page);
-		return rec;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#isImportant(org.eclipse.ui.IWorkbenchPart)
-	 */
-	protected boolean isImportant(IWorkbenchPart part) {
-		return part instanceof ConsoleWorkbenchPart;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		getViewSite().getPage().removePartListener((IPartListener2)this);
-        ConsoleManager consoleManager = (ConsoleManager) ConsolePlugin.getDefault().getConsoleManager();
-        consoleManager.removeConsoleListener(this);        
-        consoleManager.unregisterConsoleView(this);
-	}
-
-	/**
-	 * Returns the console manager.
-	 * 
-     * @return the console manager
-     */
-    private IConsoleManager getConsoleManager() {
-        return ConsolePlugin.getDefault().getConsoleManager();
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#createDefaultPage(org.eclipse.ui.part.PageBook)
-	 */
-	protected IPage createDefaultPage(PageBook book) {
-		MessagePage page = new MessagePage();
-		page.createControl(getPageBook());
-		initPage(page);
-		return page;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleListener#consolesAdded(org.eclipse.ui.console.IConsole[])
-	 */
-	public void consolesAdded(final IConsole[] consoles) {
-		if (isAvailable()) {
-			Runnable r = new Runnable() {
-				public void run() {
-					for (int i = 0; i < consoles.length; i++) {
-						if (isAvailable()) {
-							IConsole console = consoles[i];
-							// ensure it's still registered since this is done asynchronously
-							IConsole[] allConsoles = getConsoleManager().getConsoles();
-							for (int j = 0; j < allConsoles.length; j++) {
-                                IConsole registered = allConsoles[j];
-                                if (registered.equals(console)) {
-        							ConsoleWorkbenchPart part = new ConsoleWorkbenchPart(console, getSite());
-        							fConsoleToPart.put(console, part);
-        							fPartToConsole.put(part, console);
-        							partActivated(part);
-        							break;
-                                }
-                            }
-
-						}
-					}
-				}
-			};
-			asyncExec(r);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleListener#consolesRemoved(org.eclipse.ui.console.IConsole[])
-	 */
-	public void consolesRemoved(final IConsole[] consoles) {
-		if (isAvailable()) {
-			Runnable r = new Runnable() {
-				public void run() {
-					for (int i = 0; i < consoles.length; i++) {
-						if (isAvailable()) {
-							IConsole console = consoles[i];
-							fStack.remove(console);
-							ConsoleWorkbenchPart part = (ConsoleWorkbenchPart)fConsoleToPart.get(console);
-							if (part != null) {
-								partClosed(part);
-							}
-							if (getConsole() == null) {
-								IConsole[] available = getConsoleManager().getConsoles();
-								if (available.length > 0) {
-									display(available[available.length - 1]);
-								}
-							}
-						}
-					}
-				}
-			};
-			asyncExec(r);
-		}
-	}
-
-	/**
-	 * Constructs a console view
-	 */
-	public ConsoleView() {
-		super();
-		fConsoleToPart = new HashMap();
-		fPartToConsole = new HashMap();
-		fConsoleToPageParticipants = new HashMap();
-        
-		ConsoleManager consoleManager = (ConsoleManager) ConsolePlugin.getDefault().getConsoleManager();
-		consoleManager.registerConsoleView(this);
-	}
-	
-	protected void createActions() {
-		fPinAction = new PinConsoleAction(this);
-		fDisplayConsoleAction = new ConsoleDropDownAction(this);
-		ConsoleFactoryExtension[] extensions = ((ConsoleManager)ConsolePlugin.getDefault().getConsoleManager()).getConsoleFactoryExtensions();
-		if (extensions.length > 0) {
-		    fOpenConsoleAction = new OpenConsoleAction();
-		}
-	}
-
-	protected void configureToolBar(IToolBarManager mgr) {
-		mgr.add(new Separator(IConsoleConstants.LAUNCH_GROUP));
-		mgr.add(new Separator(IConsoleConstants.OUTPUT_GROUP));
-		mgr.add(new Separator("fixedGroup")); //$NON-NLS-1$
-		mgr.add(fPinAction);
-		mgr.add(fDisplayConsoleAction);
-		if (fOpenConsoleAction != null) {
-		    mgr.add(fOpenConsoleAction);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleView#display(org.eclipse.ui.console.IConsole)
-	 */
-	public void display(IConsole console) {
-	    if (fPinned && fActiveConsole != null) {
-            return;
-        }
-        if (console.equals(fActiveConsole)) {
-            return;
-        }
-	    ConsoleWorkbenchPart part = (ConsoleWorkbenchPart)fConsoleToPart.get(console);
-	    if (part != null) {
-	        partActivated(part);
-	    }
-	}
-
-	/*/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleView#pin(org.eclipse.ui.console.IConsole)
-	 */
-	public void setPinned(boolean pin) {
-        fPinned = pin;
-	    if (fPinAction != null) {
-			fPinAction.update();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleView#isPinned()
-	 */
-	public boolean isPinned() {
-		return fPinned;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#getBootstrapPart()
-	 */
-	protected IWorkbenchPart getBootstrapPart() {
-		return null;
-	}
-	
-	/**
-	 * Registers the given runnable with the display
-	 * associated with this view's control, if any.
-	 * 
-	 * @see org.eclipse.swt.widgets.Display#asyncExec(java.lang.Runnable)
-	 */
-	public void asyncExec(Runnable r) {
-		if (isAvailable()) {
-			getPageBook().getDisplay().asyncExec(r);
-		}
-	}
-	
-	/**
-	 * Creates this view's underlying viewer and actions.
-	 * Hooks a pop-up menu to the underlying viewer's control,
-	 * as well as a key listener. When the delete key is pressed,
-	 * the <code>REMOVE_ACTION</code> is invoked. Hooks help to
-	 * this view. Subclasses must implement the following methods
-	 * which are called in the following order when a view is
-	 * created:<ul>
-	 * <li><code>createViewer(Composite)</code> - the context
-	 *   menu is hooked to the viewer's control.</li>
-	 * <li><code>createActions()</code></li>
-	 * <li><code>configureToolBar(IToolBarManager)</code></li>
-	 * <li><code>getHelpContextId()</code></li>
-	 * </ul>
-	 * @see IWorkbenchPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		createActions();
-		IToolBarManager tbm= getViewSite().getActionBars().getToolBarManager();
-		configureToolBar(tbm);
-		updateForExistingConsoles();
-		getViewSite().getActionBars().updateActionBars();
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IConsoleHelpContextIds.CONSOLE_VIEW);
-		getViewSite().getPage().addPartListener((IPartListener2)this);
-	}
-	
-	/**
-	 * Initialize for existing consoles
-	 */
-	private void updateForExistingConsoles() {
-		IConsoleManager manager = getConsoleManager();
-		// create pages for consoles
-		IConsole[] consoles = manager.getConsoles();
-		consolesAdded(consoles);
-		// add as a listener
-		manager.addConsoleListener(this);		
-	}	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IConsoleView#warnOfContentChange(org.eclipse.ui.console.IConsole)
-	 */
-	public void warnOfContentChange(IConsole console) {
-		IWorkbenchPart part = (IWorkbenchPart)fConsoleToPart.get(console);
-		if (part != null) {
-			IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) part.getSite().getAdapter(IWorkbenchSiteProgressService.class);
-			if (service != null) {
-				service.warnOfContentChange();
-			}
-		}
-	}
-	
-    public Object getAdapter(Class key) {
-        Object adpater = super.getAdapter(key);
-        if (adpater == null) {
-            IConsole console = getConsole();
-            if (console != null) {
-                ListenerList listeners = getParticipants(console);
-                // an adapter can be asked for before the console participants are created
-                if (listeners != null) {
-                	Object[] participants = listeners.getListeners();
-                    for (int i = 0; i < participants.length; i++) {
-                        IConsolePageParticipant participant = (IConsolePageParticipant) participants[i];
-                        adpater = participant.getAdapter(key);
-                        if (adpater != null) {
-                            return adpater;
-                        }
-                    }
-                }
-            }
-        }
-        return adpater;
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partActivated(IWorkbenchPartReference partRef) {
-		if (isThisPart(partRef)) {
-			fActive = true;
-			activateParticipants(fActiveConsole); 
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partBroughtToTop(IWorkbenchPartReference partRef) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partClosed(IWorkbenchPartReference partRef) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partDeactivated(IWorkbenchPartReference partRef) {
-        if (isThisPart(partRef)) {
-			fActive = false;
-			deactivateParticipants(fActiveConsole);
-        }
-	}
-    
-    protected boolean isThisPart(IWorkbenchPartReference partRef) {
-        if (partRef instanceof IViewReference) {
-            IViewReference viewRef = (IViewReference) partRef;
-            if (viewRef.getId().equals(getViewSite().getId())) {
-                String secId = viewRef.getSecondaryId();
-                String mySec = null;
-                if (getSite() instanceof IViewSite) {
-                    mySec = ((IViewSite)getSite()).getSecondaryId();
-                }
-                if (mySec == null) {
-                    return secId == null;
-                }
-                return mySec.equals(secId);
-            }
-        }
-        return false;
-    }
-
-	/**
-	 * Deactivates participants for the given console, if any.
-	 * 
-	 * @param console console to deactivate
-	 */
-	private void deactivateParticipants(IConsole console) {
-		// deactivate
-	    if (console != null) {
-			final ListenerList listeners = getParticipants(console);
-			if (listeners != null) {
-				Object[] participants = listeners.getListeners();
-			    for (int i = 0; i < participants.length; i++) {
-			    	final IConsolePageParticipant participant = (IConsolePageParticipant) participants[i];
-			    	SafeRunner.run(new ISafeRunnable() {
-						public void run() throws Exception {
-							participant.deactivated();
-						}
-						public void handleException(Throwable exception) {
-							ConsolePlugin.log(exception);
-							listeners.remove(participant);
-						}
-					});
-                }
-			}
-	    }
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partOpened(IWorkbenchPartReference partRef) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partHidden(IWorkbenchPartReference partRef) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partVisible(IWorkbenchPartReference partRef) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partInputChanged(IWorkbenchPartReference partRef) {		
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleView#setScrollLock(boolean)
-     */
-    public void setScrollLock(boolean scrollLock) {
-        fScrollLock = scrollLock;
-
-        IPage page = getCurrentPage();
-        if (page instanceof IOConsolePage) {
-            ((IOConsolePage)page).setAutoScroll(!scrollLock);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleView#getScrollLock()
-     */
-    public boolean getScrollLock() {
-        return fScrollLock;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleView#pin(org.eclipse.ui.console.IConsole)
-     */
-    public void pin(IConsole console) {
-        if (console == null) {
-            setPinned(false);
-        } else {
-            if (isPinned()) {
-                setPinned(false);
-            }
-            display(console);
-            setPinned(true);
-        }
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java
deleted file mode 100644
index 8a32fc8..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleFactory;
-
-public class ConsoleViewConsoleFactory implements IConsoleFactory {
-
-    int counter = 1;
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.console.IConsoleFactory#openConsole()
-     */
-    public void openConsole() {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        if (window != null) {
-            IWorkbenchPage page = window.getActivePage();
-            if (page != null) {
-                try {
-                    String secondaryId = "Console View #" + counter; //$NON-NLS-1$
-                    page.showView(IConsoleConstants.ID_CONSOLE_VIEW, secondaryId, 1);
-                    counter++;
-                } catch (PartInitException e) {
-                    ConsolePlugin.log(e);
-                }
-            }
-        }
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java
deleted file mode 100644
index e3377a4..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.console.IConsole;
-
-/**
- * Fake part to use as keys in page book for console pages
- */
-public class ConsoleWorkbenchPart implements IWorkbenchPart {
-
-	private IConsole fConsole = null;
-	private IWorkbenchPartSite fSite = null;
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		return (obj instanceof ConsoleWorkbenchPart) &&
-			fConsole.equals(((ConsoleWorkbenchPart)obj).fConsole);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return fConsole.hashCode();
-	}
-
-	/**
-	 * Constructs a part for the given console that binds to the given
-	 * site
-	 */
-	public ConsoleWorkbenchPart(IConsole console, IWorkbenchPartSite site) {
-		fConsole = console;
-		fSite = site;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#addPropertyListener(org.eclipse.ui.IPropertyListener)
-	 */
-	public void addPropertyListener(IPropertyListener listener) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#getSite()
-	 */
-	public IWorkbenchPartSite getSite() {
-		return fSite;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#getTitle()
-	 */
-	public String getTitle() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#getTitleImage()
-	 */
-	public Image getTitleImage() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#getTitleToolTip()
-	 */
-	public String getTitleToolTip() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#removePropertyListener(org.eclipse.ui.IPropertyListener)
-	 */
-	public void removePropertyListener(IPropertyListener listener) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-
-	/**
-	 * Returns the console associated with this part.
-	 * 
-	 * @return console associated with this part
-	 */
-	protected IConsole getConsole() {
-		return fConsole;
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java
deleted file mode 100644
index 492dfd5..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.IHyperlink;
-import org.eclipse.ui.console.TextConsoleViewer;
-
-/**
- * Follows a hyperlink in the console
- * 
- * @since 3.1
- */
-public class FollowHyperlinkAction extends Action {
-
-	private TextConsoleViewer viewer;
-
-    /**
-	 * Constructs a follow link action
-	 */
-	public FollowHyperlinkAction(TextConsoleViewer consoleViewer) {
-	    super(ConsoleMessages.FollowHyperlinkAction_0); 
-		setToolTipText(ConsoleMessages.FollowHyperlinkAction_1); 
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CONSOLE_OPEN_LINK_ACTION);
-		this.viewer = consoleViewer;
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IAction#isEnabled()
-     */
-    public boolean isEnabled() {
-        return viewer.getHyperlink() != null;
-    }
-	
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.action.IAction#run()
-     */
-	public void run() {
-		IHyperlink link = viewer.getHyperlink();
-		if (link != null) {
-			link.linkActivated();
-		}
-	}
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/HyperlinkUpdater.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/HyperlinkUpdater.java
deleted file mode 100644
index 3ed6aa7..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/HyperlinkUpdater.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-
-/**
- * When any region of a hyperlink is replaced, the hyperlink needs to be deleted.
- * 
- * @since 3.3
- */
-public class HyperlinkUpdater extends DefaultPositionUpdater {
-
-	/**
-	 * @param category
-	 */
-	public HyperlinkUpdater() {
-		super(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-	}
-	/**
-	 * When any region of a hyperlink is replaced, the hyperlink needs to be deleted.
-	 *
-	 * @return <code>true</code> if position has NOT been deleted
-	 */
-	protected boolean notDeleted() {
-
-		int positionEnd = fPosition.offset + fPosition.length - 1;
-		int editEnd = fOffset + fLength - 1;
-		if ((fOffset <= fPosition.offset && (editEnd > fPosition.offset)) ||
-			(fOffset < positionEnd && (editEnd > positionEnd)) ||
-			(fOffset >= fPosition.offset && fOffset <= positionEnd) ||
-			(editEnd >= fPosition.offset && editEnd <= positionEnd)) {
-
-			fPosition.delete();
-
-			try {
-				fDocument.removePosition(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY, fPosition);
-			} catch (BadPositionCategoryException x) {
-			}
-
-			return false;
-		}
-
-		return true;
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java
deleted file mode 100644
index 85a4e69..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.ui.console.IConsoleConstants;
-
-/**
- * Help context ids for the console plugin.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-public interface IConsoleHelpContextIds {
-	
-	public static final String PREFIX = IConsoleConstants.PLUGIN_ID + "."; //$NON-NLS-1$
-	
-	// Actions
-	public static final String CLEAR_CONSOLE_ACTION = PREFIX + "clear_console_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_SCROLL_LOCK_ACTION = PREFIX + "console_scroll_lock_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_SELECT_ALL_ACTION = PREFIX + "console_select_all_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_COPY_ACTION = PREFIX + "copy_to_clipboard_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_CUT_ACTION = PREFIX + "console_cut_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_PASTE_ACTION = PREFIX + "console_paste_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_FIND_REPLACE_ACTION = PREFIX + "console_find_replace_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_OPEN_LINK_ACTION = PREFIX + "console_open_link_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_OPEN_CONSOLE_ACTION = PREFIX + "console_open_console_action_context"; //$NON-NLS-1$
-	public static final String CONSOLE_DISPLAY_CONSOLE_ACTION = PREFIX + "console_display_console_action"; //$NON-NLS-1$
-	public static final String CONSOLE_PIN_CONSOLE_ACITON = PREFIX + "console_pin_console_action"; //$NON-NLS-1$
-	
-	// Views
-	public static final String CONSOLE_VIEW = PREFIX + "console_view_context"; //$NON-NLS-1$
-
-	// Preference pages
-	public static final String CONSOLE_PREFERENCE_PAGE = PREFIX + "console_preference_page_context"; //$NON-NLS-1$
-}
-
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java
deleted file mode 100644
index 00f5cbc..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-public interface IInternalConsoleConstants {
-    
-	// tool images
-	public static final String IMG_LCL_PIN = "IMG_LCL_PIN"; //$NON-NLS-1$
-	public static final String IMG_LCL_LOCK = "IMG_LCL_LOCK"; //$NON-NLS-1$
-	
-	// disabled local tool images
-	public static final String IMG_DLCL_PIN = "IMG_DLCL_PIN"; //$NON-NLS-1$
-	public static final String IMG_DLCL_CLEAR= "IMG_DLCL_CLEAR"; //$NON-NLS-1$
-	public static final String IMG_DLCL_LOCK = "IMG_DLCL_LOCK"; //$NON-NLS-1$
-	public static final String IMG_DLCL_CLOSE = "IMG_DLCL_CLOSE"; //$NON-NLS-1$
-	
-	// enabled local tool images	
-	public static final String IMG_ELCL_PIN = "IMG_ELCL_PIN"; //$NON-NLS-1$
-	public static final String IMG_ELCL_CLEAR= "IMG_ELCL_CLEAR"; //$NON-NLS-1$
-	public static final String IMG_ELCL_LOCK = "IMG_ELCL_LOCK"; //$NON-NLS-1$
-	public static final String IMG_ELCL_CLOSE = "IMG_ELCL_CLOSE"; //$NON-NLS-1$
-    public static final String IMG_ELCL_NEW_CON = "IMG_ELCL_NEW_CON"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java
deleted file mode 100644
index 3f8d72f..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.console.TextConsolePage;
-import org.eclipse.ui.console.TextConsoleViewer;
-
-/**
- * A page for an IOConsole
- * 
- * @since 3.1
- *  
- */
-public class IOConsolePage extends TextConsolePage {
-
-    private ScrollLockAction fScrollLockAction;
-
-    private boolean fReadOnly;
-
-    private IPropertyChangeListener fPropertyChangeListener;
-
-    public IOConsolePage(TextConsole console, IConsoleView view) {
-        super(console, view);
-
-        fPropertyChangeListener = new IPropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent event) {
-                String property = event.getProperty();
-                if (property.equals(IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE)) {
-                    setReadOnly();
-                }
-            }
-        };
-        console.addPropertyChangeListener(fPropertyChangeListener);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        if (fReadOnly) {
-            IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
-            viewer.setReadOnly();
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.console.TextConsolePage#createViewer(org.eclipse.swt.widgets.Composite,
-     *      org.eclipse.ui.console.TextConsole)
-     */
-    protected TextConsoleViewer createViewer(Composite parent) {
-        return new IOConsoleViewer(parent, (TextConsole)getConsole());
-    }
-
-    public void setAutoScroll(boolean scroll) {
-        IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
-        if (viewer != null) {
-            viewer.setAutoScroll(scroll);
-            fScrollLockAction.setChecked(!scroll);
-        }
-    }
-
-    /**
-     * Informs the viewer that it's text widget should not be editable.
-     */
-    public void setReadOnly() {
-        fReadOnly = true;
-        IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
-        if (viewer != null) {
-            viewer.setReadOnly();
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.TextConsolePage#createActions()
-     */
-    protected void createActions() {
-        super.createActions();
-        fScrollLockAction = new ScrollLockAction(getConsoleView());
-        setAutoScroll(!fScrollLockAction.isChecked());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.TextConsolePage#contextMenuAboutToShow(org.eclipse.jface.action.IMenuManager)
-     */
-    protected void contextMenuAboutToShow(IMenuManager menuManager) {
-        super.contextMenuAboutToShow(menuManager);
-        menuManager.add(fScrollLockAction);
-        IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
-        if (!viewer.isReadOnly()) {
-            menuManager.remove(ActionFactory.CUT.getId());
-            menuManager.remove(ActionFactory.PASTE.getId());
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.console.TextConsolePage#configureToolBar(org.eclipse.jface.action.IToolBarManager)
-     */
-    protected void configureToolBar(IToolBarManager mgr) {
-        super.configureToolBar(mgr);
-        mgr.appendToGroup(IConsoleConstants.OUTPUT_GROUP, fScrollLockAction);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.IPage#dispose()
-     */
-    public void dispose() {
-        if (fScrollLockAction != null) {
-            fScrollLockAction.dispose();
-            fScrollLockAction = null;
-        }
-        getConsole().removePropertyChangeListener(fPropertyChangeListener);
-        super.dispose();
-    }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java
deleted file mode 100644
index b9d447a..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IOConsoleInputStream;
-import org.eclipse.ui.console.IOConsoleOutputStream;
-
-/**
- * A region in an IOConsole's document.
- * @since 3.1
- *
- */
-public class IOConsolePartition implements ITypedRegion {
-	public static final String OUTPUT_PARTITION_TYPE = ConsolePlugin.getUniqueIdentifier() + ".io_console_output_partition_type"; //$NON-NLS-1$
-	public static final String INPUT_PARTITION_TYPE = ConsolePlugin.getUniqueIdentifier() + ".io_console_input_partition_type"; //$NON-NLS-1$
-
-	/**
-	 * The data contained by this partition.
-	 */
-	private StringBuffer buffer;
-    private String type;
-    private int offset;
-    /**
-     * Output partitions are all read only.
-     * Input partitions are read only once they have been appended to the console's input stream.
-     */
-    private boolean readOnly;
-    
-    /**
-     * Only one of inputStream or outputStream will be null depending on the partitions type.
-     */
-    private IOConsoleOutputStream outputStream;
-    private IOConsoleInputStream inputStream;
-    private int length;
-    
-    /**
-     * Creates a new partition to contain output to console.
-     */
-    public IOConsolePartition(IOConsoleOutputStream outputStream, int length) {
-        this.outputStream = outputStream;
-        this.length = length;
-        this.type = OUTPUT_PARTITION_TYPE;
-        this.readOnly = true;
-    }
-    
-    /**
-     * Creates a new partition to contain input from a console
-     */
-    public IOConsolePartition(IOConsoleInputStream inputStream, String text) {
-        this.inputStream = inputStream;
-        buffer = new StringBuffer(text);
-        length = text.length();
-        this.type = INPUT_PARTITION_TYPE;
-        this.readOnly = false;
-    }
-    
-    /**
-     * Inserts a string into this partition
-     * @param s The string to insert
-     * @param offset the offset in the partition
-     */
-    public void insert(String s, int insertOffset) {
-        buffer.insert(insertOffset, s);
-        length += s.length();
-    }
-      
-    /**
-     * Deletes data from this partition.
-     * @param delOffset
-     * @param delLength
-     */
-    public void delete(int delOffset, int delLength) {
-        buffer.delete(delOffset, delOffset+delLength);
-        length -= delLength;
-    }
-    
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.text.ITypedRegion#getType()
-     */
-    public String getType() {
-        return type;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.text.IRegion#getLength()
-     */
-    public int getLength() {
-        return length;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.text.IRegion#getOffset()
-     */
-    public int getOffset() {
-        return offset;
-    }
-    
-    /**
-     * Sets this partitions offset in the document.
-     * @param offset This partitions offset in the document.
-     */
-    public void setOffset(int offset) {
-        this.offset = offset;
-    }
-    
-    /**
-     * Sets this partitions length
-     * 
-     * @param length
-     */
-    public void setLength(int length) {
-    	this.length = length;
-    }
-    
-    /**
-     * Returns the data contained in this partition.
-     * @return The data contained in this partition.
-     */
-    public String getString() {
-        return buffer != null ? buffer.toString() : ""; //$NON-NLS-1$
-    }
-    
-    /**
-     * Returns a StyleRange object which may be used for setting the style
-     * of this partition in a viewer.
-     */
-    public StyleRange getStyleRange(int rangeOffset, int rangeLength) {
-        return new StyleRange(rangeOffset, rangeLength, getColor(), null, getFontStyle());
-    }
-
-    private int getFontStyle() {
-        if (type.equals(INPUT_PARTITION_TYPE)) {
-            return inputStream.getFontStyle();
-        } 
-        return outputStream.getFontStyle();
-    }
-
-    public Color getColor() {
-        if (type.equals(INPUT_PARTITION_TYPE)) {
-            return inputStream.getColor();
-        } 
-        return outputStream.getColor();
-    }
-
-    public boolean isReadOnly() {
-        return readOnly;
-    }
-    
-    public void setReadOnly() {
-        readOnly = true;
-    }
-
-    public void clearBuffer() {
-        buffer = null;
-    }
-    
-    IOConsoleOutputStream getStream() {
-        return outputStream;
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java
deleted file mode 100644
index 18c62ba..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java
+++ /dev/null
@@ -1,688 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitionerExtension;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleDocumentPartitioner;
-import org.eclipse.ui.console.IOConsole;
-import org.eclipse.ui.console.IOConsoleInputStream;
-import org.eclipse.ui.console.IOConsoleOutputStream;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.progress.WorkbenchJob;
-
-/**
- * Partitions an IOConsole's document
- * @since 3.1
- *
- */
-public class IOConsolePartitioner implements IConsoleDocumentPartitioner, IDocumentPartitionerExtension {
-	private PendingPartition consoleClosedPartition;
-	private IDocument document;
-	private ArrayList partitions;
-	/**
-	 * Blocks of data that have not yet been appended to the document.
-	 */
-	private ArrayList pendingPartitions;
-	/**
-	 * A list of PendingPartitions to be appended by the updateJob
-	 */
-	private ArrayList updatePartitions;
-	/**
-	 * The last partition appended to the document
-	 */
-	private IOConsolePartition lastPartition;
-	/**
-	 * Job that appends pending partitions to the document.
-	 */
-	private QueueProcessingJob queueJob;	    
-	/**
-	 * The input stream attached to this document.
-	 */
-	private IOConsoleInputStream inputStream;
-	/**
-	 * Flag to indicate that the updateJob is updating the document.
-	 */
-	private boolean updateInProgress;
-	/**
-	 * A list of partitions containing input from the console, that have
-	 * not been appended to the input stream yet.
-	 */
-	private ArrayList inputPartitions;
-	/**
-	 * offset used by updateJob
-	 */
-	private int firstOffset;
-	/**
-	 * An array of legal line delimiters
-	 */
-	private String[] lld;
-	private int highWaterMark = -1;
-	private int lowWaterMark = -1;
-    private boolean connected = false;
-
-    private IOConsole console;
-	
-	private TrimJob trimJob = new TrimJob();
-	/**
-	 * Lock for appending to and removing from the document - used
-	 * to synchronize addition of new text/partitions in the update
-	 * job and handling buffer overflow/clearing of the console. 
-	 */
-	private Object overflowLock = new Object();
-	
-    
-    private int fBuffer; 
-    
-	public IOConsolePartitioner(IOConsoleInputStream inputStream, IOConsole console) {
-		this.inputStream = inputStream;
-		this.console = console;
-		trimJob.setRule(console.getSchedulingRule());
-	}
-	
-	public IDocument getDocument() {
-		return document;
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#connect(org.eclipse.jface.text.IDocument)
-	 */
-	public void connect(IDocument doc) {
-		document = doc;
-		document.setDocumentPartitioner(this);
-		lld = document.getLegalLineDelimiters();
-		partitions = new ArrayList();
-		pendingPartitions = new ArrayList();
-		inputPartitions = new ArrayList();
-		queueJob = new QueueProcessingJob();
-		queueJob.setSystem(true);
-        queueJob.setPriority(Job.INTERACTIVE);
-		queueJob.setRule(console.getSchedulingRule());
-		connected = true;
-	}
-	
-	public int getHighWaterMark() {
-	    return highWaterMark;
-	}
-	
-	public int getLowWaterMark() {
-	    return lowWaterMark;
-	}
-	
-	public void setWaterMarks(int low, int high) {
-		lowWaterMark = low;
-		highWaterMark = high;
-		ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
-			public void run() {
-				checkBufferSize();
-			}
-		});
-	}
-	
-	/**
-	 * Notification from the console that all of its streams have been closed.
-	 */
-    public void streamsClosed() {
-        consoleClosedPartition = new PendingPartition(null, null);
-        synchronized (pendingPartitions) {
-            pendingPartitions.add(consoleClosedPartition);
-        }
-        queueJob.schedule(); //ensure that all pending partitions are processed.
-    }
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#disconnect()
-	 */
-	public void disconnect() {
-		synchronized (overflowLock) {    
-			document = null;
-			partitions.clear();
-			connected = false;
-			try {
-	            inputStream.close();
-	        } catch (IOException e) {
-	        }
-		}
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentAboutToBeChanged(DocumentEvent event) {
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#documentChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public boolean documentChanged(DocumentEvent event) {
-		return documentChanged2(event) != null;
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#getLegalContentTypes()
-	 */
-	public String[] getLegalContentTypes() {
-		return new String[] { IOConsolePartition.OUTPUT_PARTITION_TYPE, IOConsolePartition.INPUT_PARTITION_TYPE };
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#getContentType(int)
-	 */
-	public String getContentType(int offset) {
-		return getPartition(offset).getType();
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#computePartitioning(int, int)
-	 */
-	public ITypedRegion[] computePartitioning(int offset, int length) {					
-		int rangeEnd = offset + length;
-		int left= 0;
-		int right= partitions.size() - 1;
-		int mid= 0;
-		IOConsolePartition position= null;
-		
-		if (left == right) {
-		    return new IOConsolePartition[]{(IOConsolePartition) partitions.get(0)};
-		}
-		while (left < right) {
-			
-			mid= (left + right) / 2;
-				
-			position= (IOConsolePartition) partitions.get(mid);
-			if (rangeEnd < position.getOffset()) {
-				if (left == mid)
-					right= left;
-				else
-					right= mid -1;
-			} else if (offset > (position.getOffset() + position.getLength() - 1)) {
-				if (right == mid)
-					left= right;
-				else
-					left= mid  +1;
-			} else {
-				left= right= mid;
-			}
-		}
-		
-		
-		List list = new ArrayList();
-		int index = left - 1;
-		if (index >= 0) {
-		    position= (IOConsolePartition) partitions.get(index);
-			while (index >= 0 && (position.getOffset() + position.getLength()) > offset) {
-				index--;
-				if (index >= 0) {
-					position= (IOConsolePartition) partitions.get(index);
-				}
-			}		    
-		}
-		index++;
-		position= (IOConsolePartition) partitions.get(index);
-		while (index < partitions.size() && (position.getOffset() < rangeEnd)) {
-			list.add(position);
-			index++;
-			if (index < partitions.size()) {
-				position= (IOConsolePartition) partitions.get(index);
-			}
-		}
-		
-		return (ITypedRegion[]) list.toArray(new IOConsolePartition[list.size()]);
-	}    
-
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#getPartition(int)
-	 */
-	public ITypedRegion getPartition(int offset) {
-		for (int i = 0; i < partitions.size(); i++) {
-			ITypedRegion partition = (ITypedRegion) partitions.get(i);
-			int start = partition.getOffset();
-			int end = start + partition.getLength();
-			if (offset >= start && offset < end) {
-				return partition;
-			} 
-		}
-		
-		if (lastPartition == null)  {
-			synchronized(partitions) {
-				lastPartition = new IOConsolePartition(inputStream, ""); //$NON-NLS-1$
-				lastPartition.setOffset(offset);
-				partitions.add(lastPartition);
-				inputPartitions.add(lastPartition);
-			}
-		}
-		return lastPartition;
-	}
-		
-	/**
-	 * Enforces the buffer size.
-	 * When the number of lines in the document exceeds the high water mark, the 
-	 * beginning of the document is trimmed until the number of lines equals the 
-	 * low water mark.
-	 */
-	private void checkBufferSize() {
-		if (document != null && highWaterMark > 0) {
-			int length = document.getLength();
-			if (length > highWaterMark) {
-			    if (trimJob.getState() == Job.NONE) { //if the job isn't already running
-				    trimJob.setOffset(length - lowWaterMark);
-				    trimJob.schedule();
-			    }
-			}
-		}
-	}
-	
-	/**
-	 * Clears the console
-	 */
-	public void clearBuffer() {
-	    synchronized (overflowLock) {
-	        trimJob.setOffset(-1);
-		    trimJob.schedule();
-        }
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitionerExtension#documentChanged2(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public IRegion documentChanged2(DocumentEvent event) {
-	    if (document == null) {
-	        return null; //another thread disconnected the partitioner
-	    }
-		if (document.getLength() == 0) { //document cleared
-			lastPartition = null;
-			return new Region(0, 0);
-		}
-		
-		
-		if (updateInProgress) {
-			synchronized(partitions) {
-				if (updatePartitions != null) {
-				    for (Iterator i = updatePartitions.iterator(); i.hasNext(); ) {
-				        PendingPartition pp = (PendingPartition) i.next();
-				        if (pp == consoleClosedPartition) {
-				            continue;
-				        }
-				        
-				        int ppLen = pp.text.length();
-				        if (lastPartition != null && lastPartition.getStream() == pp.stream) {
-				            int len = lastPartition.getLength();
-				            lastPartition.setLength(len + ppLen);
-				        } else {
-				            IOConsolePartition partition = new IOConsolePartition(pp.stream, ppLen);
-				            partition.setOffset(firstOffset);				        
-				            lastPartition = partition;
-				            partitions.add(partition);
-				        }
-				        firstOffset += ppLen;
-				    }
-				}
-			}
-		} else {// user input.
-			int amountDeleted = event.getLength() ;
-			
-			if (amountDeleted > 0) {
-				int offset = event.fOffset;    
-				IOConsolePartition partition = (IOConsolePartition) getPartition(offset);
-				if(partition == lastPartition) {
-					partition.delete(event.fOffset-partition.getOffset(), amountDeleted);
-				} 
-			}
-			
-			synchronized(partitions) {
-				if (lastPartition == null || lastPartition.isReadOnly()) {
-					lastPartition = new IOConsolePartition(inputStream, event.fText); 
-					lastPartition.setOffset(event.fOffset);
-					partitions.add(lastPartition);
-					inputPartitions.add(lastPartition);
-				} else {
-					lastPartition.insert(event.fText, (event.fOffset-lastPartition.getOffset()));
-				}
-				
-				int lastLineDelimiter = -1;
-				String partitionText = lastPartition.getString();
-				for (int i = 0; i < lld.length; i++) {
-					String ld = lld[i];
-					int index = partitionText.lastIndexOf(ld);
-					if (index != -1) {
-					    index += ld.length();
-					}
-					if (index > lastLineDelimiter) {
-					    lastLineDelimiter = index;
-					}
-				}
-				if (lastLineDelimiter != -1) {
-					StringBuffer input = new StringBuffer();
-					Iterator it = inputPartitions.iterator();
-					while (it.hasNext()) {
-					    IOConsolePartition partition = (IOConsolePartition) it.next();
-					    if (partition.getOffset() + partition.getLength() <= event.fOffset + lastLineDelimiter) {
-					        if (partition == lastPartition) {
-					            lastPartition = null;
-					        }
-					        input.append(partition.getString());
-							partition.clearBuffer();
-							partition.setReadOnly();
-							it.remove();
-					    } else {
-					        //create a new partition containing everything up to the line delimiter
-					        //and append that to the string buffer.
-					        String contentBefore = partitionText.substring(0, lastLineDelimiter);
-					        IOConsolePartition newPartition = new IOConsolePartition(inputStream, contentBefore);
-					        newPartition.setOffset(partition.getOffset());
-					        newPartition.setReadOnly();
-					        newPartition.clearBuffer();
-					        int index = partitions.indexOf(partition);
-						    partitions.add(index, newPartition);
-					        input.append(contentBefore);
-					        //delete everything that has been appended to the buffer.
-					        partition.delete(0, lastLineDelimiter);
-					        partition.setOffset(lastLineDelimiter + partition.getOffset());
-					        lastLineDelimiter = 0;
-					    }
-					}
-					if (input.length() > 0) {
-					    inputStream.appendData(input.toString());
-					}
-
-				}
-			}
-		}   
-		
-		return new Region(event.fOffset, event.fText.length());
-	}
-	
-	private void setUpdateInProgress(boolean b) {
-		updateInProgress = b;
-	}
-		
-	/**
-	 * A stream has been appended, add to pendingPartions list and schedule updateJob.
-	 * updateJob is scheduled with a slight delay, this allows the console to run the job
-	 * less frequently and update the document with a greater amount of data each time 
-	 * the job is run
-	 * @param stream The stream that was written to.
-	 * @param s The string that should be appended to the document.
-	 */
-	public void streamAppended(IOConsoleOutputStream stream, String s) throws IOException {
-        if (document == null) {
-            throw new IOException("Document is closed"); //$NON-NLS-1$
-        }
-		synchronized(pendingPartitions) {
-			PendingPartition last = (PendingPartition) (pendingPartitions.size() > 0 ? pendingPartitions.get(pendingPartitions.size()-1) : null);
-			if (last != null && last.stream == stream) {
-				last.append(s);
-			} else {
-				pendingPartitions.add(new PendingPartition(stream, s));
-                if (fBuffer > 1000) {
-                    queueJob.schedule();
-                } else {
-                    queueJob.schedule(50);
-                }
-			}
-            
-            if (fBuffer > 160000) { 
-                try {
-                    pendingPartitions.wait();
-                } catch (InterruptedException e) {
-                }
-            }
-		}
-	}
-	
-	/**
-	 * Holds data until updateJob can be run and the document can be updated.
-	 */
-	private class PendingPartition {
-		StringBuffer text = new StringBuffer(8192);
-		IOConsoleOutputStream stream;
-		
-		PendingPartition(IOConsoleOutputStream stream, String text) {
-			this.stream = stream;
-			if (text != null) {
-                append(text);
-            }
-		}
-		
-		void append(String moreText) {
-			text.append(moreText);
-            fBuffer += moreText.length();
-		}
-	}
-	
-	/**
-	 * Updates the document. Will append everything that is available before 
-	 * finishing.
-	 */
-	private class QueueProcessingJob extends UIJob {
-
-        QueueProcessingJob() {
-			super("IOConsole Updater"); //$NON-NLS-1$
-		}
-		
-        /*
-         *  (non-Javadoc)
-         * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
-         */
-        public IStatus runInUIThread(IProgressMonitor monitor) {
-        	synchronized (overflowLock) {
-        		ArrayList pendingCopy = new ArrayList();
-        		StringBuffer buffer = null;
-        		boolean consoleClosed = false;
-        		while (pendingPartitions.size() > 0) {
-        			synchronized(pendingPartitions) {
-        				pendingCopy.addAll(pendingPartitions);
-        				pendingPartitions.clear();
-        				fBuffer = 0;
-        				pendingPartitions.notifyAll();
-        			}
-
-        			buffer = new StringBuffer();
-        			for (Iterator i = pendingCopy.iterator(); i.hasNext(); ) {
-        				PendingPartition pp = (PendingPartition) i.next();
-        				if (pp != consoleClosedPartition) { 
-        					buffer.append(pp.text);
-        				} else {
-        					consoleClosed = true;
-        				}
-        			}
-        		}
-
-        		if (connected) {
-        			setUpdateInProgress(true);
-        			updatePartitions = pendingCopy;
-        			firstOffset = document.getLength();
-        			try {
-        				document.replace(firstOffset, 0, buffer.toString());
-        			} catch (BadLocationException e) {
-        			}
-        			updatePartitions = null;
-        			setUpdateInProgress(false);
-        		}
-        		if (consoleClosed) {
-        			console.partitionerFinished();
-        		}
-        		checkBufferSize();
-
-        	}
-
-        	return Status.OK_STATUS;
-        }        
-		
-        /* 
-         * Job will process as much as it can each time it's run, but it gets
-         * scheduled everytime a PendingPartition is added to the list, meaning
-         * that this job could get scheduled unnecessarily in cases of heavy output.
-         * Note however, that schedule() will only reschedule a running/scheduled Job
-         * once even if it's called many times.
-         */
-        public boolean shouldRun() {
-            boolean shouldRun = connected && pendingPartitions != null && pendingPartitions.size() > 0;
-            return shouldRun;
-        }
-	}
-
- 
-    
-	
-	
-
-    
-    /**
-     * Job to trim the console document, runs in the  UI thread.
-     */
-    private class TrimJob extends WorkbenchJob {
-        
-        /**
-         * trims output up to the line containing the given offset,
-         * or all output if -1.
-         */
-        private int truncateOffset;
-        
-        /**
-         * Creates a new job to trim the buffer.
-         */
-        TrimJob() {
-            super("Trim Job"); //$NON-NLS-1$
-            setSystem(true);
-        }
-        
-        /**
-         * Sets the trim offset.
-         * 
-         * @param offset trims output up to the line containing the given offset
-         */
-        public void setOffset(int offset) {
-            truncateOffset = offset;
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
-         */
-        public IStatus runInUIThread(IProgressMonitor monitor) {
-            IJobManager jobManager = Job.getJobManager();
-            try {
-                jobManager.join(console, monitor);
-            } catch (OperationCanceledException e1) {
-                return Status.CANCEL_STATUS;
-            } catch (InterruptedException e1) {
-                return Status.CANCEL_STATUS;
-            }
-        	if (document == null) {
-        		return Status.OK_STATUS;
-        	}
-        	
-        	int length = document.getLength();
-        	if (truncateOffset < length) {
-        		synchronized (overflowLock) {
-        			try {
-        				if (truncateOffset < 0) {
-        				    // clear
-        				    setUpdateInProgress(true);
-        					document.set(""); //$NON-NLS-1$
-        					setUpdateInProgress(false);
-        					partitions.clear();        					
-        				} else {
-        				    // overflow
-        				    int cutoffLine = document.getLineOfOffset(truncateOffset);
-        				    int cutOffset = document.getLineOffset(cutoffLine);
-
-
-        					// set the new length of the first partition
-        					IOConsolePartition partition = (IOConsolePartition) getPartition(cutOffset);
-        					partition.setLength(partition.getOffset() + partition.getLength() - cutOffset);
-        					
-        					setUpdateInProgress(true);
-        					document.replace(0, cutOffset, ""); //$NON-NLS-1$
-        					setUpdateInProgress(false);
-        					
-        					//remove partitions and reset Partition offsets
-        					int index = partitions.indexOf(partition);
-        					for (int i = 0; i < index; i++) {
-                                partitions.remove(0);
-                            }
-        					
-        					int offset = 0;
-        					for (Iterator i = partitions.iterator(); i.hasNext(); ) {
-        						IOConsolePartition p = (IOConsolePartition) i.next();
-        						p.setOffset(offset);
-        						offset += p.getLength();
-        					}
-        				}
-        			} catch (BadLocationException e) {
-        			}
-        		}
-        	}
-        	return Status.OK_STATUS;
-        }
-    }
-
-
-
-
-
-
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleDocumentPartitioner#isReadOnly(int)
-     */
-    public boolean isReadOnly(int offset) {
-        return ((IOConsolePartition)getPartition(offset)).isReadOnly();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleDocumentPartitioner#computeStyleRange(int, int)
-     */
-    public StyleRange[] getStyleRanges(int offset, int length) {
-    	if (!connected) {
-    		return new StyleRange[0];
-    	}
-        IOConsolePartition[] computedPartitions = (IOConsolePartition[])computePartitioning(offset, length);
-        StyleRange[] styles = new StyleRange[computedPartitions.length];        
-        for (int i = 0; i < computedPartitions.length; i++) {                
-            int rangeStart = Math.max(computedPartitions[i].getOffset(), offset);
-            int rangeLength = computedPartitions[i].getLength();
-            styles[i] = computedPartitions[i].getStyleRange(rangeStart, rangeLength);
-        }
-        return styles;
-    }
-    
-	
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
deleted file mode 100644
index e686955..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleDocumentPartitioner;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.console.TextConsoleViewer;
-
-/**
- * Viewer used to display an IOConsole
- * 
- * @since 3.1
- */
-public class IOConsoleViewer extends TextConsoleViewer {
-    /**
-     * will always scroll with output if value is true.
-     */
-    private boolean fAutoScroll = true;
-
-    private IDocumentListener fDocumentListener;
-    
-    public IOConsoleViewer(Composite parent, TextConsole console) {
-        super(parent, console);
-    }
-
-    public boolean isAutoScroll() {
-        return fAutoScroll;
-    }
-
-    public void setAutoScroll(boolean scroll) {
-        fAutoScroll = scroll;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.TextViewer#handleVerifyEvent(org.eclipse.swt.events.VerifyEvent)
-     */
-    protected void handleVerifyEvent(VerifyEvent e) {
-        IDocument doc = getDocument();
-        String[] legalLineDelimiters = doc.getLegalLineDelimiters();
-        String eventString = e.text;
-        try {
-            IConsoleDocumentPartitioner partitioner = (IConsoleDocumentPartitioner) doc.getDocumentPartitioner();
-            if (!partitioner.isReadOnly(e.start)) {
-                boolean isCarriageReturn = false;
-                for (int i = 0; i < legalLineDelimiters.length; i++) {
-                    if (e.text.equals(legalLineDelimiters[i])) {
-                        isCarriageReturn = true;
-                        break;
-                    }
-                }
-
-                if (!isCarriageReturn) {
-                    super.handleVerifyEvent(e);
-                    return;
-                }
-            }
-
-            int length = doc.getLength();
-            if (e.start == length) {
-                super.handleVerifyEvent(e);
-            } else {
-                try {
-                    doc.replace(length, 0, eventString);
-                } catch (BadLocationException e1) {
-                }
-                e.doit = false;
-            }
-        } finally {
-            StyledText text = (StyledText) e.widget;
-            text.setCaretOffset(text.getCharCount());
-        }
-    }
-
-    /**
-     * makes the associated text widget uneditable.
-     */
-    public void setReadOnly() {
-        ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
-            public void run() {
-                StyledText text = getTextWidget();
-                if (text != null && !text.isDisposed()) {
-                    text.setEditable(false);
-                }
-            }
-        });
-    }
-
-    /**
-     * @return <code>false</code> if text is editable
-     */
-    public boolean isReadOnly() {
-        return !getTextWidget().getEditable();
-    }
-   
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.ITextViewer#setDocument(org.eclipse.jface.text.IDocument)
-     */
-    public void setDocument(IDocument document) {
-        IDocument oldDocument= getDocument();
-        
-        super.setDocument(document);
-        
-        if (oldDocument != null) {
-            oldDocument.removeDocumentListener(getDocumentListener());
-        }
-        if (document != null) {
-            document.addDocumentListener(getDocumentListener());
-        }
-    }
-    
-    private IDocumentListener getDocumentListener() {
-        if (fDocumentListener == null) {
-            fDocumentListener= new IDocumentListener() {
-                public void documentAboutToBeChanged(DocumentEvent event) {
-                }
-
-                public void documentChanged(DocumentEvent event) {
-                    if (fAutoScroll) {
-                        revealEndOfDocument();
-                    }
-                }
-            };
-        }
-        return fDocumentListener;
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java
deleted file mode 100644
index 0064b92..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleFactory;
-
-/**
- * @since 3.1
- */
-public class OpenConsoleAction extends Action implements IMenuCreator {
-
-    private ConsoleFactoryExtension[] fFactoryExtensions;
-    private Menu fMenu;
-
-    public OpenConsoleAction() {
-        fFactoryExtensions = ((ConsoleManager)ConsolePlugin.getDefault().getConsoleManager()).getConsoleFactoryExtensions();
-		setText(ConsoleMessages.OpenConsoleAction_0); 
-		setToolTipText(ConsoleMessages.OpenConsoleAction_1);  
-		setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_NEW_CON));
-		setMenuCreator(this);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CONSOLE_OPEN_CONSOLE_ACTION);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuCreator#dispose()
-     */
-    public void dispose() {
-        fFactoryExtensions = null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
-     */
-    public Menu getMenu(Control parent) {
-        if (fMenu != null) {
-            fMenu.dispose();
-        }
-        
-        fMenu= new Menu(parent);
-        int accel = 1;
-        for (int i = 0; i < fFactoryExtensions.length; i++) {
-            ConsoleFactoryExtension extension = fFactoryExtensions[i];
-            if (!WorkbenchActivityHelper.filterItem(extension) && extension.isEnabled()) {
-                String label = extension.getLabel();
-                ImageDescriptor image = extension.getImageDescriptor();
-                addActionToMenu(fMenu, new ConsoleFactoryAction(label, image, extension), accel);
-                accel++;
-            }
-        }
-        return fMenu;
-    }
-    
-	private void addActionToMenu(Menu parent, Action action, int accelerator) {
-		if (accelerator < 10) {
-		    StringBuffer label= new StringBuffer();
-			//add the numerical accelerator
-			label.append('&');
-			label.append(accelerator);
-			label.append(' ');
-			label.append(action.getText());
-			action.setText(label.toString());
-		}
-		
-		ActionContributionItem item= new ActionContributionItem(action);
-		item.fill(parent, -1);
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
-     */
-    public Menu getMenu(Menu parent) {
-        return null;
-    }
-    
-    private class ConsoleFactoryAction extends Action {
-        
-        private ConsoleFactoryExtension fConfig;
-        private IConsoleFactory fFactory;
-
-        public ConsoleFactoryAction(String label, ImageDescriptor image, ConsoleFactoryExtension extension) {
-            setText(label);
-            if (image != null) {
-                setImageDescriptor(image);
-            }
-            fConfig = extension;
-        }
-        
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.action.IAction#run()
-         */
-        public void run() {
-            try {
-                if (fFactory == null) {
-                    fFactory = fConfig.createFactory();
-                }
-                
-                fFactory.openConsole();
-            } catch (CoreException e) {
-                ConsolePlugin.log(e);
-            }
-        }
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.action.IAction#runWithEvent(org.eclipse.swt.widgets.Event)
-         */
-        public void runWithEvent(Event event) {
-            run();
-        }
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java
deleted file mode 100644
index eab7513..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.IPatternMatchListenerDelegate;
-import org.eclipse.ui.console.PatternMatchEvent;
-import org.eclipse.ui.console.TextConsole;
-
-public class PatternMatchListener implements IPatternMatchListener {
-
-    private PatternMatchListenerExtension fExtension;
-    private IPatternMatchListenerDelegate fDelegate;
-    
-    public PatternMatchListener(PatternMatchListenerExtension extension) throws CoreException {
-        fExtension = extension;
-        fDelegate = fExtension.createDelegate();
-    }   
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IPatternMatchListener#getPattern()
-     */
-    public String getPattern() {
-        return fExtension.getPattern();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IPatternMatchListener#getCompilerFlags()
-     */
-    public int getCompilerFlags() {
-        return fExtension.getCompilerFlags();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IPatternMatchListener#matchFound(org.eclipse.ui.console.PatternMatchEvent)
-     */
-    public void matchFound(PatternMatchEvent event) {
-        fDelegate.matchFound(event);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IPatternMatchListenerDelegate#connect(org.eclipse.ui.console.TextConsole)
-     */
-    public void connect(TextConsole console) {
-        fDelegate.connect(console);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IPatternMatchListener#disconnect()
-     */
-    public void disconnect() {
-        fDelegate.disconnect();
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.console.IPatternMatchListener#getQuickPattern()
-	 */
-	public String getLineQualifier() {
-		return fExtension.getQuickPattern();
-	}
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java
deleted file mode 100644
index b4081df..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IPatternMatchListenerDelegate;
-
-import com.ibm.icu.text.MessageFormat;
-
-public class PatternMatchListenerExtension implements IPluginContribution {
-
-    private IConfigurationElement fConfig;
-    private Expression fEnablementExpression;
-    private String fPattern;
-    private String fQualifier;
-    private int fFlags = -1;
-   
-    public PatternMatchListenerExtension(IConfigurationElement extension) {
-        fConfig = extension;
-    }    
-
-    /*
-     * returns the integer value of the flags defined in java.util.regex.Pattern.
-     * Both <code>Pattern.MULTILINE</code> and <code>MULTILINE</code> will return
-     * the same value.
-     */
-    public int parseFlags(String flagsElement) {
-        int val = 0;
-        if (flagsElement == null) {
-            return val;
-        }
-            
-        try {
-            flagsElement = flagsElement.replaceAll("Pattern.", ""); //$NON-NLS-1$ //$NON-NLS-2$
-            String[] tokens = flagsElement.split("\\s\\|\\s"); //$NON-NLS-1$
-            Class clazz = Class.forName("java.util.regex.Pattern"); //$NON-NLS-1$
-            
-            for (int i = 0; i < tokens.length; i++) {
-                Field field = clazz.getDeclaredField(tokens[i]);
-                val |= field.getInt(null);
-            }
-        } catch (ClassNotFoundException e) {
-            ConsolePlugin.log(e);
-        } catch (NoSuchFieldException e) {
-            ConsolePlugin.log(e);
-        } catch (IllegalAccessException e) {
-            ConsolePlugin.log(e);
-        }
-        return val;
-    }
-    
-    public boolean isEnabledFor(IConsole console) throws CoreException {
-        EvaluationContext context = new EvaluationContext(null, console);
-        EvaluationResult evaluationResult = getEnablementExpression().evaluate(context);
-        return evaluationResult == EvaluationResult.TRUE;
-    }
-    
-    public IPatternMatchListenerDelegate createDelegate() throws CoreException {
-        return (IPatternMatchListenerDelegate) fConfig.createExecutableExtension("class"); //$NON-NLS-1$
-    }
-    
-    public Expression getEnablementExpression() throws CoreException {
-		if (fEnablementExpression == null) {
-			IConfigurationElement[] elements = fConfig.getChildren(ExpressionTagNames.ENABLEMENT);
-            if (elements.length == 0) {
-                String message = MessageFormat.format("{0} " +getLocalId() + " {1} " + getPluginId() + " {2}", new String[] {ConsoleMessages.PatternMatchListenerExtension_3,ConsoleMessages.PatternMatchListenerExtension_4,ConsoleMessages.PatternMatchListenerExtension_5}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                ConsolePlugin.log(new Status(IStatus.WARNING, ConsolePlugin.getUniqueIdentifier(), IStatus.OK, message, null));
-            }
-			IConfigurationElement enablement = elements.length > 0 ? elements[0] : null; 
-
-			if (enablement != null) {
-			    fEnablementExpression = ExpressionConverter.getDefault().perform(enablement);
-			}
-		}
-		return fEnablementExpression;
-    }
-    
-    /*
-     * returns the regular expression to be matched.
-     */
-    public String getPattern() {
-        if (fPattern == null) {
-            fPattern = fConfig.getAttribute("regex"); //$NON-NLS-1$
-            try {
-            	fPattern = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(fPattern, false);
-            } catch (CoreException e) {
-            	ConsolePlugin.log(e);
-            }
-        }
-        return fPattern;
-    }
-
-    /*
-     * returns the flags to be used by <code>Pattern.compile(pattern, flags)</code>
-     */
-    public int getCompilerFlags() {
-        if(fFlags < 0) {
-            String flagsAttribute = fConfig.getAttribute("flags"); //$NON-NLS-1$
-            fFlags = parseFlags(flagsAttribute);
-        }
-        return fFlags;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPluginContribution#getLocalId()
-     */
-    public String getLocalId() {
-        return fConfig.getAttribute("id"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPluginContribution#getPluginId()
-     */
-    public String getPluginId() {
-        return fConfig.getContributor().getName();
-    }
-
-    public String getQuickPattern() {
-    	if (fQualifier == null) {
-    		fQualifier = fConfig.getAttribute("qualifier"); //$NON-NLS-1$
-    		try {
-    			if (fQualifier != null) {
-    				fQualifier = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(fQualifier, false);
-    			}
-			} catch (CoreException e) {
-				ConsolePlugin.log(e);
-			}
-    	}
-    	return fQualifier;
-    }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java
deleted file mode 100644
index 61d3074..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Pins the currently visible console in a console view.
- */
-public class PinConsoleAction extends Action implements IUpdate {
-	
-	private IConsoleView fView = null;
-
-	/**
-	 * Constructs a 'pin console' action
-	 */
-	public PinConsoleAction(IConsoleView view) {
-		super(ConsoleMessages.PinConsoleAction_0, IAction.AS_CHECK_BOX); 
-		setToolTipText(ConsoleMessages.PinConsoleAction_1); 
-		setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_PIN));
-		setDisabledImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_DLCL_PIN));
-		setHoverImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_LCL_PIN));
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CONSOLE_PIN_CONSOLE_ACITON);
-		fView = view;
-		update();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-        fView.setPinned(isChecked());
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.IUpdate#update()
-	 */
-	public void update() {
-		setEnabled(fView.getConsole() != null);
-		setChecked(fView.isPinned());
-	}
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java
deleted file mode 100644
index e0b2ad2..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.IConsoleView;
-
-/**
- * Toggles console auto-scroll
- * 
- * @since 3.1
- */
-public class ScrollLockAction extends Action {
-
-    private IConsoleView fConsoleView;
-	
-	public ScrollLockAction(IConsoleView consoleView) {
-		super(ConsoleMessages.ScrollLockAction_0); 
-        fConsoleView = consoleView;
-		
-		setToolTipText(ConsoleMessages.ScrollLockAction_1);  
-		setHoverImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_LCL_LOCK));		
-		setDisabledImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_DLCL_LOCK));
-		setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_LOCK));
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IConsoleHelpContextIds.CONSOLE_SCROLL_LOCK_ACTION);
-		boolean checked = fConsoleView.getScrollLock();  
-		setChecked(checked);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-        fConsoleView.setScrollLock(isChecked());
-	}
-	
-	public void dispose() {
-        fConsoleView = null;
-	}
-
-}
-
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java
deleted file mode 100644
index 54e0014..0000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleView;
-
-/**
- * Shows a specific console in the console view
- */
-public class ShowConsoleAction extends Action {
-	
-	private IConsole fConsole;
-	private IConsoleView fView;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		if (!fConsole.equals(fView.getConsole())) {
-            boolean pinned = fView.isPinned();
-            if (pinned) {
-                fView.setPinned(false);
-            }
-		    fView.display(fConsole);
-            if (pinned) {
-               fView.setPinned(true); 
-            }
-		}
-	}
-
-	/**
-	 * Constructs an action to display the given console.
-	 * 
-	 * @param view the console view in which the given console is contained
-	 * @param console the console
-	 */
-	public ShowConsoleAction(IConsoleView view, IConsole console) {
-		super(console.getName(), AS_RADIO_BUTTON);
-		fConsole = console;
-		fView = view;
-		setImageDescriptor(console.getImageDescriptor());
-	}
-}
diff --git a/org.eclipse.ui.externaltools/.classpath b/org.eclipse.ui.externaltools/.classpath
deleted file mode 100644
index 4357066..0000000
--- a/org.eclipse.ui.externaltools/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="src" path="External Tools Base"/>

-	<classpathentry kind="src" path="Program Tools Support"/>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.ui.externaltools/.cvsignore b/org.eclipse.ui.externaltools/.cvsignore
deleted file mode 100644
index 1fb8f5b..0000000
--- a/org.eclipse.ui.externaltools/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin

-externaltools.jar

-build.xml

-temp.folder

diff --git a/org.eclipse.ui.externaltools/.project b/org.eclipse.ui.externaltools/.project
deleted file mode 100644
index 28c5bcf..0000000
--- a/org.eclipse.ui.externaltools/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.ui.externaltools</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

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

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

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

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6f541a9..0000000
--- a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,73 +0,0 @@
-#Sat Mar 24 09:58:42 PST 2007

-eclipse.preferences.version=1

-org.eclipse.jdt.core.builder.cleanOutputFolder=clean

-org.eclipse.jdt.core.builder.duplicateResourceTask=warning

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

-org.eclipse.jdt.core.circularClasspath=error

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2

-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

-org.eclipse.jdt.core.compiler.compliance=1.4

-org.eclipse.jdt.core.compiler.debug.lineNumber=generate

-org.eclipse.jdt.core.compiler.debug.localVariable=generate

-org.eclipse.jdt.core.compiler.debug.sourceFile=generate

-org.eclipse.jdt.core.compiler.doc.comment.support=enabled

-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100

-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning

-org.eclipse.jdt.core.compiler.problem.deprecation=warning

-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning

-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning

-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning

-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore

-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning

-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning

-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private

-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning

-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning

-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore

-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled

-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public

-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore

-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private

-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning

-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning

-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning

-org.eclipse.jdt.core.compiler.problem.nullReference=warning

-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning

-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled

-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore

-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore

-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning

-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

-org.eclipse.jdt.core.compiler.problem.unusedImport=warning

-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning

-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning

-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled

-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled

-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-org.eclipse.jdt.core.compiler.source=1.3

-org.eclipse.jdt.core.incompatibleJDKLevel=ignore

-org.eclipse.jdt.core.incompleteClasspath=error

diff --git a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 60a514d..0000000
--- a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Feb 22 12:19:21 PST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs b/org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 4c5630d..0000000
--- a/org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:35:50 GMT-08:00 2004

-compilers.p.unused-element-or-attribute=1

-compilers.p.unresolved-ex-points=0

-compilers.p.deprecated=1

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=1

-compilers.p.unknown-class=1

-compilers.p.unknown-attribute=0

-compilers.p.no-required-att=0

-eclipse.preferences.version=1

-compilers.p.unresolved-import=0

-compilers.p.not-externalized-att=1

-compilers.p.illegal-att-value=0

-compilers.use-project=true

diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuildTab.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuildTab.java
deleted file mode 100644
index 8c510ed..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuildTab.java
+++ /dev/null
@@ -1,417 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsImages;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * A launch configuration tab which allows the user to specify
- * which resources should be built before a build (a build scope)
- * <p>
- * This class may be instantiated; this class is not intended
- * to be subclassed.
- * </p>
- * A generalized version of AntBuildTab which was removed after the work of bug 165371
- * @since 3.4
- */
-public class ExternalToolsBuildTab extends AbstractLaunchConfigurationTab {
-	// Check Buttons
-	private Button fBuildButton;
-	
-	// Group box
-	private Group fGroup;
-	
-	// Radio Buttons
-	private Button fProjectButton;
-	private Button fSpecificProjectsButton;
-	private Button fWorkspaceButton;
-	
-	// Push Button
-	private Button fSelectButton;
-	
-	// whether to include referenced projects
-	private Button fReferencedProjects;
-	
-	// projects to build (empty if none)
-	private List fProjects = new ArrayList();
-	
-	class ProjectsContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((IWorkspace)inputElement).getRoot().getProjects();
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-		
-	}
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite mainComposite = new Composite(parent, SWT.NONE);
-		setControl(mainComposite);
-		
-		GridLayout layout = new GridLayout();
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		mainComposite.setLayout(layout);
-		mainComposite.setLayoutData(gd);
-		mainComposite.setFont(parent.getFont());
-		
-		fBuildButton = createCheckButton(mainComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_1);
-		fBuildButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateEnabledState();
-				updateLaunchConfigurationDialog();
-			}
-		});
-		
-		fGroup = new Group(mainComposite, SWT.NONE);
-		fGroup.setFont(mainComposite.getFont());
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		fGroup.setLayout(layout);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		fGroup.setLayoutData(gd);
-
-		SelectionAdapter adapter = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (((Button)e.getSource()).getSelection()) {
-					updateEnabledState();
-					updateLaunchConfigurationDialog();
-				}
-			}
-		};
-		
-		fWorkspaceButton = createRadioButton(fGroup, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_2);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		fWorkspaceButton.setLayoutData(gd);
-		fWorkspaceButton.addSelectionListener(adapter);
-		
-		fProjectButton = createRadioButton(fGroup, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_3);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		fProjectButton.setLayoutData(gd);		
-		fProjectButton.addSelectionListener(adapter);
-				
-		fSpecificProjectsButton = createRadioButton(fGroup, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_4);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 1;
-		fSpecificProjectsButton.setLayoutData(gd);
-		fSpecificProjectsButton.addSelectionListener(adapter);		
-		
-		fSelectButton = createPushButton(fGroup, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_5, null);
-		gd = (GridData)fSelectButton.getLayoutData();
-		gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_END;
-		fSelectButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				selectResources();
-			}
-		});
-		
-		createVerticalSpacer(mainComposite, 1);
-		fReferencedProjects = createCheckButton(mainComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_6);
-	}
-
-	/**
-	 * Prompts the user to select the projects to build.
-	 */
-	private void selectResources() {
-		ListSelectionDialog dialog = new ListSelectionDialog(getShell(), ResourcesPlugin.getWorkspace(), new ProjectsContentProvider(), new WorkbenchLabelProvider(), ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_7);
-		dialog.setInitialElementSelections(fProjects);
-		if (dialog.open() == Window.CANCEL) {
-			return;
-		}
-		Object[] res = dialog.getResult();
-		fProjects = new ArrayList(res.length);
-		for (int i = 0; i < res.length; i++) {
-			fProjects.add(res[i]);
-		}
-		updateLaunchConfigurationDialog();
-	}
-	
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public void initializeFrom(ILaunchConfiguration configuration) {
-		updateScope(configuration);
-		updateReferencedProjects(configuration);
-		updateEnabledState();		
-	}
-	
-	private void updateReferencedProjects(ILaunchConfiguration configuration) {
-		boolean ref = false;
-		try {
-			ref = configuration.getAttribute(IExternalToolConstants.ATTR_INCLUDE_REFERENCED_PROJECTS, true);
-		} catch (CoreException e) {
-			ExternalToolsPlugin.getDefault().log("Exception reading launch configuration", e); //$NON-NLS-1$
-		}
-		fReferencedProjects.setSelection(ref);
-	}
-
-	/**
-	 * Updates the tab to display the build scope specified by the launch config
-	 */
-	private void updateScope(ILaunchConfiguration configuration) {
-		String scope = null;
-		try {
-			scope= configuration.getAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, (String)null);
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log("Exception reading launch configuration", ce); //$NON-NLS-1$
-		}
-		fBuildButton.setSelection(scope != null);
-		fWorkspaceButton.setSelection(false);
-		fProjectButton.setSelection(false);
-		fSpecificProjectsButton.setSelection(false);
-		fProjects.clear();
-		if (scope == null) {
-			// select the workspace by default
-			fBuildButton.setSelection(true);
-			fWorkspaceButton.setSelection(true);
-		} else {
-			if (scope.equals("${none}")) { //$NON-NLS-1$
-				fBuildButton.setSelection(false);
-			} else if (scope.equals("${project}")) { //$NON-NLS-1$
-				fProjectButton.setSelection(true);
-			} else if (scope.startsWith("${projects:")) { //$NON-NLS-1$
-				fSpecificProjectsButton.setSelection(true);
-				IProject[] projects = getBuildProjects(configuration, IExternalToolConstants.ATTR_BUILD_SCOPE);
-				fProjects = new ArrayList(projects.length);
-				for (int i = 0; i < projects.length; i++) {
-					fProjects.add(projects[i]);
-				}
-			}
-		}
-	}
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		String scope = generateScopeMemento();
-		configuration.setAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, scope);
-		if (fReferencedProjects.getSelection()) {
-			// default is true
-			configuration.setAttribute(IExternalToolConstants.ATTR_INCLUDE_REFERENCED_PROJECTS, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_INCLUDE_REFERENCED_PROJECTS, false);
-		}
-	}
-
-	/**
-	 * Generates a memento for the build scope.
-	 */
-	private String generateScopeMemento() {
-		if (fBuildButton.getSelection()) {
-			if (fWorkspaceButton.getSelection()) {
-				return null;
-			}
-			if (fProjectButton.getSelection()) {
-				return "${project}"; //$NON-NLS-1$
-			}
-			if (fSpecificProjectsButton.getSelection()) {
-				return getBuildScopeAttribute(fProjects);
-			}
-			return null;
-			
-		}
-		return "${none}"; //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-	 */
-	public String getName() {
-		return ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_8;
-	}
-	
-	/**
-	 * Updates the enablement state of the fields.
-	 */
-	private void updateEnabledState() {
-		boolean enabled= fBuildButton.getSelection();
-		fGroup.setEnabled(enabled);
-		fWorkspaceButton.setEnabled(enabled);
-		fProjectButton.setEnabled(enabled);
-		fSpecificProjectsButton.setEnabled(enabled);
-		fSelectButton.setEnabled(enabled && fSpecificProjectsButton.getSelection());
-		if (!enabled) {
-			super.setErrorMessage(null);
-		}
-		if (enabled) {
-			if (!fWorkspaceButton.getSelection() && !fProjectButton.getSelection() &&
-					!fSpecificProjectsButton.getSelection()) {
-				fWorkspaceButton.setSelection(true);
-			}
-		}
-		fReferencedProjects.setEnabled(fBuildButton.getSelection() && (fProjectButton.getSelection() || fSpecificProjectsButton.getSelection()));
-	}
-	
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return ExternalToolsImages.getImage(IExternalToolConstants.IMG_TAB_BUILD);
-	}
-
-	public boolean isValid(ILaunchConfiguration launchConfig) {
-		setErrorMessage(null);
-		setMessage(null);
-		if (fBuildButton.getSelection() && fSpecificProjectsButton.getSelection() && fProjects.isEmpty()) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuildTab_9);
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Returns a collection of projects referenced by a build scope attribute.
-	 * 
-	 * @return collection of projects referred to by configuration
-	 */
-	public static IProject[] getBuildProjects(ILaunchConfiguration configuration, String buildScopeId) {
-		String scope = null;
-		String id = buildScopeId ;
-		if (id == null) {
-			id = IExternalToolConstants.ATTR_BUILD_SCOPE ;
-		}
-		try {
-			scope = configuration.getAttribute(id, (String)null);
-		} catch (CoreException e) {
-			return null;
-		}
-		if (scope == null) {
-			return null;
-		}
-		if (scope.startsWith("${projects:")) { //$NON-NLS-1$
-			String pathString = scope.substring(11, scope.length() - 1);
-			if (pathString.length() > 1) {
-				String[] names = pathString.split(","); //$NON-NLS-1$
-				IProject[] projects = new IProject[names.length];
-				IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-				for (int i = 0; i < names.length; i++) {
-					projects[i] = root.getProject(names[i]);
-				}
-				return projects;
-			}
-		} else if (scope.equals("${project}")) { //$NON-NLS-1$
-			IResource resource = DebugUITools.getSelectedResource();
-			if (resource != null) {
-				return new IProject[]{resource.getProject()};
-			}
-		}
-		return new IProject[0];
-	}
-	
-	/**
-	 * Whether referenced projects should be considered when building. Only valid
-	 * when a set of projects is to be built.
-	 * 
-	 * @param configuration
-	 * @return whether referenced projects should be considerd when building
-	 * @throws CoreException if unable to access the associated attribute
-	 */
-	public static boolean isIncludeReferencedProjects(ILaunchConfiguration configuration, String includeReferencedProjectsId) throws CoreException {
-		String id = includeReferencedProjectsId;
-		if (id == null) {
-			id = IExternalToolConstants.ATTR_INCLUDE_REFERENCED_PROJECTS ;
-		}
-		return configuration.getAttribute(id, true);
-	}
-	
-	/**
-	 * Creates and returns a memento for the given project set, to be used as a
-	 * build scope attribute.
-	 * 
-	 * @param projects list of projects
-	 * @return an equivalent refresh attribute
-	 */
-	public static String getBuildScopeAttribute(List projects) {
-		StringBuffer buf = new StringBuffer();
-		buf.append("${projects:"); //$NON-NLS-1$
-		Iterator iterator = projects.iterator();
-		while (iterator.hasNext()) {
-			IProject project = (IProject) iterator.next();
-			buf.append(project.getName());
-			if (iterator.hasNext()) {
-				buf.append(","); //$NON-NLS-1$
-			}
-		}
-		buf.append("}"); //$NON-NLS-1$
-		return buf.toString();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
-		// do nothing on activation
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#deactivated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) {
-		// do nothing on deactivation
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
deleted file mode 100644
index 38f59a9..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
+++ /dev/null
@@ -1,546 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.debug.ui.StringVariableSelectionDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.eclipse.ui.dialogs.IWorkingSetEditWizard;
-import org.eclipse.ui.externaltools.internal.model.BuilderUtils;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.navigator.ResourceComparator;
-
-public class ExternalToolsBuilderTab extends AbstractLaunchConfigurationTab {
-
-	protected Button afterClean;
-	protected Button fDuringClean;
-	protected Button autoBuildButton;
-	protected Button manualBuild;
-	protected Button workingSetButton;
-	protected Button specifyResources;
-	protected Button fLaunchInBackgroundButton;
-	protected IWorkingSet workingSet; 
-	protected ILaunchConfiguration fConfiguration;
-	
-    private boolean fCreateBuildScheduleComponent= true;
-    
-    // Console Output widgets
-    private Button fConsoleOutput;
-    private Button fFileOutput;
-    private Button fFileBrowse;
-    private Text fFileText;
-    private Button fVariables;
-    private Button fAppend;
-    private Button fWorkspaceBrowse;
-    
-    public ExternalToolsBuilderTab() {
-    }
-    
-    public ExternalToolsBuilderTab(boolean createBuildScheduleComponent) {
-        fCreateBuildScheduleComponent= createBuildScheduleComponent;
-    }
-    
-	protected SelectionListener selectionListener= new SelectionAdapter() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-		 */
-		public void widgetSelected(SelectionEvent e) {
-			boolean enabled= !fCreateBuildScheduleComponent || autoBuildButton.getSelection() || manualBuild.getSelection();
-			workingSetButton.setEnabled(enabled);
-			specifyResources.setEnabled(enabled && workingSetButton.getSelection());
-			updateLaunchConfigurationDialog();
-		}
-	};
-
-	public void createControl(Composite parent) {
-		Composite mainComposite = new Composite(parent, SWT.NONE);
-		setControl(mainComposite);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IExternalToolsHelpContextIds.EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_BUILDER_TAB);
-		
-		GridLayout layout = new GridLayout();
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		mainComposite.setLayout(layout);
-		mainComposite.setLayoutData(gridData);
-		mainComposite.setFont(parent.getFont());
-        createOutputCaptureComponent(mainComposite);
-		createLaunchInBackgroundComposite(mainComposite);
-		createBuildScheduleComponent(mainComposite);
-	}
-	
-	/**
-	 * Creates the controls needed to edit the launch in background
-	 * attribute of an external tool
-	 *
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createLaunchInBackgroundComposite(Composite parent) {
-		fLaunchInBackgroundButton = createCheckButton(parent, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_14);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.horizontalSpan = 2;
-		fLaunchInBackgroundButton.setLayoutData(data);
-		fLaunchInBackgroundButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateLaunchConfigurationDialog();
-			}
-		});
-	}
-	
-	protected void createBuildScheduleComponent(Composite parent) {
-        if (fCreateBuildScheduleComponent) {
-    		Label label= new Label(parent, SWT.NONE);
-    		label.setText(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_Run_this_builder_for__1);
-    		label.setFont(parent.getFont());
-    		afterClean= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab__Full_builds_2, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_Full, 2);
-    		manualBuild= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab__Incremental_builds_4, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_Inc, 2);
-    		autoBuildButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab__Auto_builds__Not_recommended__6, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_Auto, 2);  
-    		fDuringClean= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_0, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_1, 2);
-    		
-    		createVerticalSpacer(parent, 2);
-        }
-		
-		workingSetButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_workingSet_label, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_workingSet_tooltip, 1);
-		specifyResources= createPushButton(parent, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_13, null);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		specifyResources.setLayoutData(gd);
-		specifyResources.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				selectResources();
-			}
-		});
-        Label label= new Label(parent, SWT.NONE);
-        label.setText(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_2);
-        label.setFont(parent.getFont());
-	}
-    
-    private void createOutputCaptureComponent(Composite parent) {
-        Group group = new Group(parent, SWT.NONE);
-        group.setText(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_17); 
-        GridData gd = new GridData(SWT.FILL, SWT.NONE, true, false);
-        gd.horizontalSpan = 2;
-        group.setLayoutData(gd);
-        GridLayout layout = new GridLayout(5, false);
-        group.setLayout(layout);
-        group.setFont(parent.getFont());
-        
-        fConsoleOutput = createCheckButton(group, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_18); 
-        gd = new GridData(SWT.BEGINNING, SWT.NORMAL, true, false);
-        gd.horizontalSpan = 5;
-        fConsoleOutput.setLayoutData(gd);
-        
-        fConsoleOutput.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateLaunchConfigurationDialog();
-            }
-        });
-        
-        fFileOutput = createCheckButton(group, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_19); 
-        fFileOutput.setLayoutData(new GridData(SWT.BEGINNING, SWT.NORMAL, false, false));
-        
-        fFileText = new Text(group, SWT.SINGLE | SWT.BORDER);
-        gd = new GridData(SWT.FILL, SWT.NORMAL, true, false);
-        gd.horizontalSpan = 4;
-        fFileText.setLayoutData(gd);
-        fFileText.setFont(parent.getFont());
-        
-        Label spacer = new Label(group,SWT.NONE);
-        gd = new GridData(SWT.FILL, SWT.NORMAL, true, false);
-        gd.horizontalSpan=2;
-        spacer.setLayoutData(gd);
-        fWorkspaceBrowse = createPushButton(group, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_20, null); 
-        fFileBrowse = createPushButton(group, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_21, null); 
-        fVariables = createPushButton(group, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_22, null); 
-
-        spacer = new Label(group,SWT.NONE);
-        spacer.setLayoutData(new GridData(SWT.FILL, SWT.NORMAL, false, false));
-        fAppend = createCheckButton(group, ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_23); 
-        gd = new GridData(SWT.LEFT, SWT.TOP, true, false);
-        gd.horizontalSpan = 4;
-        fAppend.setLayoutData(gd);
-        
-        fFileOutput.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                boolean enabled = fFileOutput.getSelection();
-                fFileText.setEnabled(enabled);
-                fFileBrowse.setEnabled(enabled);
-                fWorkspaceBrowse.setEnabled(enabled);
-                fVariables.setEnabled(enabled);
-                fAppend.setEnabled(enabled);
-                updateLaunchConfigurationDialog();
-            }
-        });
-        
-        fAppend.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateLaunchConfigurationDialog();
-            }
-        });
-        
-        fWorkspaceBrowse.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
-                dialog.setTitle(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_24); 
-                dialog.setMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_25); 
-                dialog.setInput(ResourcesPlugin.getWorkspace().getRoot()); 
-                dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
-                int buttonId = dialog.open();
-                if (buttonId == IDialogConstants.OK_ID) {
-                    IResource resource = (IResource) dialog.getFirstResult();
-                    String arg = resource.getFullPath().toString();
-                    String fileLoc = VariablesPlugin.getDefault().getStringVariableManager().generateVariableExpression("workspace_loc", arg); //$NON-NLS-1$
-                    fFileText.setText(fileLoc);
-                }
-            }
-        });
-        
-        fFileBrowse.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                String filePath = fFileText.getText();
-                FileDialog dialog = new FileDialog(getShell(), SWT.SAVE);
-                
-                filePath = dialog.open();
-                if (filePath != null) {
-                    fFileText.setText(filePath);
-                }
-            }
-        });
-        
-        fFileText.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                updateLaunchConfigurationDialog();
-            }
-        });
-        
-        fVariables.addSelectionListener(new SelectionListener() {
-            public void widgetSelected(SelectionEvent e) {
-                StringVariableSelectionDialog dialog = new StringVariableSelectionDialog(getShell());
-                dialog.open();
-                String variable = dialog.getVariableExpression();
-                if (variable != null) {
-                    fFileText.insert(variable);
-                }
-            }
-            public void widgetDefaultSelected(SelectionEvent e) {   
-            }
-        });
-    }
-	
-	/*
-	 * Creates a check button in the given composite with the given text
-	 */
-	protected Button createButton(Composite parent, SelectionListener listener, String text, String tooltipText, int columns) {
-		Button button= createCheckButton(parent, text);
-		button.setToolTipText(tooltipText);
-		button.addSelectionListener(listener);
-        GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = columns;
-		button.setLayoutData(gd);
-		return button;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-		StringBuffer buffer= new StringBuffer(IExternalToolConstants.BUILD_TYPE_FULL);
-		buffer.append(',');
-		buffer.append(IExternalToolConstants.BUILD_TYPE_INCREMENTAL);
-		buffer.append(','); 
-		configuration.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-		configuration.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false);
-		configuration.setAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public void initializeFrom(ILaunchConfiguration configuration) {
-		fConfiguration= configuration;
-        if (fCreateBuildScheduleComponent) {
-            afterClean.setSelection(false);
-            manualBuild.setSelection(false);
-            autoBuildButton.setSelection(false);
-            fDuringClean.setSelection(false);
-        }
-
-		String buildKindString= null;
-		String buildScope= null;
-		try {
-			buildKindString= configuration.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, ""); //$NON-NLS-1$
-			buildScope= configuration.getAttribute(IExternalToolConstants.ATTR_BUILDER_SCOPE, (String)null);
-		} catch (CoreException e) {
-		}
-		
-		workingSetButton.setSelection(buildScope != null);
-		workingSetButton.setEnabled(buildScope != null);
-		
-		if (buildScope != null) {
-			workingSet = RefreshTab.getWorkingSet(buildScope);
-		}
-		
-        if (fCreateBuildScheduleComponent) {
-    		int buildTypes[]= BuilderUtils.buildTypesToArray(buildKindString);
-    		for (int i = 0; i < buildTypes.length; i++) {
-    			switch (buildTypes[i]) {
-    				case IncrementalProjectBuilder.FULL_BUILD:
-    					afterClean.setSelection(true);
-    					break;
-    				case IncrementalProjectBuilder.INCREMENTAL_BUILD:
-    					manualBuild.setSelection(true);
-    					break;
-    				case IncrementalProjectBuilder.AUTO_BUILD:
-    					autoBuildButton.setSelection(true);
-    					break;
-    				case IncrementalProjectBuilder.CLEAN_BUILD:
-    					fDuringClean.setSelection(true);
-    					break;
-    			}
-    		}
-        }
-        
-		boolean enabled= true;
-		if (fCreateBuildScheduleComponent) {
-			enabled= autoBuildButton.getSelection() || manualBuild.getSelection();
-		}
-		workingSetButton.setEnabled(enabled);
-		specifyResources.setEnabled(enabled && workingSetButton.getSelection());
-		updateRunInBackground(configuration);
-        updateConsoleOutput(configuration);
-	}
-	
-	protected void updateRunInBackground(ILaunchConfiguration configuration) { 
-		fLaunchInBackgroundButton.setSelection(isLaunchInBackground(configuration));
-	}
-    
-    private void updateConsoleOutput(ILaunchConfiguration configuration) {
-        boolean outputToConsole = true;
-        String outputFile = null;
-        boolean append = false;
-        
-        try {
-            outputToConsole = configuration.getAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, true);
-            outputFile = configuration.getAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, (String)null);
-            append = configuration.getAttribute(IDebugUIConstants.ATTR_APPEND_TO_FILE, false);
-        } catch (CoreException e) {
-        }
-        
-        fConsoleOutput.setSelection(outputToConsole);
-        fAppend.setSelection(append);
-        boolean haveOutputFile= outputFile != null;
-        if (haveOutputFile) {
-            fFileText.setText(outputFile);
-        }
-        fFileOutput.setSelection(haveOutputFile);
-        fFileText.setEnabled(haveOutputFile);
-        fFileBrowse.setEnabled(haveOutputFile);
-        fWorkspaceBrowse.setEnabled(haveOutputFile);
-        fVariables.setEnabled(haveOutputFile);
-        fAppend.setEnabled(haveOutputFile);
-    }
-	
-	/**
-	 * Returns whether the given configuration should be run in the background.
-	 * 
-	 * @param configuration the configuration
-	 * @return whether the configuration is configured to run in the background
-	 */
-	public static boolean isLaunchInBackground(ILaunchConfiguration configuration) {
-		boolean launchInBackground= false;
-		try {
-			launchInBackground= configuration.getAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false);
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ce);
-		}
-		return launchInBackground;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-        if (fCreateBuildScheduleComponent) {
-        	StringBuffer buffer= new StringBuffer();
-    		if (afterClean.getSelection()) {
-    			buffer.append(IExternalToolConstants.BUILD_TYPE_FULL).append(',');
-    		} 
-    		if (manualBuild.getSelection()){
-    			buffer.append(IExternalToolConstants.BUILD_TYPE_INCREMENTAL).append(','); 
-    		} 
-    		if (autoBuildButton.getSelection()) {
-    			buffer.append(IExternalToolConstants.BUILD_TYPE_AUTO).append(',');
-    		}
-    		
-    		if (fDuringClean.getSelection()) {
-    			buffer.append(IExternalToolConstants.BUILD_TYPE_CLEAN);
-    		}
-    		configuration.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-        }
-		if (workingSetButton.getSelection()) {
-			String scope = RefreshTab.getRefreshAttribute(workingSet);
-			configuration.setAttribute(IExternalToolConstants.ATTR_BUILDER_SCOPE, scope);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_BUILDER_SCOPE, (String)null);
-		}
-		configuration.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, fLaunchInBackgroundButton.getSelection());
-        
-        boolean captureOutput = false;
-        if (fConsoleOutput.getSelection()) {
-            captureOutput = true;
-            configuration.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, (String)null);
-        } else {
-            configuration.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, false);
-        }
-        if (fFileOutput.getSelection()) {
-            captureOutput = true;
-            String file = fFileText.getText();
-            configuration.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, file);
-            if(fAppend.getSelection()) {
-                configuration.setAttribute(IDebugUIConstants.ATTR_APPEND_TO_FILE, true);
-            } else {
-                configuration.setAttribute(IDebugUIConstants.ATTR_APPEND_TO_FILE, (String)null);
-            }
-        } else {
-            configuration.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, (String)null);
-        }
-        
-        if (!captureOutput) {
-            configuration.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false);
-        } else {
-            configuration.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, (String)null);
-        }
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-	 */
-	public String getName() {
-		return ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_Build_Options_9;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public boolean isValid(ILaunchConfiguration launchConfig) {
-		setErrorMessage(null);
-		setMessage(null);
-		if (fCreateBuildScheduleComponent) {
-		    boolean buildKindSelected= afterClean.getSelection() || manualBuild.getSelection() || autoBuildButton.getSelection() || fDuringClean.getSelection();
-    		if (!buildKindSelected) {
-    			setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_buildKindError);
-    			return false;
-    		}
-        }
-		if (workingSetButton.getSelection() && (workingSet == null || workingSet.getElements().length == 0)) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_16);
-            return false;
-		}
-		
-		return validateRedirectFile();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#canSave()
-	 */
-	public boolean canSave() {
-		return isValid(null);
-	}
-
-	/**
-	 * Prompts the user to select the working set that triggers the build.
-	 */
-	private void selectResources() {
-		IWorkingSetManager workingSetManager= PlatformUI.getWorkbench().getWorkingSetManager();
-		
-		if (workingSet == null){
-			workingSet = workingSetManager.createWorkingSet(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_15, new IAdaptable[0]);
-		}
-		IWorkingSetEditWizard wizard= workingSetManager.createWorkingSetEditWizard(workingSet);
-		WizardDialog dialog = new WizardDialog(ExternalToolsPlugin.getStandardDisplay().getActiveShell(), wizard);
-		dialog.create();		
-		
-		if (dialog.open() == Window.CANCEL) {
-			return;
-		}
-		workingSet = wizard.getSelection();
-		updateLaunchConfigurationDialog();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
-		// do nothing on activation
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#deactivated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) {
-		// do nothing on deactivation
-	}
-    
-    private boolean validateRedirectFile() {
-        if(fFileOutput.getSelection()) {
-            int len = fFileText.getText().trim().length();
-            if (len == 0) {
-                setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsBuilderTab_26); 
-                return false;
-            }
-        }
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
deleted file mode 100644
index f18bb25..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- * dakshinamurthy.karra@gmail.com - bug 165371
- **********************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ExternalToolsLaunchConfigurationMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsLaunchConfigurationMessages";//$NON-NLS-1$
-
-	public static String ExternalToolsMainTab__Location___2;
-	public static String ExternalToolsMainTab__Browse_Workspace____3;
-	public static String ExternalToolsMainTab_Brows_e_File_System____4;
-	public static String ExternalToolsMainTab_Working__Directory__5;
-	public static String ExternalToolsMainTab_Browse_Wor_kspace____6;
-	public static String ExternalToolsMainTab_Browse_F_ile_System____7;
-	public static String ExternalToolsMainTab_Error_reading_configuration_10;
-	public static String ExternalToolsMainTab__Main_17;
-	public static String ExternalToolsMainTab_External_tool_location_cannot_be_empty_18;
-	public static String ExternalToolsMainTab_External_tool_location_does_not_exist_19;
-	public static String ExternalToolsMainTab_External_tool_location_specified_is_not_a_file_20;
-	public static String ExternalToolsMainTab_External_tool_working_directory_does_not_exist_or_is_invalid_21;
-	public static String ExternalToolsMainTab_Select_a_resource_22;
-	public static String ExternalToolsMainTab_23;
-	public static String ExternalToolsMainTab__Arguments___1;
-	public static String ExternalToolsMainTab_Varia_bles____2;
-	public static String ExternalToolsMainTab_3;
-	public static String ExternalToolsMainTab_Error_reading_configuration_7;
-	public static String ExternalToolsMainTab_Not_a_directory;
-	public static String ExternalToolsMainTab_30;
-	public static String ExternalToolsMainTab_31;
-	public static String ExternalToolsMainTab_32;
-
-	public static String ExternalToolsBuildTab_1;
-	public static String ExternalToolsBuildTab_2;
-	public static String ExternalToolsBuildTab_3;
-	public static String ExternalToolsBuildTab_4;
-	public static String ExternalToolsBuildTab_5;
-	public static String ExternalToolsBuildTab_6;
-	public static String ExternalToolsBuildTab_7;
-	public static String ExternalToolsBuildTab_8;
-	public static String ExternalToolsBuildTab_9;
-
-
-	public static String ExternalToolsUtil_Location_not_specified_by__0__1;
-	public static String ExternalToolsUtil_invalidLocation__0_;
-	public static String ExternalToolsUtil_invalidDirectory__0_;
-
-	public static String ExternalToolsBuilderTab_Run_this_builder_for__1;
-	public static String ExternalToolsBuilderTab__Full_builds_2;
-	public static String ExternalToolsBuilderTab_Full;
-	public static String ExternalToolsBuilderTab__Incremental_builds_4;
-	public static String ExternalToolsBuilderTab_Inc;
-	public static String ExternalToolsBuilderTab__Auto_builds__Not_recommended__6;
-	public static String ExternalToolsBuilderTab_Auto;
-	public static String ExternalToolsBuilderTab_Build_Options_9;
-	public static String ExternalToolsBuilderTab_workingSet_label;
-	public static String ExternalToolsBuilderTab_workingSet_tooltip;
-	public static String ExternalToolsBuilderTab_buildKindError;
-	public static String ExternalToolsBuilderTab_14;
-	public static String ExternalToolsBuilderTab_13;
-	public static String ExternalToolsBuilderTab_16;
-	public static String ExternalToolsBuilderTab_15;
-	public static String ExternalToolsBuilderTab_0;
-	public static String ExternalToolsBuilderTab_1;
-	public static String ExternalToolsBuilderTab_2;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ExternalToolsLaunchConfigurationMessages.class);
-	}
-
-    public static String ExternalToolsBuilderTab_17;
-
-    public static String ExternalToolsBuilderTab_18;
-
-    public static String ExternalToolsBuilderTab_19;
-
-    public static String ExternalToolsBuilderTab_20;
-
-    public static String ExternalToolsBuilderTab_21;
-
-    public static String ExternalToolsBuilderTab_22;
-
-    public static String ExternalToolsBuilderTab_23;
-
-    public static String ExternalToolsBuilderTab_24;
-
-    public static String ExternalToolsBuilderTab_25;
-
-    public static String ExternalToolsBuilderTab_26;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
deleted file mode 100644
index 7e432a9..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
+++ /dev/null
@@ -1,77 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     dakshinamurthy.karra@gmail.com - bug 165371
-###############################################################################
-
-ExternalToolsMainTab__Location___2=&Location:
-ExternalToolsMainTab__Browse_Workspace____3=Browse Works&pace...
-ExternalToolsMainTab_Brows_e_File_System____4=Brows&e File System...
-ExternalToolsMainTab_Working__Directory__5=Working &Directory:
-ExternalToolsMainTab_Browse_Wor_kspace____6=Browse Wor&kspace...
-ExternalToolsMainTab_Browse_F_ile_System____7=Browse File Syste&m...
-ExternalToolsMainTab_Error_reading_configuration_10=Error reading configuration
-ExternalToolsMainTab__Main_17=Main
-ExternalToolsMainTab_External_tool_location_cannot_be_empty_18=External tool location cannot be empty
-ExternalToolsMainTab_External_tool_location_does_not_exist_19=External tool location does not exist
-ExternalToolsMainTab_External_tool_location_specified_is_not_a_file_20=External tool location specified is not a file
-ExternalToolsMainTab_External_tool_working_directory_does_not_exist_or_is_invalid_21=External tool working directory does not exist or is invalid
-ExternalToolsMainTab_Select_a_resource_22=Select a resource:
-ExternalToolsMainTab_23=Select a working directory:
-ExternalToolsMainTab__Arguments___1=&Arguments:
-ExternalToolsMainTab_Varia_bles____2=Variable&s...
-ExternalToolsMainTab_3=Note: Enclose an argument containing spaces using double-quotes (\").
-ExternalToolsMainTab_Error_reading_configuration_7=Error reading configuration
-ExternalToolsMainTab_Not_a_directory=The specified location is not a directory
-ExternalToolsMainTab_30=Please specify the location of the external tool you would like to configure.
-ExternalToolsMainTab_31=Var&iables...
-ExternalToolsMainTab_32=Varia&bles...
-
-ExternalToolsBuildTab_1=&Build before launch
-ExternalToolsBuildTab_2=The &entire workspace
-ExternalToolsBuildTab_3=The &project containing the selected resource
-ExternalToolsBuildTab_4=&Specific projects
-ExternalToolsBuildTab_5=P&rojects...
-ExternalToolsBuildTab_6=Include referenced pro&jects
-ExternalToolsBuildTab_7=Select &Projects:
-ExternalToolsBuildTab_8=Build
-ExternalToolsBuildTab_9=No projects specified
-
-ExternalToolsUtil_Location_not_specified_by__0__1=Location not specified by {0}
-ExternalToolsUtil_invalidLocation__0_ = The file does not exist for the external tool named {0}.
-ExternalToolsUtil_invalidDirectory__0_ = The working directory {0} does not exist for the external tool named {1}.
-
-ExternalToolsBuilderTab_Run_this_builder_for__1=Run the builder:
-ExternalToolsBuilderTab__Full_builds_2=A&fter a \"Clean\"
-ExternalToolsBuilderTab_Full=Runs on the first build that occurs after a clean.
-ExternalToolsBuilderTab__Incremental_builds_4=&During manual builds
-ExternalToolsBuilderTab_Inc=Runs whenever the user invokes a build (but not for auto-build).
-ExternalToolsBuilderTab__Auto_builds__Not_recommended__6=During a&uto builds
-ExternalToolsBuilderTab_Auto=Runs whenever a resource in the workspace is modified if autobuilding is enabled. Enabling this option should be paired with a specifying a resource working set.
-ExternalToolsBuilderTab_Build_Options_9=&Build Options
-ExternalToolsBuilderTab_workingSet_label=Specify working set of &relevant resources
-ExternalToolsBuilderTab_workingSet_tooltip=The working set of resources that if changed from a manual or auto build will trigger the external tool builder
-ExternalToolsBuilderTab_buildKindError=At least one type of build kind must be selected
-ExternalToolsBuilderTab_14=Launch in bac&kground
-ExternalToolsBuilderTab_13=&Specify Resources...
-ExternalToolsBuilderTab_16=Must select resources in working set.
-ExternalToolsBuilderTab_15=workingSet
-ExternalToolsBuilderTab_17=Standard Input and Output
-ExternalToolsBuilderTab_18=Allocate &Console (necessary for input)
-ExternalToolsBuilderTab_19=Fi&le
-ExternalToolsBuilderTab_0=During a "&Clean"
-ExternalToolsBuilderTab_1=Runs when a "clean" has been initiated
-ExternalToolsBuilderTab_2=Note: Not applied for the builds during or after a \"Clean\"
-ExternalToolsBuilderTab_20=Browse Worksp&ace...
-ExternalToolsBuilderTab_21=Browse File Syste&m...
-ExternalToolsBuilderTab_22=Varia&bles...
-ExternalToolsBuilderTab_23=A&ppend
-ExternalToolsBuilderTab_24=Select a Resource
-ExternalToolsBuilderTab_25=Select a resource to redirect output to:
-ExternalToolsBuilderTab_26=No file specified for process output
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
deleted file mode 100644
index f9784bf..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.io.File;
-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.variables.IStringVariableManager;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.debug.ui.StringVariableSelectionDialog;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-import org.eclipse.ui.dialogs.ResourceSelectionDialog;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsImages;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * The external tools main tab allows the user to configure primary attributes
- * of external tool launch configurations such as the location, working directory,
- * and arguments.
- */
-public abstract class ExternalToolsMainTab extends AbstractLaunchConfigurationTab {
-	public final static String FIRST_EDIT = "editedByExternalToolsMainTab"; //$NON-NLS-1$
-
-	protected Text locationField;
-	protected Text workDirectoryField;
-	protected Button fileLocationButton;
-	protected Button workspaceLocationButton;
-	protected Button variablesLocationButton;
-	protected Button fileWorkingDirectoryButton;
-	protected Button workspaceWorkingDirectoryButton;
-	protected Button variablesWorkingDirectoryButton;
-
-	protected Text argumentField;
-	protected Button argumentVariablesButton;
-
-	protected SelectionAdapter selectionAdapter;
-	
-	protected boolean fInitializing= false;
-	private boolean userEdited= false;
-
-	protected WidgetListener fListener= new WidgetListener();
-	
-	/**
-	 * A listener to update for text modification and widget selection.
-	 */
-	protected class WidgetListener extends SelectionAdapter implements ModifyListener {
-		public void modifyText(ModifyEvent e) {
-			if (!fInitializing) {
-				setDirty(true);
-				userEdited= true;
-				updateLaunchConfigurationDialog();
-			}
-		}
-		public void widgetSelected(SelectionEvent e) {
-			setDirty(true);
-			Object source= e.getSource();
-			if (source == workspaceLocationButton) {
-				handleWorkspaceLocationButtonSelected();
-			} else if (source == fileLocationButton) {
-				handleFileLocationButtonSelected();
-			} else if (source == workspaceWorkingDirectoryButton) {
-				handleWorkspaceWorkingDirectoryButtonSelected();
-			} else if (source == fileWorkingDirectoryButton) {
-				handleFileWorkingDirectoryButtonSelected();
-			} else if (source == argumentVariablesButton) {
-				handleVariablesButtonSelected(argumentField);
-			} else if (source == variablesLocationButton) {
-				handleVariablesButtonSelected(locationField);
-			} else if (source == variablesWorkingDirectoryButton) {
-				handleVariablesButtonSelected(workDirectoryField);
-			}
-		}
-
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite mainComposite = new Composite(parent, SWT.NONE);
-		setControl(mainComposite);
-		mainComposite.setFont(parent.getFont());
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		mainComposite.setLayout(layout);
-		mainComposite.setLayoutData(gridData);
-
-		createLocationComponent(mainComposite);
-		createWorkDirectoryComponent(mainComposite);
-		createArgumentComponent(mainComposite);
-		createVerticalSpacer(mainComposite, 1);
-		
-		Dialog.applyDialogFont(parent);
-	}
-	
-	/**
-	 * Creates the controls needed to edit the location
-	 * attribute of an external tool
-	 * 
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createLocationComponent(Composite parent) {
-		Group group = new Group(parent, SWT.NONE);
-		String locationLabel = getLocationLabel();
-		group.setText(locationLabel);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;	
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		group.setLayout(layout);
-		group.setLayoutData(gridData);
-		
-		locationField = new Text(group, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		locationField.setLayoutData(gridData);
-		locationField.addModifyListener(fListener);
-		addControlAccessibleListener(locationField, group.getText());
-		
-		Composite buttonComposite = new Composite(group, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-        layout.marginWidth = 0;   
-		layout.numColumns = 3;
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		buttonComposite.setLayout(layout);
-		buttonComposite.setLayoutData(gridData);
-		buttonComposite.setFont(parent.getFont());
-		
-		workspaceLocationButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab__Browse_Workspace____3, null);
-		workspaceLocationButton.addSelectionListener(fListener);
-		addControlAccessibleListener(workspaceLocationButton, group.getText() + " " + workspaceLocationButton.getText()); //$NON-NLS-1$
-		
-		fileLocationButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Brows_e_File_System____4, null);
-		fileLocationButton.addSelectionListener(fListener);
-		addControlAccessibleListener(fileLocationButton, group.getText() + " " + fileLocationButton.getText()); //$NON-NLS-1$
-		
-		variablesLocationButton = createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_31, null);
-		variablesLocationButton.addSelectionListener(fListener);	
-		addControlAccessibleListener(variablesLocationButton, group.getText() + " " + variablesLocationButton.getText());	 //$NON-NLS-1$
-	}
-	
-	/**
-	 * Returns the label used for the location widgets. Subclasses may wish to override.
-	 */
-	protected String getLocationLabel() {
-		return ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab__Location___2;
-	}
-
-	/**
-	 * Creates the controls needed to edit the working directory
-	 * attribute of an external tool
-	 * 
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createWorkDirectoryComponent(Composite parent) {
-		Group group = new Group(parent, SWT.NONE);
-		String groupName = getWorkingDirectoryLabel();
-		group.setText(groupName);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		group.setLayout(layout);
-		group.setLayoutData(gridData);
-		
-		workDirectoryField = new Text(group, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		workDirectoryField.setLayoutData(data);
-		workDirectoryField.addModifyListener(fListener);
-		addControlAccessibleListener(workDirectoryField,group.getText());
-		
-		Composite buttonComposite = new Composite(group, SWT.NONE);
-		layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-		layout.numColumns = 3;
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		buttonComposite.setLayout(layout);
-		buttonComposite.setLayoutData(gridData);
-		buttonComposite.setFont(parent.getFont());
-		
-		workspaceWorkingDirectoryButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Browse_Wor_kspace____6, null);
-		workspaceWorkingDirectoryButton.addSelectionListener(fListener);
-		addControlAccessibleListener(workspaceWorkingDirectoryButton, group.getText() + " " + workspaceWorkingDirectoryButton.getText()); //$NON-NLS-1$
-		
-		fileWorkingDirectoryButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Browse_F_ile_System____7, null);
-		fileWorkingDirectoryButton.addSelectionListener(fListener);
-		addControlAccessibleListener(fileWorkingDirectoryButton, group.getText() + " " + fileLocationButton.getText()); //$NON-NLS-1$
-		
-		variablesWorkingDirectoryButton = createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_32, null);
-		variablesWorkingDirectoryButton.addSelectionListener(fListener);
-		addControlAccessibleListener(variablesWorkingDirectoryButton, group.getText() + " " + variablesWorkingDirectoryButton.getText()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Return the String to use as the label for the working directory field.
-	 * Subclasses may wish to override.
-	 */
-	protected String getWorkingDirectoryLabel() {
-		return ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Working__Directory__5;
-	}
-	
-	/**
-	 * Creates the controls needed to edit the argument and
-	 * prompt for argument attributes of an external tool
-	 *
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createArgumentComponent(Composite parent) {
-		Group group = new Group(parent, SWT.NONE);
-		String groupName = ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab__Arguments___1;
-		group.setText(groupName); 
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		GridData gridData = new GridData(GridData.FILL_BOTH);
-		group.setLayout(layout);
-		group.setLayoutData(gridData);
-        group.setFont(parent.getFont());
-		
-		argumentField = new Text(group, SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.V_SCROLL);
-		gridData = new GridData(GridData.FILL_BOTH);
-		gridData.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		gridData.heightHint = 30;
-		argumentField.setLayoutData(gridData);
-		argumentField.addModifyListener(fListener);
-		addControlAccessibleListener(argumentField, group.getText());
-		
-		Composite composite = new Composite(group, SWT.NONE);
-		layout = new GridLayout();
-		layout.numColumns= 1;
-        layout.marginHeight= 0;
-        layout.marginWidth= 0;
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		composite.setLayout(layout);
-		composite.setLayoutData(gridData);
-		composite.setFont(parent.getFont());
-		
-		argumentVariablesButton= createPushButton(composite, ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Varia_bles____2, null);
-		argumentVariablesButton.addSelectionListener(fListener);
-		addControlAccessibleListener(argumentVariablesButton, argumentVariablesButton.getText()); // need to strip the mnemonic from buttons
-
-		Label instruction = new Label(group, SWT.NONE);
-		instruction.setText(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_3);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.horizontalSpan = 2;
-		instruction.setLayoutData(gridData);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-		configuration.setAttribute(FIRST_EDIT, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public void initializeFrom(ILaunchConfiguration configuration) {
-		fInitializing= true;
-		updateLocation(configuration);
-		updateWorkingDirectory(configuration);
-		updateArgument(configuration);
-		fInitializing= false;
-		setDirty(false);
-	}
-	
-	/**
-	 * Updates the working directory widgets to match the state of the given launch
-	 * configuration.
-	 */
-	protected void updateWorkingDirectory(ILaunchConfiguration configuration) {
-		String workingDir= ""; //$NON-NLS-1$
-		try {
-			workingDir= configuration.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, ""); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Error_reading_configuration_10, ce);
-		}
-		workDirectoryField.setText(workingDir);
-	}
-	
-	/**
-	 * Updates the location widgets to match the state of the given launch
-	 * configuration.
-	 */
-	protected void updateLocation(ILaunchConfiguration configuration) {
-		String location= ""; //$NON-NLS-1$
-		try {
-			location= configuration.getAttribute(IExternalToolConstants.ATTR_LOCATION, ""); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Error_reading_configuration_10, ce);
-		}
-		locationField.setText(location);
-	}
-
-	/**
-	 * Updates the argument widgets to match the state of the given launch
-	 * configuration.
-	 */
-	protected void updateArgument(ILaunchConfiguration configuration) {
-		String arguments= ""; //$NON-NLS-1$
-		try {
-			arguments= configuration.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, ""); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Error_reading_configuration_7, ce);
-		}
-		argumentField.setText(arguments);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		String location= locationField.getText().trim();
-		if (location.length() == 0) {
-			configuration.setAttribute(IExternalToolConstants.ATTR_LOCATION, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_LOCATION, location);
-		}
-		
-		String workingDirectory= workDirectoryField.getText().trim();
-		if (workingDirectory.length() == 0) {
-			configuration.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, workingDirectory);
-		}
-
-		String arguments= argumentField.getText().trim();
-		if (arguments.length() == 0) {
-			configuration.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-		}
-		
-		if(userEdited) {
-			configuration.setAttribute(FIRST_EDIT, (String)null);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-	 */
-	public String getName() {
-		return ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab__Main_17;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public boolean isValid(ILaunchConfiguration launchConfig) {
-		setErrorMessage(null);
-		setMessage(null);
-		boolean newConfig = false;
-		try {
-			newConfig = launchConfig.getAttribute(FIRST_EDIT, false);
-		} catch (CoreException e) {
-			//assume false is correct
-		}
-		return validateLocation(newConfig) && validateWorkDirectory();
-	}
-	
-	/**
-	 * Validates the content of the location field.
-	 */
-	protected boolean validateLocation(boolean newConfig) {
-		String location = locationField.getText().trim();
-		if (location.length() < 1) {
-			if (newConfig) {
-				setErrorMessage(null);
-				setMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_30);
-			} else {
-				setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_External_tool_location_cannot_be_empty_18);
-				setMessage(null);
-			}
-			return false;
-		}
-		
-		String expandedLocation= null;
-		try {
-			expandedLocation= resolveValue(location);
-			if (expandedLocation == null) { //a variable that needs to be resolved at runtime
-				return true;
-			}
-		} catch (CoreException e) {
-			setErrorMessage(e.getStatus().getMessage());
-			return false;
-		}
-		
-		File file = new File(expandedLocation);
-		if (!file.exists()) { // The file does not exist.
-			if (!newConfig) {
-				setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_External_tool_location_does_not_exist_19);
-			}
-			return false;
-		}
-		if (!file.isFile()) {
-			if (!newConfig) {
-				setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_External_tool_location_specified_is_not_a_file_20);
-			}
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Validates the variables of the given string to determine if all variables are valid
-	 * 
-	 * @param expression expression with variables
-	 * @exception CoreException if a variable is specified that does not exist
-	 */
-	private void validateVaribles(String expression) throws CoreException {
-		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
-		manager.validateStringVariables(expression);
-	}
-	
-	private String resolveValue(String expression) throws CoreException {
-		String expanded= null;
-		try {
-			expanded= getValue(expression);
-		} catch (CoreException e) { //possibly just a variable that needs to be resolved at runtime
-			validateVaribles(expression);
-			return null;
-		}
-		return expanded;
-	}
-	
-	/**
-	 * Validates the value of the given string to determine if any/all variables are valid
-	 * 
-	 * @param expression expression with variables
-	 * @return whether the expression contained any variable values
-	 * @exception CoreException if variable resolution fails
-	 */
-	private String getValue(String expression) throws CoreException {
-		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
-		return manager.performStringSubstitution(expression);
-	}
-
-	/**
-	 * Validates the content of the working directory field.
-	 */
-	protected boolean validateWorkDirectory() {
-		String dir = workDirectoryField.getText().trim();
-		if (dir.length() <= 0) {
-			return true;
-		}
-
-		String expandedDir= null;
-		try {
-			expandedDir= resolveValue(dir);
-			if (expandedDir == null) { //a variable that needs to be resolved at runtime
-				return true;
-			}
-		} catch (CoreException e) {
-			setErrorMessage(e.getStatus().getMessage());
-			return false;
-		}
-			
-		File file = new File(expandedDir);
-		if (!file.exists()) { // The directory does not exist.
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_External_tool_working_directory_does_not_exist_or_is_invalid_21);
-			return false;
-		}
-		if (!file.isDirectory()) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Not_a_directory);
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Prompts the user to choose a location from the filesystem and
-	 * sets the location as the full path of the selected file.
-	 */
-	protected void handleFileLocationButtonSelected() {
-		FileDialog fileDialog = new FileDialog(getShell(), SWT.NONE);
-		fileDialog.setFileName(locationField.getText());
-		String text= fileDialog.open();
-		if (text != null) {
-			locationField.setText(text);
-		}
-	}
-	
-	/**
-	 * Prompts the user for a workspace location within the workspace and sets
-	 * the location as a String containing the workspace_loc variable or
-	 * <code>null</code> if no location was obtained from the user.
-	 */
-	protected void handleWorkspaceLocationButtonSelected() {
-		ResourceSelectionDialog dialog;
-		dialog = new ResourceSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_Select_a_resource_22);
-		dialog.open();
-		Object[] results = dialog.getResult();
-		if (results == null || results.length < 1) {
-			return;
-		}
-		IResource resource = (IResource)results[0];
-		locationField.setText(newVariableExpression("workspace_loc", resource.getFullPath().toString())); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Prompts the user for a working directory location within the workspace
-	 * and sets the working directory as a String containing the workspace_loc
-	 * variable or <code>null</code> if no location was obtained from the user.
-	 */
-	protected void handleWorkspaceWorkingDirectoryButtonSelected() {
-		ContainerSelectionDialog containerDialog;
-		containerDialog = new ContainerSelectionDialog(
-			getShell(), 
-			ResourcesPlugin.getWorkspace().getRoot(),
-			false,
-			ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_23);
-		containerDialog.open();
-		Object[] resource = containerDialog.getResult();
-		String text= null;
-		if (resource != null && resource.length > 0) {
-			text= newVariableExpression("workspace_loc", ((IPath)resource[0]).toString()); //$NON-NLS-1$
-		}
-		if (text != null) {
-			workDirectoryField.setText(text);
-		}
-	}
-	
-	/**
-	 * Returns a new variable expression with the given variable and the given argument.
-	 * @see IStringVariableManager#generateVariableExpression(String, String)
-	 */
-	protected String newVariableExpression(String varName, String arg) {
-		return VariablesPlugin.getDefault().getStringVariableManager().generateVariableExpression(varName, arg);
-	}
-	
-	/**
-	 * Prompts the user to choose a working directory from the filesystem.
-	 */
-	protected void handleFileWorkingDirectoryButtonSelected() {
-		DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SAVE);
-		dialog.setMessage(ExternalToolsLaunchConfigurationMessages.ExternalToolsMainTab_23);
-		dialog.setFilterPath(workDirectoryField.getText());
-		String text= dialog.open();
-		if (text != null) {
-			workDirectoryField.setText(text);
-		}
-	}
-	
-	/**
-	 * A variable entry button has been pressed for the given text
-	 * field. Prompt the user for a variable and enter the result
-	 * in the given field.
-	 */
-	private void handleVariablesButtonSelected(Text textField) {
-		String variable = getVariable();
-		if (variable != null) {
-			textField.insert(variable);
-		}
-	}
-
-	/**
-	 * Prompts the user to choose and configure a variable and returns
-	 * the resulting string, suitable to be used as an attribute.
-	 */
-	private String getVariable() {
-		StringVariableSelectionDialog dialog = new StringVariableSelectionDialog(getShell());
-		dialog.open();
-		return dialog.getVariableExpression();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return ExternalToolsImages.getImage(IExternalToolConstants.IMG_TAB_MAIN);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#deactivated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) {
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
-	}
-	
-	/*
-	 * Fix for Bug 60163 Accessibility: New Builder Dialog missing object info for textInput controls
-	 */
-	public void addControlAccessibleListener(Control control, String controlName) {
-		//strip mnemonic (&)
-		String[] strs = controlName.split("&"); //$NON-NLS-1$
-		StringBuffer stripped = new StringBuffer();
-		for (int i = 0; i < strs.length; i++) {
-			stripped.append(strs[i]);
-		}
-		control.getAccessible().addAccessibleListener(new ControlAccessibleListener(stripped.toString()));
-	}
-	
-	private class ControlAccessibleListener extends AccessibleAdapter {
-		private String controlName;
-		ControlAccessibleListener(String name) {
-			controlName = name;
-		}
-		public void getName(AccessibleEvent e) {
-			e.result = controlName;
-		}
-		
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
deleted file mode 100644
index cbc7633..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Keith Seitz (keiths@redhat.com) - Bug 27243 (environment variables contribution)
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.io.File;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IStringVariableManager;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * Utilities for external tool launch configurations.
- * <p>
- * This class it not intended to be instantiated.
- * </p>
- */
-public class ExternalToolsUtil {
-
-	/**
-	 * Throws a core exception with an error status object built from
-	 * the given message, lower level exception, and error code.
-	 * 
-	 * @param message the status message
-	 * @param exception lower level exception associated with the
-	 *  error, or <code>null</code> if none
-	 * @param code error code
-	 */
-	protected static void abort(String message, Throwable exception, int code) throws CoreException {
-		throw new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, code, message, exception));
-	}
-	
-	/**
-	 * Expands and returns the location attribute of the given launch
-	 * configuration. The location is
-	 * verified to point to an existing file, in the local file system.
-	 * 
-	 * @param configuration launch configuration
-	 * @return an absolute path to a file in the local file system  
-	 * @throws CoreException if unable to retrieve the associated launch
-	 * configuration attribute, if unable to resolve any variables, or if the
-	 * resolved location does not point to an existing file in the local file
-	 * system
-	 */
-	public static IPath getLocation(ILaunchConfiguration configuration) throws CoreException {
-		String location = configuration.getAttribute(IExternalToolConstants.ATTR_LOCATION, (String) null);
-		if (location == null) {
-			abort(NLS.bind(ExternalToolsLaunchConfigurationMessages.ExternalToolsUtil_Location_not_specified_by__0__1, new String[] { configuration.getName()}), null, 0);
-		} else {
-			String expandedLocation = getStringVariableManager().performStringSubstitution(location);
-			if (expandedLocation == null || expandedLocation.length() == 0) {
-				String msg = NLS.bind(ExternalToolsLaunchConfigurationMessages.ExternalToolsUtil_invalidLocation__0_, new Object[] { configuration.getName()});
-				abort(msg, null, 0);
-			} else {
-				File file = new File(expandedLocation);
-				if (file.isFile()) {
-					return new Path(expandedLocation);
-				} 
-				
-				String msg = NLS.bind(ExternalToolsLaunchConfigurationMessages.ExternalToolsUtil_invalidLocation__0_, new Object[] { configuration.getName()});
-				abort(msg, null, 0);
-			}
-		}
-		// execution will not reach here
-		return null;
-	}
-	
-	/**
-	 * Returns a boolean specifying whether or not output should be captured for
-	 * the given configuration
-	 * 
-	 * @param configuration the configuration from which the value will be
-	 * extracted
-	 * @return boolean specifying whether or not output should be captured
-	 * @throws CoreException if unable to access the associated attribute
-	 */
-	public static boolean getCaptureOutput(ILaunchConfiguration configuration) throws CoreException {
-	    return configuration.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, true);
-	}
-
-	/**
-	 * Expands and returns the working directory attribute of the given launch
-	 * configuration. Returns <code>null</code> if a working directory is not
-	 * specified. If specified, the working is verified to point to an existing
-	 * directory in the local file system.
-	 * 
-	 * @param configuration launch configuration
-	 * @return an absolute path to a directory in the local file system, or
-	 * <code>null</code> if unspecified
-	 * @throws CoreException if unable to retrieve the associated launch
-	 * configuration attribute, if unable to resolve any variables, or if the
-	 * resolved location does not point to an existing directory in the local
-	 * file system
-	 */
-	public static IPath getWorkingDirectory(ILaunchConfiguration configuration) throws CoreException {
-		String location = configuration.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String) null);
-		if (location != null) {
-			String expandedLocation = getStringVariableManager().performStringSubstitution(location);
-			if (expandedLocation.length() > 0) {
-				File path = new File(expandedLocation);
-				if (path.isDirectory()) {
-					return new Path(expandedLocation);
-				} 
-				String msg = NLS.bind(ExternalToolsLaunchConfigurationMessages.ExternalToolsUtil_invalidDirectory__0_, new Object[] { expandedLocation, configuration.getName()});
-				abort(msg, null, 0);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Expands and returns the arguments attribute of the given launch
-	 * configuration. Returns <code>null</code> if arguments are not specified.
-	 * 
-	 * @param configuration launch configuration
-	 * @return an array of resolved arguments, or <code>null</code> if
-	 * unspecified
-	 * @throws CoreException if unable to retrieve the associated launch
-	 * configuration attribute, or if unable to resolve any variables
-	 */
-	public static String[] getArguments(ILaunchConfiguration configuration) throws CoreException {
-		String args = configuration.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, (String) null);
-		if (args != null) {
-			String expanded = getStringVariableManager().performStringSubstitution(args);
-			return parseStringIntoList(expanded);
-		}
-		return null;
-	}
-
-	private static IStringVariableManager getStringVariableManager() {
-		return VariablesPlugin.getDefault().getStringVariableManager();
-	}
-	
-	/**
-	 * Returns whether the given launch configuration is enabled. This property
-	 * is intended only to apply to external tool builder configurations and
-	 * determines whether the project builder will launch the configuration
-	 * when it builds.
-	 *  
-	 * @param configuration the configuration for which the enabled state should
-	 * 		be determined.
-	 * @return whether the given configuration is enabled to be run when a build occurs.
-	 * @throws CoreException if unable to access the associated attribute
-	 */
-	public static boolean isBuilderEnabled(ILaunchConfiguration configuration) throws CoreException {
-		return configuration.getAttribute(IExternalToolConstants.ATTR_BUILDER_ENABLED, true);
-	}
-	
-	/**
-	 * Returns the collection of resources for the build scope as specified by the given launch configuration.
-	 * 
-	 * @param configuration launch configuration
-	 * @throws CoreException if an exception occurs while retrieving the resources
-	 */
-	public static IResource[] getResourcesForBuildScope(ILaunchConfiguration configuration) throws CoreException {
-		String scope = configuration.getAttribute(IExternalToolConstants.ATTR_BUILDER_SCOPE, (String) null);
-		if (scope == null) {
-			return null;
-		}
-	
-		return RefreshTab.getRefreshResources(scope);
-	}
-	
-	/**
-	 * Parses the argument text into an array of individual
-	 * strings using the space character as the delimiter.
-	 * An individual argument containing spaces must have a
-	 * double quote (") at the start and end. Two double 
-	 * quotes together is taken to mean an embedded double
-	 * quote in the argument text.
-	 * 
-	 * @param arguments the arguments as one string
-	 * @return the array of arguments
-	 */
-	public static String[] parseStringIntoList(String arguments) {
-		if (arguments == null || arguments.length() == 0) {
-			return new String[0];
-		}
-		String[] res= DebugPlugin.parseArguments(arguments);
-		return res;		
-	}	
-	
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/IgnoreWhiteSpaceComparator.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/IgnoreWhiteSpaceComparator.java
deleted file mode 100644
index ab3f41e..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/IgnoreWhiteSpaceComparator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-import java.util.Comparator;
-
-public class IgnoreWhiteSpaceComparator implements Comparator {
-
-	/* (non-Javadoc)
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object o1, Object o2) {
-		String one= (String)o1;
-		String two= (String)o2;
-		int i1 = 0;
-		int i2 = 0;
-		int l1 = one.length();
-		int l2 = two.length();
-		char ch1 = ' ';
-		char ch2 = ' ';
-		while (i1 < l1 && i2 < l2) {
-			while (i1 < l1 && Character.isWhitespace(ch1 = one.charAt(i1))) {
-				i1++;
-			}
-			while (i2 < l2 && Character.isWhitespace(ch2 = two.charAt(i2))) {
-				i2++;
-			}
-			if (i1 == l1 && i2 == l2) {
-				return 0;
-			}
-			if (ch1 != ch2) {
-				return -1;
-			}			
-			i1++;
-			i2++;
-		}
-		return 0;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
deleted file mode 100644
index a92fc2d..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-import java.util.Comparator;
-
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.ui.IWorkingSet;
-
-/**
- * Comparator for refresh scope launch configuration attribute
- * <code>ATTR_REFRESH_SCOPE</code>.
- */
-public class WorkingSetComparator implements Comparator {
-
-	/* (non-Javadoc)
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object o1, Object o2) {
-		String one= (String)o1;
-		String two= (String)o2;
-		if (one == null || two == null) {
-			if (one == two) {
-				return 0;
-			} 
-			return -1;
-		}
-		if (one.startsWith("${working_set:") && two.startsWith("${working_set:")) {		  //$NON-NLS-1$//$NON-NLS-2$
-			IWorkingSet workingSet1 = RefreshTab.getWorkingSet(one);
-			IWorkingSet workingSet2 = RefreshTab.getWorkingSet(two);
-			if (workingSet1 == null || workingSet2 == null) {
-				if (workingSet1 == workingSet2) {
-					return 0;
-				} 
-				return -1;
-			}
-			if (workingSet1.equals(workingSet2)) {
-				return 0;
-			}
-			return -1;
-		}
-		return one.compareTo(two);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
deleted file mode 100644
index 8a4a220..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.menu;
-
-import org.eclipse.debug.ui.actions.AbstractLaunchToolbarAction;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * This action delegate is responsible for producing the
- * Run > External Tools sub menu contents, which includes
- * an items to run last tool, favorite tools, and show the
- * external tools launch configuration dialog.
- */
-public class ExternalToolMenuDelegate extends AbstractLaunchToolbarAction {
-	
-	/**
-	 * Creates the action delegate
-	 */
-	public ExternalToolMenuDelegate() {
-		super(IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_GROUP);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.actions.AbstractLaunchToolbarAction#getOpenDialogAction()
-	 */
-	protected IAction getOpenDialogAction() {
-		IAction action= new OpenExternalToolsConfigurations();
-		action.setActionDefinitionId("org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations"); //$NON-NLS-1$
-		return action;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/OpenExternalToolsConfigurations.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/OpenExternalToolsConfigurations.java
deleted file mode 100644
index 75b10bc..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/OpenExternalToolsConfigurations.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.menu;
-
-import org.eclipse.debug.ui.actions.OpenLaunchDialogAction;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * Opens the launch config dialog on the external tools launch group.
- */
-public class OpenExternalToolsConfigurations extends OpenLaunchDialogAction {
-
-	public OpenExternalToolsConfigurations() {
-		super(IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_GROUP);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java
deleted file mode 100644
index 6e8a3a2..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-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.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.externaltools.internal.registry.ExternalToolMigration;
-
-/**
- * Utility methods for working with external tool project builders.
- */
-public class BuilderUtils {
-
-	public static final String LAUNCH_CONFIG_HANDLE = "LaunchConfigHandle"; //$NON-NLS-1$
-
-	/**
-	 * Constant used to find a builder using the 3.0-interim format
-	 */
-	public static final String BUILDER_FOLDER_NAME= ".externalToolBuilders"; //$NON-NLS-1$
-	/**
-	 * Constant used to represent the current project in the 3.0-final format.
-	 */
-	public static final String PROJECT_TAG= "<project>"; //$NON-NLS-1$
-	
-	public static final String VERSION_1_0= "1.0"; //$NON-NLS-1$
-	public static final String VERSION_2_1= "2.1"; //$NON-NLS-1$
-	// The format shipped up to and including Eclipse 3.0 RC1
-	public static final String VERSION_3_0_interim= "3.0.interim"; //$NON-NLS-1$
-	// The format shipped in Eclipse 3.0 final
-	public static final String VERSION_3_0_final= "3.0"; //$NON-NLS-1$
-	
-	// Extension point constants.
-	private static final String TAG_CONFIGURATION_MAP= "configurationMap"; //$NON-NLS-1$
-	private static final String TAG_SOURCE_TYPE= "sourceType"; //$NON-NLS-1$
-	private static final String TAG_BUILDER_TYPE= "builderType"; //$NON-NLS-1$
-    
-    private static final String BUILD_TYPE_SEPARATOR = ","; //$NON-NLS-1$
-    private static final int[] DEFAULT_BUILD_TYPES= new int[] {
-                                    IncrementalProjectBuilder.INCREMENTAL_BUILD,
-                                    IncrementalProjectBuilder.FULL_BUILD};
-
-	/**
-	 * Returns a launch configuration from the given ICommand arguments. If the
-	 * given arguments are from an old-style external tool, an unsaved working
-	 * copy will be created from the arguments and returned.
-	 * 
-	 * @param commandArgs the builder ICommand arguments
-	 * @return a launch configuration, a launch configuration working copy, or
-	 * <code>null</code> if not possible.
-	 */
-	public static ILaunchConfiguration configFromBuildCommandArgs(IProject project, Map commandArgs, String[] version) {
-		String configHandle = (String) commandArgs.get(LAUNCH_CONFIG_HANDLE);
-		if (configHandle == null) {
-			// Probably an old-style (Eclipse 1.0 or 2.0) external tool. Try to migrate.
-			version[0]= VERSION_1_0;
-			return ExternalToolMigration.configFromArgumentMap(commandArgs);
-		}
-		ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-		ILaunchConfiguration configuration= null;
-		if (configHandle.startsWith(PROJECT_TAG)) {
-			version[0]= VERSION_3_0_final;
-			IPath path= new Path(configHandle);
-			IFile file= project.getFile(path.removeFirstSegments(1));
-			if (file.exists()) {
-				configuration= manager.getLaunchConfiguration(file);
-			}
-		} else {
-		    // Try treating the handle as a file name.
-			// This is the format used in 3.0 RC1.
-			IPath path= new Path(BUILDER_FOLDER_NAME).append(configHandle);
-			IFile file= project.getFile(path);
-			if (file.exists()) {
-				version[0]= VERSION_3_0_interim;
-				configuration= manager.getLaunchConfiguration(file);
-			} else {
-				try {
-					// Treat the configHandle as a memento. This is the format
-					// used in Eclipse 2.1.
-					configuration = manager.getLaunchConfiguration(configHandle);
-				} catch (CoreException e) {
-				}
-				if (configuration != null) {
-					version[0]= VERSION_2_1;
-				}
-			}
-		}
-		return configuration;
-	}
-
-	/**
-	 * Returns an <code>ICommand</code> from the given launch configuration.
-	 * 
-	 * @param project the project the ICommand is relevant to
-	 * @param config the launch configuration to create the command from
-	 * @return the new command. <code>null</code> can be returned if problems occur during
-	 * the translation.
-	 */
-	public static ICommand commandFromLaunchConfig(IProject project, ILaunchConfiguration config) {
-		ICommand newCommand = null;
-		try {
-			newCommand = project.getDescription().newCommand();
-			newCommand = toBuildCommand(project, config, newCommand);
-			configureTriggers(config, newCommand);
-		} catch (CoreException exception) {
-			Shell shell= ExternalToolsPlugin.getActiveWorkbenchShell();
-			if (shell != null) {
-				MessageDialog.openError(shell, ExternalToolsModelMessages.BuilderUtils_5, ExternalToolsModelMessages.BuilderUtils_6);
-			}
-			return null;
-		}
-		return newCommand;
-	}
-	
-	public static void configureTriggers(ILaunchConfiguration config, ICommand newCommand) throws CoreException {
-		newCommand.setBuilding(IncrementalProjectBuilder.FULL_BUILD, false);
-		newCommand.setBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD, false);
-		newCommand.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, false);
-		newCommand.setBuilding(IncrementalProjectBuilder.CLEAN_BUILD, false);
-		String buildKinds= config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, (String)null);
-		int[] triggers= BuilderUtils.buildTypesToArray(buildKinds);
-		for (int i = 0; i < triggers.length; i++) {
-			switch (triggers[i]) {
-				case IncrementalProjectBuilder.FULL_BUILD:
-					newCommand.setBuilding(IncrementalProjectBuilder.FULL_BUILD, true);
-					break;
-				case IncrementalProjectBuilder.INCREMENTAL_BUILD:
-					newCommand.setBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD, true);
-					break;
-				case IncrementalProjectBuilder.AUTO_BUILD:
-					newCommand.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, true);
-					break;
-				case IncrementalProjectBuilder.CLEAN_BUILD:
-					newCommand.setBuilding(IncrementalProjectBuilder.CLEAN_BUILD, true);
-					break;
-			}
-		}
-		if (!config.getAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, false)) {
-			ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-			copy.setAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, true);
-			copy.doSave();
-		}
-	}
-
-	/**
-	 * Returns whether the given configuration is an "unmigrated" builder.
-	 * Unmigrated builders are external tools that are stored in an old format
-	 * but have not been migrated by the user. Old format builders are always
-	 * translated into launch config working copies in memory, but they're not
-	 * considered "migrated" until the config has been saved and the project spec
-	 * updated.
-	 * @param config the config to examine
-	 * @return whether the given config represents an unmigrated builder
-	 */
-	public static boolean isUnmigratedConfig(ILaunchConfiguration config) {
-		return config.isWorkingCopy() && ((ILaunchConfigurationWorkingCopy) config).getOriginal() == null;
-	}
-
-	/**
-	 * Converts the given config to a build command which is stored in the
-	 * given command.
-	 *
-	 * @return the configured build command
-	 */
-	public static ICommand toBuildCommand(IProject project, ILaunchConfiguration config, ICommand command) throws CoreException {
-		Map args= null;
-		if (isUnmigratedConfig(config)) {
-			// This config represents an old external tool builder that hasn't
-			// been edited. Try to find the old ICommand and reuse the arguments.
-			// The goal here is to not change the storage format of old, unedited builders.
-			ICommand[] commands= project.getDescription().getBuildSpec();
-			for (int i = 0; i < commands.length; i++) {
-				ICommand projectCommand = commands[i];
-				String name= ExternalToolMigration.getNameFromCommandArgs(projectCommand.getArguments());
-				if (name != null && name.equals(config.getName())) {
-					args= projectCommand.getArguments();
-					break;
-				}
-			}
-		} else {
-			if (config instanceof ILaunchConfigurationWorkingCopy) {
-				ILaunchConfigurationWorkingCopy workingCopy= (ILaunchConfigurationWorkingCopy) config;
-				if (workingCopy.getOriginal() != null) {
-					config= workingCopy.getOriginal();
-				}
-			}
-			args= new HashMap();
-			// Launch configuration builders are stored with a project-relative path
-			StringBuffer buffer= new StringBuffer(PROJECT_TAG);
-			// Append the project-relative path (workspace path minus first segment)
-			buffer.append('/').append(config.getFile().getFullPath().removeFirstSegments(1));
-			args.put(LAUNCH_CONFIG_HANDLE, buffer.toString());
-		}
-		command.setBuilderName(ExternalToolBuilder.ID);
-		command.setArguments(args);
-		return command;
-	}
-	
-	/**
-	 * Returns the type of launch configuration that should be created when
-	 * duplicating the given configuration as a project builder. Queries to see
-	 * if an extension has been specified to explicitly declare the mapping.
-	 */
-	public static ILaunchConfigurationType getConfigurationDuplicationType(ILaunchConfiguration config) throws CoreException {
-		IExtensionPoint ep= Platform.getExtensionRegistry().getExtensionPoint(IExternalToolConstants.PLUGIN_ID, IExternalToolConstants.EXTENSION_POINT_CONFIGURATION_DUPLICATION_MAPS); 
-		IConfigurationElement[] elements = ep.getConfigurationElements();
-		String sourceType= config.getType().getIdentifier();
-		String builderType= null;
-		for (int i= 0; i < elements.length; i++) {
-			IConfigurationElement element= elements[i];
-			if (element.getName().equals(TAG_CONFIGURATION_MAP) && sourceType.equals(element.getAttribute(TAG_SOURCE_TYPE))) {
-				builderType= element.getAttribute(TAG_BUILDER_TYPE);
-				break;
-			}
-		}
-		if (builderType != null) {
-			ILaunchConfigurationType type= DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(builderType);
-			if (type != null) {
-				return type;
-			}
-		}
-		return config.getType();
-	}
-
-	/**
-	 * Returns the folder where project builders should be stored or
-	 * <code>null</code> if the folder could not be created
-	 */
-	public static IFolder getBuilderFolder(IProject project, boolean create) {
-		IFolder folder = project.getFolder(BUILDER_FOLDER_NAME);
-		if (!folder.exists() && create) {
-			try {
-				folder.create(true, true, new NullProgressMonitor());
-			} catch (CoreException e) {
-				return null;
-			}
-		}
-		return folder;
-	}
-
-	/**
-	 * Returns a duplicate of the given configuration. The new configuration
-	 * will be of the same type as the given configuration or of the duplication
-	 * type registered for the given configuration via the extension point
-	 * IExternalToolConstants.EXTENSION_POINT_CONFIGURATION_DUPLICATION_MAPS.
-	 */
-	public static ILaunchConfiguration duplicateConfiguration(IProject project, ILaunchConfiguration config) throws CoreException {
-		Map attributes= config.getAttributes();
-		String newName= new StringBuffer(config.getName()).append(ExternalToolsModelMessages.BuilderUtils_7).toString();
-		newName= DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(newName);
-		ILaunchConfigurationType newType= getConfigurationDuplicationType(config);
-		ILaunchConfigurationWorkingCopy newWorkingCopy= newType.newInstance(getBuilderFolder(project, true), newName);
-		newWorkingCopy.setAttributes(attributes);
-		return newWorkingCopy.doSave();
-	}
-
-	/**
-	 * Migrates the launch configuration working copy, which is based on an old-
-	 * style external tool builder, to a new, saved launch configuration. The
-	 * returned launch configuration will contain the same attributes as the
-	 * given working copy with the exception of the configuration name, which
-	 * may be changed during the migration. The name of the configuration will
-	 * only be changed if the current name is not a valid name for a saved
-	 * config.
-	 * 
-	 * @param workingCopy the launch configuration containing attributes from an
-	 * old-style project builder.
-	 * @return ILaunchConfiguration a new, saved launch configuration whose
-	 * attributes match those of the given working copy as well as possible
-	 * @throws CoreException if an exception occurs while attempting to save the
-	 * new launch configuration
-	 */
-	public static ILaunchConfiguration migrateBuilderConfiguration(IProject project, ILaunchConfigurationWorkingCopy workingCopy) throws CoreException {
-		workingCopy.setContainer(getBuilderFolder(project, true));
-		// Before saving, make sure the name is valid
-		String name= workingCopy.getName();
-		name= name.replace('/', '.');
-		if (name.charAt(0) == ('.')) {
-			name = name.substring(1);
-		}
-		IStatus status = ResourcesPlugin.getWorkspace().validateName(name, IResource.FILE);
-		if (!status.isOK()) {
-			name = "ExternalTool"; //$NON-NLS-1$
-		}
-		name = DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(name);
-		workingCopy.rename(name);
-		return workingCopy.doSave();
-	}
-
-    /**
-     * Converts the build types string into an array of
-     * build kinds.
-     *
-     * @param buildTypes the string of built types to convert
-     * @return the array of build kinds.
-     */
-    public static int[] buildTypesToArray(String buildTypes) {
-    	if (buildTypes == null || buildTypes.length() == 0) {
-    		return DEFAULT_BUILD_TYPES;
-    	}
-    	
-    	int count = 0;
-    	boolean incremental = false;
-    	boolean full = false;
-    	boolean auto = false;
-        boolean clean= false;
-    
-    	StringTokenizer tokenizer = new StringTokenizer(buildTypes, BUILD_TYPE_SEPARATOR);
-    	while (tokenizer.hasMoreTokens()) {
-    		String token = tokenizer.nextToken();
-    		if (IExternalToolConstants.BUILD_TYPE_INCREMENTAL.equals(token)) {
-    			if (!incremental) {
-    				incremental = true;
-    				count++;
-    			}
-    		} else if (IExternalToolConstants.BUILD_TYPE_FULL.equals(token)) {
-    			if (!full) {
-    				full = true;
-    				count++;
-    			}
-    		} else if (IExternalToolConstants.BUILD_TYPE_AUTO.equals(token)) {
-    			if (!auto) {
-    				auto = true;
-    				count++;
-    			}
-    		} else if (IExternalToolConstants.BUILD_TYPE_CLEAN.equals(token)) {
-                if (!clean) {
-                    clean = true;
-                    count++;
-                }
-            }
-    	}
-    
-    	int[] results = new int[count];
-    	count = 0;
-    	if (incremental) {
-    		results[count] = IncrementalProjectBuilder.INCREMENTAL_BUILD;
-    		count++;
-    	}
-    	if (full) {
-    		results[count] = IncrementalProjectBuilder.FULL_BUILD;
-    		count++;
-    	}
-    	if (auto) {
-    		results[count] = IncrementalProjectBuilder.AUTO_BUILD;
-    		count++;
-    	}
-        if (clean) {
-            results[count] = IncrementalProjectBuilder.CLEAN_BUILD;
-            count++;
-        }
-    
-    	return results;
-    }
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
deleted file mode 100644
index ba3a220..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Conway  - Bug 175186
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-import java.util.Map;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-import org.eclipse.ui.externaltools.internal.registry.ExternalToolMigration;
-import org.osgi.framework.Bundle;
-
-/**
- * This project builder implementation will run an external tool during the
- * build process. 
- */
-public final class ExternalToolBuilder extends IncrementalProjectBuilder {
-	private final class IgnoreTeamPrivateChanges implements IResourceDeltaVisitor {
-		private boolean[] fTrueChange;
-		private IgnoreTeamPrivateChanges(boolean[] trueChange) {
-			super();
-			fTrueChange= trueChange;
-		}
-		public boolean visit(IResourceDelta visitDelta) throws CoreException {
-			IResource resource= visitDelta.getResource();
-			if (resource instanceof IFile) {
-				fTrueChange[0]= true;
-				return false;
-			}
-			return true;
-		}
-	}
-
-	public static final String ID = "org.eclipse.ui.externaltools.ExternalToolBuilder"; //$NON-NLS-1$;
-
-	private static String buildType = IExternalToolConstants.BUILD_TYPE_NONE;
-	
-	private static IProject buildProject= null;
-    private static IResourceDelta buildDelta= null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.events.InternalBuilder#build(int, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {		
-		if (ExternalToolsPlugin.getDefault().getBundle().getState() != Bundle.ACTIVE) {
-			return null;
-		}
-		
-		ILaunchConfiguration config= BuilderUtils.configFromBuildCommandArgs(getProject(), args, new String[1]);
-        if (config == null) {
-            throw ExternalToolsPlugin.newError(ExternalToolsModelMessages.ExternalToolBuilder_0, null);
-        }
-		IProject[] projectsWithinScope= null;
-		IResource[] resources = ExternalToolsUtil.getResourcesForBuildScope(config);
-		if (resources != null) {
-			projectsWithinScope= new IProject[resources.length];
-			for (int i = 0; i < resources.length; i++) {
-				projectsWithinScope[i]= resources[i].getProject();
-			}
-		}
-        boolean kindCompatible= commandConfiguredForKind(config, kind);
-        if (kindCompatible && configEnabled(config)) {
-            doBuildBasedOnScope(resources, kind, config, monitor);
-        }
-        
-		return projectsWithinScope;
-	}
-
-    private boolean commandConfiguredForKind(ILaunchConfiguration config, int kind) {
-        try {
-            if (!(config.getAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, false))) {
-                ICommand command= getCommand();
-                //adapt the builder command to make use of the 3.1 support for setting command build kinds
-                //this will only happen once for builder/command defined before the support existed
-                BuilderUtils.configureTriggers(config, command);
-                IProjectDescription desc= getProject().getDescription();
-                ICommand[] commands= desc.getBuildSpec();
-                int index= getBuilderCommandIndex(commands, command);
-                if (index != -1) {
-                    commands[index]= command;
-                    desc.setBuildSpec(commands);
-                    getProject().setDescription(desc, null);
-                    ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-                    copy.setAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, true);
-                    copy.doSave();
-                }
-                return command.isBuilding(kind);
-            }
-        } catch (CoreException e) {
-           ExternalToolsPlugin.getDefault().log(e);
-           return true;
-        }
-        return true;
-    }
-    
-    private int getBuilderCommandIndex(ICommand[] buildSpec, ICommand command) {
-        Map commandArgs= command.getArguments();
-        if (commandArgs == null) {
-            return -1;
-        }
-        String handle= (String) commandArgs.get(BuilderUtils.LAUNCH_CONFIG_HANDLE);
-        if (handle == null) {
-            return -1;
-        }
-        for (int i = 0; i < buildSpec.length; ++i) {
-            ICommand buildSpecCommand= buildSpec[i];
-            if (ID.equals(buildSpecCommand.getBuilderName())) {
-                Map buildSpecArgs= buildSpecCommand.getArguments();
-                if (buildSpecArgs != null) {
-                    String buildSpecHandle= (String) buildSpecArgs.get(BuilderUtils.LAUNCH_CONFIG_HANDLE);
-                    if (handle.equals(buildSpecHandle)) {
-                        return i;
-                    }
-                }
-            }
-        }
-        return -1;
-    }
-
-	/**
-	 * Returns whether the given builder config is enabled or not.
-	 * 
-	 * @param config the config to examine
-	 * @return whether the config is enabled
-	 */
-	private boolean configEnabled(ILaunchConfiguration config) {
-		try {
-			return ExternalToolsUtil.isBuilderEnabled(config);
-		} catch (CoreException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-		return true;
-	}
-
-	private void doBuildBasedOnScope(IResource[] resources, int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
-		boolean buildForChange = true;
-		if (kind != FULL_BUILD) { //scope not applied for full builds
-			if (resources != null && resources.length > 0) {
-				buildForChange = buildScopeIndicatesBuild(resources);
-			}
-		}
-
-		if (buildForChange) {
-			launchBuild(kind, config, monitor);
-		}
-	}
-	
-	private void launchBuild(int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
-		monitor.subTask(NLS.bind(ExternalToolsModelMessages.ExternalToolBuilder_Running__0_____1, new String[] { config.getName()}));
-		buildStarted(kind);
-		// The default value for "launch in background" is true in debug core. If
-		// the user doesn't go through the UI, the new attribute won't be set. This means
-		// that existing Ant builders will try to run in the background (and likely conflict with
-		// each other) without migration.
-		config= ExternalToolMigration.migrateRunInBackground(config);
-		config.launch(ILaunchManager.RUN_MODE, monitor);
-		buildEnded();
-	}
-
-	/**
-	 * Returns the build type being performed if the
-	 * external tool is being run as a project builder.
-	 * 
-	 * @return one of the <code>IExternalToolConstants.BUILD_TYPE_*</code> constants.
-	 */
-	public static String getBuildType() {
-		return buildType;
-	}
-	
-	/**
-	 * Returns the project that is being built and has triggered the current external
-	 * tool builder. <code>null</code> is returned if no build is currently occurring.
-	 * 
-	 * @return project being built or <code>null</code>.
-	 */
-	public static IProject getBuildProject() {
-		return buildProject;
-	}
-
-    /**
-     * Returns the <code>IResourceDelta</code> that is being built and has triggered the current external
-     * tool builder. <code>null</code> is returned if no build is currently occurring.
-     * 
-     * @return resource delta for the build or <code>null</code>
-     */
-    public static IResourceDelta getBuildDelta() {
-        return buildDelta;
-    }
-    
-	/**
-	 * Stores the currently active build kind and build project when a build begins
-	 * @param buildKind
-	 */
-	private void buildStarted(int buildKind) {
-		switch (buildKind) {
-			case IncrementalProjectBuilder.INCREMENTAL_BUILD :
-				buildType = IExternalToolConstants.BUILD_TYPE_INCREMENTAL;
-				buildDelta = getDelta(getProject());
-				break;
-			case IncrementalProjectBuilder.FULL_BUILD :
-				buildType = IExternalToolConstants.BUILD_TYPE_FULL;
-				break;
-			case IncrementalProjectBuilder.AUTO_BUILD :
-				buildType = IExternalToolConstants.BUILD_TYPE_AUTO;
-				buildDelta = getDelta(getProject());
-				break;
-            case IncrementalProjectBuilder.CLEAN_BUILD :
-                buildType = IExternalToolConstants.BUILD_TYPE_CLEAN;
-                break;
-			default :
-				buildType = IExternalToolConstants.BUILD_TYPE_NONE;
-				break;
-		}
-		buildProject= getProject();
-	}
-	
-	/**
-	 * Clears the current build kind, build project and build delta when a build finishes.
-	 */
-	private void buildEnded() {
-		buildType= IExternalToolConstants.BUILD_TYPE_NONE;
-		buildProject= null;
-        buildDelta= null;
-	}
-	
-	private boolean buildScopeIndicatesBuild(IResource[] resources) {
-		for (int i = 0; i < resources.length; i++) {
-			IResourceDelta delta = getDelta(resources[i].getProject());
-			if (delta == null) {
-				//project just added to the workspace..no previous build tree
-				return true;
-			} 
-			IPath path= resources[i].getProjectRelativePath();
-			IResourceDelta change= delta.findMember(path);
-			if (change != null) {
-				final boolean[] trueChange= new boolean[1];
-				trueChange[0]= false;
-				try {
-					change.accept(new IgnoreTeamPrivateChanges(trueChange));
-				} catch (CoreException e) {
-					ExternalToolsPlugin.getDefault().log("Internal error resolving changed resources during build", e); //$NON-NLS-1$
-				}
-				
-				return trueChange[0]; //filtered out team private changes
-			}
-		}
-		return false;
-	}
-    
-    protected void clean(IProgressMonitor monitor) throws CoreException {
-	    ICommand command= getCommand();
-        ILaunchConfiguration config= BuilderUtils.configFromBuildCommandArgs(getProject(), command.getArguments(), new String[1]);
-    	if (!configEnabled(config)) {
-	    	return;
-	    }
-        
-        if ((!config.getAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, false))) {
-            //old behavior
-            super.clean(monitor);
-            return;
-        }
-	
-		launchBuild(IncrementalProjectBuilder.CLEAN_BUILD, config, monitor);
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
deleted file mode 100644
index c45144d..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The images provided by the external tools plugin.
- */
-public class ExternalToolsImages {
-
-	/** 
-	 * The image registry containing <code>Image</code>s.
-	 */
-	private static ImageRegistry imageRegistry;
-	
-	/**
-	 * The registry for composite images
-	 */
-	private static ImageDescriptorRegistry imageDescriptorRegistry;
-
-	/* Declare Common paths */
-	private static URL ICON_BASE_URL= null;
-
-	static {
-		String pathSuffix = "icons/full/"; //$NON-NLS-1$	
-		ICON_BASE_URL= ExternalToolsPlugin.getDefault().getBundle().getEntry(pathSuffix);
-	}
-
-	// Use IPath and toOSString to build the names to ensure they have the slashes correct
-	private final static String OBJECT= "obj16/"; //basic colors - size 16x16 //$NON-NLS-1$
-	
-	/**
-	 * Declare all images
-	 */
-	private static void declareImages() {		
-		// Objects
-		declareRegistryImage(IExternalToolConstants.IMG_TAB_MAIN, OBJECT + "main_tab.gif"); //$NON-NLS-1$
-		declareRegistryImage(IExternalToolConstants.IMG_TAB_BUILD, OBJECT + "build_tab.gif"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Declare an Image in the registry table.
-	 * @param key 	The key to use when registering the image
-	 * @param path	The path where the image can be found. This path is relative to where
-	 *				this plugin class is found (i.e. typically the packages directory)
-	 */
-	private final static void declareRegistryImage(String key, String path) {
-		ImageDescriptor desc= ImageDescriptor.getMissingImageDescriptor();
-		try {
-			desc= ImageDescriptor.createFromURL(makeIconFileURL(path));
-		} catch (MalformedURLException me) {
-		}
-		imageRegistry.put(key, desc);
-	}
-	
-	/**
-	 * Returns the ImageRegistry.
-	 */
-	public static ImageRegistry getImageRegistry() {
-		if (imageRegistry == null) {
-			initializeImageRegistry();
-		}
-		return imageRegistry;
-	}
-
-	/**
-	 *	Initialize the image registry by declaring all of the required
-	 *	graphics. This involves creating JFace image descriptors describing
-	 *	how to create/find the image should it be needed.
-	 *	The image is not actually allocated until requested.
-	 *
-	 * 	Prefix conventions
-	 *		Wizard Banners			WIZBAN_
-	 *		Preference Banners		PREF_BAN_
-	 *		Property Page Banners	PROPBAN_
-	 *		Color toolbar			CTOOL_
-	 *		Enable toolbar			ETOOL_
-	 *		Disable toolbar			DTOOL_
-	 *		Local enabled toolbar	ELCL_
-	 *		Local Disable toolbar	DLCL_
-	 *		Object large			OBJL_
-	 *		Object small			OBJS_
-	 *		View 					VIEW_
-	 *		Product images			PROD_
-	 *		Misc images				MISC_
-	 *
-	 *	Where are the images?
-	 *		The images (typically gifs) are found in the same location as this plugin class.
-	 *		This may mean the same package directory as the package holding this class.
-	 *		The images are declared using this.getClass() to ensure they are looked up via
-	 *		this plugin class.
-     *	@see org.eclipse.jface.resource.ImageRegistry
-	 */
-	public static ImageRegistry initializeImageRegistry() {
-		imageRegistry= new ImageRegistry(ExternalToolsPlugin.getStandardDisplay());
-		declareImages();
-		return imageRegistry;
-	}
-
-	/**
-	 * Returns the <code>Image<code> identified by the given key,
-	 * or <code>null</code> if it does not exist.
-	 */
-	public static Image getImage(String key) {
-		return getImageRegistry().get(key);
-	}
-	
-	/**
-	 * Returns the <code>ImageDescriptor<code> identified by the given key,
-	 * or <code>null</code> if it does not exist.
-	 */
-	public static ImageDescriptor getImageDescriptor(String key) {
-		return getImageRegistry().getDescriptor(key);
-	}
-	
-	private static URL makeIconFileURL(String iconPath) throws MalformedURLException {
-		if (ICON_BASE_URL == null) {
-			throw new MalformedURLException();
-		}
-			
-		return new URL(ICON_BASE_URL, iconPath);
-	}
-	
-	/**
-	 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
-	 * are retrieved from the *lcl16 folders.
-	 */
-	public static void setLocalImageDescriptors(IAction action, String iconName) {
-		setImageDescriptors(action, "lcl16", iconName); //$NON-NLS-1$
-	}
-	
-	private static void setImageDescriptors(IAction action, String type, String relPath) {
-		
-		try {
-			ImageDescriptor id= ImageDescriptor.createFromURL(makeIconFileURL("d" + type, relPath)); //$NON-NLS-1$
-			if (id != null)
-				action.setDisabledImageDescriptor(id);
-		} catch (MalformedURLException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-
-		try {
-			ImageDescriptor id= ImageDescriptor.createFromURL(makeIconFileURL("c" + type, relPath)); //$NON-NLS-1$
-			if (id != null)
-				action.setHoverImageDescriptor(id);
-		} catch (MalformedURLException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-
-		action.setImageDescriptor(create("e" + type, relPath)); //$NON-NLS-1$
-	}
-	
-	private static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
-		if (ICON_BASE_URL == null) {
-			throw new MalformedURLException();
-		}
-		
-		StringBuffer buffer= new StringBuffer(prefix);
-		buffer.append('/');
-		buffer.append(name);
-		return new URL(ICON_BASE_URL, buffer.toString());
-	}
-	
-	private static ImageDescriptor create(String prefix, String name) {
-		try {
-			return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
-		} catch (MalformedURLException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-			return ImageDescriptor.getMissingImageDescriptor();
-		}
-	}
-	
-	/** 
-	 * Returns the image for the given composite descriptor. 
-	 */
-	public static Image getImage(CompositeImageDescriptor imageDescriptor) {
-		if (imageDescriptorRegistry == null) {
-			imageDescriptorRegistry = new ImageDescriptorRegistry();	
-		}
-		return imageDescriptorRegistry.get(imageDescriptor);
-	}
-	
-	public static void disposeImageDescriptorRegistry() {
-		if (imageDescriptorRegistry != null) {
-			imageDescriptorRegistry.dispose(); 
-		}
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
deleted file mode 100644
index f683964..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ExternalToolsModelMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.model.ExternalToolsModelMessages";//$NON-NLS-1$
-    
-	public static String ImageDescriptorRegistry_Allocating_image_for_wrong_display_1;
-	public static String ExternalToolBuilder_Running__0_____1;
-	public static String ExternalToolBuilder_0;
-	public static String BuilderUtils_5;
-	public static String BuilderUtils_6;
-	public static String BuilderUtils_7;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ExternalToolsModelMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
deleted file mode 100644
index 528fcb2..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ImageDescriptorRegistry_Allocating_image_for_wrong_display_1=Allocating image for wrong display
-ExternalToolBuilder_Running__0_____1=Running {0}...
-ExternalToolBuilder_0=The builder launch configuration could not be found.
-BuilderUtils_5=Command Error
-BuilderUtils_6=An error occurred while saving the build commands of the project
-BuilderUtils_7=\ [Builder]
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
deleted file mode 100644
index 130c6a6..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/**
- * External tools plug-in class
- */
-public final class ExternalToolsPlugin extends AbstractUIPlugin {
-	/**
-	 * Status representing no problems encountered during operation.
-	 */
-	public static final IStatus OK_STATUS = new Status(IStatus.OK, IExternalToolConstants.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
-
-	private static ExternalToolsPlugin plugin;
-	
-	private static final String EMPTY_STRING= ""; //$NON-NLS-1$
-
-	/**
-	 * Create an instance of the External Tools plug-in.
-	 */
-	public ExternalToolsPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the default instance of the receiver.
-	 * This represents the runtime plugin.
-	 */
-	public static ExternalToolsPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns a new <code>IStatus</code> for this plug-in
-	 */
-	public static IStatus newErrorStatus(String message, Throwable exception) {
-		if (message == null) {
-			message= EMPTY_STRING; 
-		}		
-		return new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, message, exception);
-	}
-
-	/**
-	 * Returns a new <code>CoreException</code> for this plug-in
-	 */
-	public static CoreException newError(String message, Throwable exception) {
-		return new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, message, exception));
-	}
-
-	/**
-	 * Writes the message to the plug-in's log
-	 * 
-	 * @param message the text to write to the log
-	 */
-	public void log(String message, Throwable exception) {
-		IStatus status = newErrorStatus(message, exception);
-		getLog().log(status);
-	}
-	
-	public void log(Throwable exception) {
-		//this message is intentionally not internationalized, as an exception may
-		// be due to the resource bundle itself
-		getLog().log(newErrorStatus("Internal error logged from External Tools UI: ", exception)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the ImageDescriptor for the icon with the given path
-	 * 
-	 * @return the ImageDescriptor object
-	 */
-	public ImageDescriptor getImageDescriptor(String path) {
-		try {
-			Bundle bundle= getDefault().getBundle();
-			URL installURL = bundle.getEntry("/"); //$NON-NLS-1$
-			URL url = new URL(installURL, path);
-			return ImageDescriptor.createFromURL(url);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-	/**
-	 * Returns the active workbench window or <code>null</code> if none
-	 */
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-	
-	/**
-	 * Returns the active workbench page or <code>null</code> if none.
-	 */
-	public static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null) {
-			return window.getActivePage();
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the active workbench shell or <code>null</code> if none.
-	 */
-	public static Shell getActiveWorkbenchShell() {
-		IWorkbenchWindow window = getActiveWorkbenchWindow();
-		if (window != null) {
-			return window.getShell();
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated display. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		return display;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#createImageRegistry()
-	 */
-	protected ImageRegistry createImageRegistry() {
-		return ExternalToolsImages.initializeImageRegistry();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		try {
-			ExternalToolsImages.disposeImageDescriptorRegistry();
-		} finally {
-			super.stop(context);
-		}
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPreferenceInitializer.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPreferenceInitializer.java
deleted file mode 100644
index b7bbb8b..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPreferenceInitializer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-public class ExternalToolsPreferenceInitializer extends AbstractPreferenceInitializer {
-
-	public ExternalToolsPreferenceInitializer() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore prefs = ExternalToolsPlugin.getDefault().getPreferenceStore();
-		prefs.setDefault(IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION, true);
-		prefs.setDefault(IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION, true);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
deleted file mode 100644
index 31de4e3..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-/**
- * Defines the constants available for client use.
- * <p>
- * This interface is not intended to be extended or implemented by clients.
- * </p>
- */
-public interface IExternalToolConstants {
-	/**
-	 * Plugin identifier for external tools (value <code>org.eclipse.ui.externaltools</code>).
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.ui.externaltools"; //$NON-NLS-1$;
-
-	// ------- Extensions Points -------
-	/**
-	 * Extension point to declare the launch configuration type that should be
-	 * created when duplicating an existing configuration as a project builder.
-	 */
-	public static final String EXTENSION_POINT_CONFIGURATION_DUPLICATION_MAPS = "configurationDuplicationMaps"; //$NON-NLS-1$
-	// ------- Refresh Variables -------
-	/**
-	 * Variable that expands to the workspace root object (value <code>workspace</code>).
-	 */
-	public static final String VAR_WORKSPACE = "workspace"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to the project resource (value <code>project</code>).
-	 */
-	public static final String VAR_PROJECT = "project"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to the container resource (value <code>container</code>).
-	 */
-	public static final String VAR_CONTAINER = "container"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to a resource (value <code>resource</code>).
-	 */
-	public static final String VAR_RESOURCE = "resource"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to the working set object (value <code>working_set</code>).
-	 */
-	public static final String VAR_WORKING_SET = "working_set"; //$NON-NLS-1$
-	// ------- Tool Types -------
-	/**
-	 * External tool type for programs such as executables, batch files, 
-	 * shell scripts, etc (value <code>programType</code>).
-	 */
-	public static final String TOOL_TYPE_PROGRAM = "programType"; //$NON-NLS-1$;
-
-	// ------- Build Types -------
-	/**
-	 * Build type indicating an incremental project build request for
-	 * the external tool running as a builder (value <code>incremental</code>).
-	 */
-	public static final String BUILD_TYPE_INCREMENTAL = "incremental"; //$NON-NLS-1$
-
-	/**
-	 * Build type indicating a full project build request for
-	 * the external tool running as a builder (value <code>full</code>).
-	 */
-	public static final String BUILD_TYPE_FULL = "full"; //$NON-NLS-1$
-
-	/**
-	 * Build type indicating an automatic project build request for
-	 * the external tool running as a builder (value <code>auto</code>).
-	 */
-	public static final String BUILD_TYPE_AUTO = "auto"; //$NON-NLS-1$
-	
-	/**
-	 * Build type indicating a clean project build request for
-	 * the external tool running as a builder (value <code>clean</code>).
-	 */
-	public static final String BUILD_TYPE_CLEAN = "clean"; //$NON-NLS-1$
-
-	/**
-	 * Build type indicating no project build request for
-	 * the external tool running as a builder (value <code>none</code>).
-	 */
-	public static final String BUILD_TYPE_NONE = "none"; //$NON-NLS-1$
-
-	// ------- Images -------
-
-	/**
-	 * Main tab image.
-	 */
-	public static final String IMG_TAB_MAIN = PLUGIN_ID + ".IMG_TAB_MAIN"; //$NON-NLS-1$
-
-	/**
-	 * Build tab image
-	 */
-	public static final String IMG_TAB_BUILD = PLUGIN_ID + ".IMG_TAB_BUILD"; //$NON-NLS-1$
-
-	// ------- Launch configuration types --------
-	/**
-	 * Program launch configuration type identifier.
-	 */
-	public static final String ID_PROGRAM_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"; //$NON-NLS-1$
-	
-	/**
-	 * Program builder launch configuration type identifier. Program project
-	 * builders are of this type.
-	 */
-	public static final String ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"; //$NON-NLS-1$	
-	
-	// ------- Launch configuration category --------
-	/**
-	 * Identifier for external tools launch configuration category. Launch
-	 * configuration types for external tools that appear in the external tools
-	 * launch configuration dialog should belong to this category.
-	 */
-	public static final String ID_EXTERNAL_TOOLS_LAUNCH_CATEGORY = "org.eclipse.ui.externaltools"; //$NON-NLS-1$
-	/**
-	 * Identifier for external tools launch configuration builders category.
-	 * Launch configuration types that can be added as project builders should
-	 * belong to this category.
-	 */
-	public static final String ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY = "org.eclipse.ui.externaltools.builder"; //$NON-NLS-1$
-
-	// ------- Launch configuration groups --------
-	/**
-	 * Identifier for external tools launch configuration group. The external
-	 * tools launch configuration group corresponds to the external tools
-	 * category in run mode.
-	 */
-	public static final String ID_EXTERNAL_TOOLS_LAUNCH_GROUP = "org.eclipse.ui.externaltools.launchGroup"; //$NON-NLS-1$
-	/**
-	 * Identifier for external tools launch configuration group
-	 */
-	public static final String ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_GROUP = "org.eclipse.ui.externaltools.launchGroup.builder"; //$NON-NLS-1$
-
-	// ------- Common External Tool Launch Configuration Attributes -------
-
-	/**
-	 * Boolean attribute indicating if external tool output should be captured.
-	 * Default value is <code>false</code>.
-	 * @deprecated since 3.1 Replaced by <code>org.eclipse.debug.core.DebugPlugin.ATTR_CAPTURE_OUTPUT</code>
-	 */
-	public static final String ATTR_CAPTURE_OUTPUT = PLUGIN_ID + ".ATTR_CAPTURE_OUTPUT"; //$NON-NLS-1$
-	/**
-	 * String attribute identifying the location of an external. Default value
-	 * is <code>null</code>. Encoding is tool specific.
-	 */
-	public static final String ATTR_LOCATION = PLUGIN_ID + ".ATTR_LOCATION"; //$NON-NLS-1$
-
-	/**
-	 * Boolean attribute indicating if the user should be prompted for
-	 * arguments before running a tool. Default value is <code>false</code>.
-	 * THIS ATTRIBUTE IS NOT USED.
-	 */
-	public static final String ATTR_PROMPT_FOR_ARGUMENTS = PLUGIN_ID + ".ATTR_PROMPT_FOR_ARGUMENTS"; //$NON-NLS-1$
-	
-	/**
-	 * String attribute identifying the scope of resources that should trigger an 
-	 * external tool to run. Default value is <code>null</code>
-	 * indicating that the builder will be triggered for all changes.
-	 */
-	public static final String ATTR_BUILDER_SCOPE = PLUGIN_ID + ".ATTR_BUILD_SCOPE"; //$NON-NLS-1$
-		
-	/**
-	 * String attribute containing an array of build kinds for which an
-	 * external tool builder should be run.
-	 */
-	public static final String ATTR_RUN_BUILD_KINDS = PLUGIN_ID + ".ATTR_RUN_BUILD_KINDS"; //$NON-NLS-1$
-	
-	/**
-	 * Boolean attribute indicating if the console should be shown on external
-	 * tool output. Default value is <code>false</code>.
-	 */
-	public static final String ATTR_SHOW_CONSOLE = PLUGIN_ID + ".ATTR_SHOW_CONSOLE"; //$NON-NLS-1$
-
-	/**
-	 * String attribute containing the arguments that should be passed to the
-	 * tool. Default value is <code>null</code>, and encoding is tool specific.
-	 */
-	public static final String ATTR_TOOL_ARGUMENTS = PLUGIN_ID + ".ATTR_TOOL_ARGUMENTS"; //$NON-NLS-1$
-
-	/**
-	 * String attribute identifying the working directory of an external tool.
-	 * Default value is <code>null</code>, which indicates a default working
-	 * directory, which is tool specific.
-	 */
-	public static final String ATTR_WORKING_DIRECTORY = PLUGIN_ID + ".ATTR_WORKING_DIRECTORY"; //$NON-NLS-1$
-	
-	/**
-	 * String attribute identifying whether an external tool builder configuration
-	 * is enabled. The default value is <code>true</code>, which indicates
-	 * that the configuration will be executed as appropriate by the builder.
-	 */
-	public static final String ATTR_BUILDER_ENABLED = PLUGIN_ID + ".ATTR_BUILDER_ENABLED"; //$NON-NLS-1$
-	
-	/**
-	 * Status code indicating an unexpected internal error.
-	 */
-	public static final int ERR_INTERNAL_ERROR = 150;
-
-	/**
-	 * String attribute identifying a non-external tool builder launch configuration that is disabled
-	 * The value is the name of the disabled builder.
-	 */
-	public static final String ATTR_DISABLED_BUILDER = PLUGIN_ID + ".ATTR_DISABLED_BUILDER";		 //$NON-NLS-1$
-	
-	/**
-	 * boolean attribute identifying that an external tool builder has been configured for triggering
-	 * using the <code>ICommand.setBuilding(int)</code> mechanism
-	 * @since 3.1
-	 */
-	public static final String ATTR_TRIGGERS_CONFIGURED = PLUGIN_ID + ".ATTR_TRIGGERS_CONFIGURED";		 //$NON-NLS-1$
-
-	/**
-	 * String attribute identifying the build scope for a launch configuration.
-	 * <code>null</code> indicates the default workspace build.
-	 */
-	public static final String ATTR_BUILD_SCOPE = PLUGIN_ID + ".ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE"; //$NON-NLS-1$
-
-	/**
-	 * Attribute identifier specifying whether referenced projects should be 
-	 * considered when computing the projects to build. Default value is
-	 * <code>true</code>.
-	 */
-	public static final String ATTR_INCLUDE_REFERENCED_PROJECTS = PLUGIN_ID + ".ATTR_INCLUDE_REFERENCED_PROJECTS"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
deleted file mode 100644
index 0bbfd05..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-/**
- * Help context ids for the external tools.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- */
-public interface IExternalToolsHelpContextIds {
-	public static final String PREFIX = "org.eclipse.ui.externaltools."; //$NON-NLS-1$
-	
-	// Preference Pages
-	public static final String EXTERNAL_TOOLS_PREFERENCE_PAGE = PREFIX + "preference_page_context";  //$NON-NLS-1$
-		
-	// Property Pages
-	public static final String EXTERNAL_TOOLS_BUILDER_PROPERTY_PAGE = PREFIX + "builder_property_page_context"; //$NON-NLS-1$
-	
-	//Dialogs
-	public static final String MESSAGE_WITH_TOGGLE_DIALOG = PREFIX + "message_with_toggle_dialog_context"; //$NON-NLS-1$
-	public static final String FILE_SELECTION_DIALOG = PREFIX + "file_selection_dialog_context"; //$NON-NLS-1$
-	
-	//Launch configuration dialog tabs
-	public static final String EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_BUILDER_TAB = PREFIX + "builders_tab_context"; //$NON-NLS-1$
-	public static final String EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_PROGRAM_MAIN_TAB = PREFIX + "program_main_tab_context"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
deleted file mode 100644
index ab0944c..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-/**
- * Constants used to identify user preferences.
- */
-public interface IPreferenceConstants {
-	
-	/**
-	 * Boolean preference key which indicates whether or not the user should be prompted
-	 * before an external tool project builder is migrated to the new builder format.
-	 * This is used before an old-style (Eclipse 1.0 or 2.0) builder is migrated to
-	 * the new format (launch configurations).
-	 */
-	public static final String PROMPT_FOR_TOOL_MIGRATION = "externaltools.builders.promptForMigration"; //$NON-NLS-1$
-	/**
-	 * Boolean preference key which indicates whether or not the user should be prompted
-	 * before a project is migrated tot he new builder handle format.
-	 * This is used before an old-style (Eclipse 2.1) project handle is migrated
-	 * from the old format (launch config handles) to the new format (path to the launch).
-	 */
-	public static final String PROMPT_FOR_PROJECT_MIGRATION = "externaltools.builders.promptForProjectMigration"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
deleted file mode 100644
index fea3816..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
- 
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A registry that maps <code>ImageDescriptors</code> to <code>Image</code>.
- */
-public class ImageDescriptorRegistry {
-
-	private HashMap fRegistry= new HashMap(10);
-	private Display fDisplay;
-	
-	/**
-	 * Creates a new image descriptor registry for the current or default display,
-	 * respectively.
-	 */
-	public ImageDescriptorRegistry() {
-		this(ExternalToolsPlugin.getStandardDisplay());
-	}
-	
-	/**
-	 * Creates a new image descriptor registry for the given display. All images
-	 * managed by this registry will be disposed when the display gets disposed.
-	 * 
-	 * @param display the display the images managed by this registry are allocated for 
-	 */
-	public ImageDescriptorRegistry(Display display) {
-		fDisplay= display;
-		Assert.isNotNull(fDisplay);
-		hookDisplay();
-	}
-	
-	/**
-	 * Returns the image associated with the given image descriptor.
-	 * 
-	 * @param descriptor the image descriptor for which the registry manages an image
-	 * @return the image associated with the image descriptor or <code>null</code>
-	 *  if the image descriptor can't create the requested image.
-	 */
-	public Image get(ImageDescriptor descriptor) {
-		if (descriptor == null)
-			descriptor= ImageDescriptor.getMissingImageDescriptor();
-			
-		Image result= (Image)fRegistry.get(descriptor);
-		if (result != null)
-			return result;
-	
-		Assert.isTrue(fDisplay == ExternalToolsPlugin.getStandardDisplay(), ExternalToolsModelMessages.ImageDescriptorRegistry_Allocating_image_for_wrong_display_1);
-		result= descriptor.createImage();
-		if (result != null)
-			fRegistry.put(descriptor, result);
-		return result;
-	}
-
-	/**
-	 * Disposes all images managed by this registry.
-	 */	
-	public void dispose() {
-		for (Iterator iter= fRegistry.values().iterator(); iter.hasNext(); ) {
-			Image image= (Image)iter.next();
-			image.dispose();
-		}
-		fRegistry.clear();
-	}
-	
-	private void hookDisplay() {
-		fDisplay.disposeExec(new Runnable() {
-			public void run() {
-				dispose();
-			}	
-		});
-	}
-}
-
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
deleted file mode 100644
index 8d41495..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.registry;
-
-
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.ui.ExternalToolsUIMessages;
-
-/**
- * Responsible reading an old external tool format and creating
- * and migrating it to create a new external tool.
- */
-public final class ExternalToolMigration {
-	/**
-	 * Structure to represent a variable definition within a
-	 * source string.
-	 */
-	public static final class VariableDefinition {
-		/**
-		 * Index in the source text where the variable started
-		 * or <code>-1</code> if no valid variable start tag 
-		 * identifier found.
-		 */
-		public int start = -1;
-		
-		/**
-		 * Index in the source text of the character following
-		 * the end of the variable or <code>-1</code> if no 
-		 * valid variable end tag found.
-		 */
-		public int end = -1;
-		
-		/**
-		 * The variable's name found in the source text, or
-		 * <code>null</code> if no valid variable found.
-		 */
-		public String name = null;
-		
-		/**
-		 * The variable's argument found in the source text, or
-		 * <code>null</code> if no valid variable found or if
-		 * the variable did not specify an argument
-		 */
-		public String argument = null;
-		
-		/**
-		 * Create an initialized variable definition.
-		 */
-		private VariableDefinition() {
-			super();
-		}
-	}
-	
-	/**
-	 * Variable tag indentifiers
-	 */
-	private static final String VAR_TAG_START = "${"; //$NON-NLS-1$
-	private static final String VAR_TAG_END = "}"; //$NON-NLS-1$
-	private static final String VAR_TAG_SEP = ":"; //$NON-NLS-1$	
-	
-	/**
-	 * External tool type for Ant build files (value <code>antBuildType</code>).
-	 */
-	public static final String TOOL_TYPE_ANT_BUILD = "antBuildType"; //$NON-NLS-1$;
-	/**
-	 * Ant builder launch configuration type identifier. Ant project builders
-	 * are of this type.
-	 */
-	public static final String ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ant.AntBuilderLaunchConfigurationType"; //$NON-NLS-1$
-		
-	public static final String RUN_TARGETS_ATTRIBUTE = TOOL_TYPE_ANT_BUILD + ".runTargets"; //$NON-NLS-1$;
-
-	/**
-	* String attribute indicating the Ant targets to execute. Default value is
-	 * <code>null</code> which indicates that the default target is to be
-	 * executed. Format is a comma separated listing of targets.
-	 * NOTE: This value is copied here from org.eclipse.ant.ui.internal.IAntLaunchConfigurationConstants.
-	 * 		Ant no longer resides in External Tools and this plug-in. This value is kept here only
-	 * 		for migration.
-	 */
-	public static final String ATTR_ANT_TARGETS = IExternalToolConstants.PLUGIN_ID + ".ATTR_ANT_TARGETS"; //$NON-NLS-1$
-	
-	/*
-	 * 2.0 External Tool Tags
-	 */
-	public static final String TAG_TOOL_TYPE = "!{tool_type}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_NAME = "!{tool_name}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_LOCATION = "!{tool_loc}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_ARGUMENTS = "!{tool_args}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_DIRECTORY = "!{tool_dir}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_REFRESH = "!{tool_refresh}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_SHOW_LOG = "!{tool_show_log}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_BUILD_TYPES = "!{tool_build_types}"; //$NON-NLS-1$
-	public static final String TAG_TOOL_BLOCK = "!{tool_block}"; //$NON-NLS-1$
-
-	// Known kind of tools
-	private static final String TOOL_TYPE_ANT = "org.eclipse.ui.externaltools.type.ant"; //$NON-NLS-1$
-	private static final String TOOL_TYPE_PROGRAM = "org.eclipse.ui.externaltools.type.program"; //$NON-NLS-1$
-
-	/*
-	 * 2.1 External Tool Keys
-	 */
-	public static final String TAG_TYPE = "type"; //$NON-NLS-1$
-	public static final String TAG_NAME = "name"; //$NON-NLS-1$
-	public static final String TAG_LOCATION = "location"; //$NON-NLS-1$
-	public static final String TAG_WORK_DIR = "workDirectory"; //$NON-NLS-1$
-	public static final String TAG_CAPTURE_OUTPUT = "captureOutput"; //$NON-NLS-1$
-	public static final String TAG_SHOW_CONSOLE = "showConsole"; //$NON-NLS-1$
-	public static final String TAG_RUN_BKGRND = "runInBackground"; //$NON-NLS-1$
-	public static final String TAG_PROMPT_ARGS = "promptForArguments"; //$NON-NLS-1$
-	public static final String TAG_ARGS = "arguments"; //$NON-NLS-1$
-	public static final String TAG_REFRESH_SCOPE = "refreshScope"; //$NON-NLS-1$
-	public static final String TAG_REFRESH_RECURSIVE = "refreshRecursive"; //$NON-NLS-1$
-	public static final String TAG_RUN_BUILD_KINDS = "runForBuildKinds"; //$NON-NLS-1$
-	public static final String TAG_EXTRA_ATTR = "extraAttribute"; //$NON-NLS-1$
-	public static final String TAG_VERSION = "version"; //$NON-NLS-1$
-
-	private static final String EXTRA_ATTR_SEPARATOR = "="; //$NON-NLS-1$
-
-	private static final String VERSION_21 = "2.1"; //$NON-NLS-1$;
-
-	private static final String TRUE = "true"; //$NON-NLS-1$
-	private static final String FALSE = "false"; //$NON-NLS-1$
-
-	/**
-	 * Allows no instances.
-	 */
-	private ExternalToolMigration() {
-		super();
-	}
-
-	/**
-	 * Returns a  launch configuration working copy from the argument map or
-	 * <code>null</code> if the given map cannot be interpreted as a 2.0 or 2.1
-	 * branch external tool. The returned working copy will be unsaved and its
-	 * location will be set to the metadata area.
-	 */
-	public static ILaunchConfigurationWorkingCopy configFromArgumentMap(Map args) {
-		String version = (String) args.get(TAG_VERSION);
-		if (VERSION_21.equals(version)) {
-			return configFrom21ArgumentMap(args);
-		}
-		return configFrom20ArgumentMap(args);
-	}
-
-	public static ILaunchConfigurationWorkingCopy configFrom21ArgumentMap(Map commandArgs) {
-		String name = (String) commandArgs.get(TAG_NAME);
-		String type = (String) commandArgs.get(TAG_TYPE);
-		
-		ILaunchConfigurationWorkingCopy config = newConfig(type, name);
-		if (config == null) {
-			return null;
-		}
-		
-		config.setAttribute(IExternalToolConstants.ATTR_LOCATION, (String) commandArgs.get(TAG_LOCATION));
-		config.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String) commandArgs.get(TAG_WORK_DIR));
-		config.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, TRUE.equals(commandArgs.get(TAG_CAPTURE_OUTPUT)));
-		config.setAttribute(IExternalToolConstants.ATTR_SHOW_CONSOLE, TRUE.equals(commandArgs.get(TAG_SHOW_CONSOLE)));
-		config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, TRUE.equals(commandArgs.get(TAG_RUN_BKGRND)));
-		config.setAttribute(IExternalToolConstants.ATTR_PROMPT_FOR_ARGUMENTS, TRUE.equals(commandArgs.get(TAG_PROMPT_ARGS)));
-		config.setAttribute(RefreshTab.ATTR_REFRESH_SCOPE, (String) commandArgs.get(TAG_REFRESH_SCOPE));
-		config.setAttribute(RefreshTab.ATTR_REFRESH_RECURSIVE, TRUE.equals(commandArgs.get(TAG_REFRESH_RECURSIVE)));
-
-		config.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, (String) commandArgs.get(TAG_RUN_BUILD_KINDS));
-		
-		String args = (String) commandArgs.get(TAG_ARGS);
-		if (args != null) {
-			config.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, args);
-		}
-
-		String extraAttributes = (String) commandArgs.get(TAG_EXTRA_ATTR);
-		if (extraAttributes != null) {
-			StringTokenizer tokenizer = new StringTokenizer(extraAttributes, EXTRA_ATTR_SEPARATOR);
-			while (tokenizer.hasMoreTokens()) {
-				String key = tokenizer.nextToken();
-				if (!tokenizer.hasMoreTokens())
-					break;
-				String value = tokenizer.nextToken();
-				if (key.equals(RUN_TARGETS_ATTRIBUTE)) {
-					// 2.1 implementation only defined 1 "extra attribute"
-					config.setAttribute(ATTR_ANT_TARGETS, value);
-				}
-			}
-		}
-		return config;
-	}
-
-	/**
-	 * Creates an external tool from the map.
-	 */
-	public static ILaunchConfigurationWorkingCopy configFrom20ArgumentMap(Map args) {
-		// Update the type...
-		String type = (String) args.get(TAG_TOOL_TYPE);
-		if (TOOL_TYPE_ANT.equals(type)) {
-			type = TOOL_TYPE_ANT_BUILD;
-		} else if (TOOL_TYPE_PROGRAM.equals(type)){
-			type = IExternalToolConstants.TOOL_TYPE_PROGRAM;
-		} else {
-			return null;
-		}
-
-		String name = (String) args.get(TAG_TOOL_NAME);
-		
-		ILaunchConfigurationWorkingCopy config = newConfig(type, name);
-		if (config == null) {
-			return null;
-		}
-
-		// Update the location...
-		String location = (String) args.get(TAG_TOOL_LOCATION);
-		config.setAttribute(IExternalToolConstants.ATTR_LOCATION, location);
-
-		// Update the refresh scope...
-		String refresh = (String) args.get(TAG_TOOL_REFRESH);
-		if (refresh != null) {
-			VariableDefinition varDef = extractVariableDefinition(refresh, 0);
-			if ("none".equals(varDef.name)) { //$NON-NLS-1$
-				refresh = null;
-			}
-			config.setAttribute(RefreshTab.ATTR_REFRESH_SCOPE, refresh);
-		}
-
-		// Update the arguments
-		String arguments = (String) args.get(TAG_TOOL_ARGUMENTS);
-		if (type.equals(TOOL_TYPE_ANT_BUILD)) {
-			String targetNames = null;
-			if (arguments != null) {
-				int start = 0;
-				ArrayList targets = new ArrayList();
-				StringBuffer buffer = new StringBuffer();
-				VariableDefinition varDef = extractVariableDefinition(arguments, start);
-				while (varDef.end != -1) {
-					if ("ant_target".equals(varDef.name) && varDef.argument != null) { //$NON-NLS-1$
-						targets.add(varDef.argument);
-						buffer.append(arguments.substring(start, varDef.start));
-					} else {
-						buffer.append(arguments.substring(start, varDef.end));
-					}
-					start = varDef.end;
-					varDef = extractVariableDefinition(arguments, start);
-				}
-				buffer.append(arguments.substring(start, arguments.length()));
-				arguments = buffer.toString();
-	
-				buffer.setLength(0);
-				for (int i = 0; i < targets.size(); i++) {
-					String target = (String) targets.get(i);
-					if (target != null && target.length() > 0) {
-						buffer.append(target);
-						buffer.append(","); //$NON-NLS-1$
-					}
-				}
-				targetNames = buffer.toString();
-			}
-			if (targetNames != null && targetNames.length() > 0) {
-				config.setAttribute(ATTR_ANT_TARGETS, targetNames);
-			}
-		}
-		config.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-
-		// Collect the rest of the information
-		config.setAttribute(IExternalToolConstants.ATTR_SHOW_CONSOLE, TRUE.equals(args.get(TAG_TOOL_SHOW_LOG)));
-		config.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, TRUE.equals(args.get(TAG_TOOL_SHOW_LOG)));
-		config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, FALSE.equals(args.get(TAG_TOOL_BLOCK)));
-		String buildKinds= (String) args.get(TAG_TOOL_BUILD_TYPES);
-		if (buildKinds != null) {
-			buildKinds= buildKinds.replace(';', ','); // Replace the old separator with the new
-		}
-		config.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buildKinds);
-		config.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String) args.get(TAG_TOOL_DIRECTORY));
-		return config;
-	}
-
-	/**
-	 * Returns a new working copy with the given external tool name and external
-	 * tool type or <code>null</code> if no config could be created.
-	 */
-	private static ILaunchConfigurationWorkingCopy newConfig(String type, String name) {
-		if (type == null || name == null) {
-			return null;
-		}
-		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-		ILaunchConfigurationType configType;
-		if (TOOL_TYPE_ANT_BUILD.equals(type)) {
-			configType = manager.getLaunchConfigurationType(ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE);
-		} else if (IExternalToolConstants.TOOL_TYPE_PROGRAM.equals(type)) {
-			configType = manager.getLaunchConfigurationType(IExternalToolConstants.ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE);
-		} else {
-			return null;
-		}
-		try {
-			if (configType != null) {
-				return configType.newInstance(null, name);
-			}
-		} catch (CoreException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the tool name extracted from the given command argument map.
-	 * Extraction is attempted using 2.0 and 2.1 external tool formats.
-	 */
-	public static String getNameFromCommandArgs(Map commandArgs) {
-		String name= (String) commandArgs.get(TAG_NAME);
-		if (name == null) {
-			name= (String) commandArgs.get(TAG_TOOL_NAME);
-		}
-		return name;
-	}
-	
-	/**
-	 * Migrate the old RUN_IN_BACKGROUND launch config attribute to the new
-	 * LAUNCH_IN_BACKGROUND attribute provided by the debug ui plugin.
-	 * 
-	 * @param config the config to migrate
-	 * @return the migrated config
-	 */
-	public static ILaunchConfiguration migrateRunInBackground(ILaunchConfiguration config) {
-		String noValueFlag= "NoValue"; //$NON-NLS-1$
-		String attr= null;
-		try {
-			attr = config.getAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, noValueFlag);
-		} catch (CoreException e) {
-			// Exception will occur if the attribute is already set because the attribute is actually a boolean.
-			// No migration necessary.
-			return config;
-		}
-		if (noValueFlag.equals(attr)) {
-			//the old constant
-			String ATTR_RUN_IN_BACKGROUND= IExternalToolConstants.PLUGIN_ID + ".ATTR_RUN_IN_BACKGROUND"; //$NON-NLS-1$
-			boolean runInBackground= false;
-			try {
-				runInBackground = config.getAttribute(ATTR_RUN_IN_BACKGROUND, runInBackground);
-			} catch (CoreException e) {
-				ExternalToolsPlugin.getDefault().log(ExternalToolsUIMessages.ExternalToolMigration_37, e);
-			}
-			try {
-				ILaunchConfigurationWorkingCopy workingCopy= config.getWorkingCopy();
-				workingCopy.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, runInBackground);
-				config= workingCopy.doSave();
-			} catch (CoreException e) {
-				ExternalToolsPlugin.getDefault().log(ExternalToolsUIMessages.ExternalToolMigration_38, e);
-			}
-		}
-		return config;
-	}
-	
-	/**
-	 * Extracts a variable name and argument from the given string.
-	 * 
-	 * @param text the source text to parse for a variable tag
-	 * @param start the index in the string to start the search
-	 * @return the variable definition
-	 */
-	public static VariableDefinition extractVariableDefinition(String text, int start) {
-		VariableDefinition varDef = new VariableDefinition();
-		
-		varDef.start = text.indexOf(VAR_TAG_START, start);
-		if (varDef.start < 0){
-			return varDef;
-		}
-		start = varDef.start + VAR_TAG_START.length();
-		
-		int end = text.indexOf(VAR_TAG_END, start);
-		if (end < 0) {
-			return varDef;
-		}
-		varDef.end = end + VAR_TAG_END.length();
-		if (end == start) {
-			return varDef;
-		}
-	
-		int mid = text.indexOf(VAR_TAG_SEP, start);
-		if (mid < 0 || mid > end) {
-			varDef.name = text.substring(start, end);
-		} else {
-			if (mid > start) {
-				varDef.name = text.substring(start, mid);
-			}
-			mid = mid + VAR_TAG_SEP.length();
-			if (mid < end) {
-				varDef.argument = text.substring(mid, end);
-			}
-		}
-		
-		return varDef;
-	}	
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java
deleted file mode 100644
index 2b7fe07..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.ui.BuilderPropertyPage.ErrorConfig;
-
-
-class BuilderLabelProvider extends LabelProvider {
-		private static final String IMG_BUILDER = "icons/full/obj16/builder.gif"; //$NON-NLS-1$;
-		private static final String IMG_INVALID_BUILD_TOOL = "icons/full/obj16/invalid_build_tool.gif"; //$NON-NLS-1$
-		IDebugModelPresentation debugModelPresentation= DebugUITools.newDebugModelPresentation();
-
-		private Image builderImage = ExternalToolsPlugin.getDefault().getImageDescriptor(IMG_BUILDER).createImage();
-		private Image invalidBuildToolImage = ExternalToolsPlugin.getDefault().getImageDescriptor(IMG_INVALID_BUILD_TOOL).createImage();
-		
-		public String getText(Object element) {
-			if (element instanceof ICommand) {
-				return getCommandText((ICommand) element);
-			} else if (element instanceof ILaunchConfiguration || element instanceof ILaunchConfigurationType) {
-				return getDebugModelText(element);
-			} else if (element instanceof ErrorConfig) {
-				return ExternalToolsUIMessages.BuilderPropertyPage_invalidBuildTool;
-			}
-			return super.getText(element);
-		}
-		
-		public Image getImage(Object element) {
-			if (element instanceof ICommand) {
-				return getCommandImage();
-			} else if (element instanceof ILaunchConfiguration || element instanceof ILaunchConfigurationType) {
-				return getDebugModelImage(element);
-			} else if (element instanceof ErrorConfig) {
-				return invalidBuildToolImage;
-			}
-			return super.getImage(element);
-		}
-		
-		public String getCommandText(ICommand command) {
-			String builderID = command.getBuilderName();
-			return getBuilderName(builderID);
-		}
-		
-		private String getBuilderName(String builderID) {
-			// Get the human-readable name of the builder
-			IExtension extension = Platform.getExtensionRegistry().getExtension(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_BUILDERS, builderID);
-			String builderName;
-			if (extension != null) {
-				builderName = extension.getLabel();
-			} else {
-				builderName = NLS.bind(ExternalToolsUIMessages.BuilderPropertyPage_missingBuilder, new Object[] { builderID });
-			}
-			return builderName;
-		}
-		
-		/**
-		 * Returns the image for build commands.
-		 * 
-		 * @return the build command image
-		 */
-		public Image getCommandImage() {
-			return builderImage;
-		}
-		
-		/**
-		 * Returns a text label for the given object from a debug
-		 * model presentation.
-		 * @param element the element
-		 * @return a text label from a debug model presentation
-		 */
-		public String getDebugModelText(Object element) {
-			if (element instanceof ILaunchConfiguration) {
-				try {
-					String disabledBuilderName= ((ILaunchConfiguration) element).getAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, (String)null);
-					if (disabledBuilderName != null) {
-						//really a disabled builder wrapped as a launch configuration
-						return getBuilderName(disabledBuilderName);
-					}
-				} catch (CoreException e) {
-				}
-			}
-			return debugModelPresentation.getText(element);
-		}
-		
-		/**
-		 * Returns an image for the given object from a debug
-		 * model presentation.
-		 * @param element the element
-		 * @return an image from a debug model presentation
-		 */
-		public Image getDebugModelImage(Object element) {
-			if (element instanceof ILaunchConfiguration) {
-				try {
-					String disabledBuilderName= ((ILaunchConfiguration) element).getAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, (String)null);
-					if (disabledBuilderName != null) {
-						//really a disabled builder wrapped as a launch configuration
-						return builderImage;
-					}
-				} catch (CoreException e) {
-				}
-			}
-			return debugModelPresentation.getImage(element);
-		}
-			/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-		 */
-		public void dispose() {
-			builderImage.dispose();
-			invalidBuildToolImage.dispose();
-		}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
deleted file mode 100644
index 9f4ec4d..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
+++ /dev/null
@@ -1,1223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationListener;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsMainTab;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.IgnoreWhiteSpaceComparator;
-import org.eclipse.ui.externaltools.internal.model.BuilderUtils;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.model.IPreferenceConstants;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * Property page to add external tools builders.
- */
-public final class BuilderPropertyPage extends PropertyPage implements ICheckStateListener {
-
-	//locally mark a command's enabled state so it can be processed correctly on performOK
-	private static final String COMMAND_ENABLED= "CommandEnabled"; //$NON-NLS-1$
-
-	private Button upButton, downButton, newButton, importButton, editButton, removeButton;
-	
-	private boolean userHasMadeChanges= false;
-	
-	private List configsToBeDeleted= null;
-	private List commandsToBeDeleted= null;
-	
-	private CheckboxTableViewer viewer= null;
-	
-	private ILabelProvider labelProvider= new BuilderLabelProvider();
-	
-	/**
-	 * Error configs are objects representing entries pointing to
-	 * invalid launch configurations
-	 */
-	public class ErrorConfig {
-		private ICommand command;
-		public ErrorConfig(ICommand command) {
-			this.command= command;
-		}
-		public ICommand getCommand() {
-			return command;
-		}
-	}
-	
-	/**
-	 * Collection of configurations created while the page is open.
-	 * Stored here so they can be deleted if the page is cancelled.
-	 */
-	private List newConfigList= new ArrayList();
-	
-	private SelectionListener buttonListener= new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			handleButtonPressed((Button) e.widget);
-		}
-	};
-	
-	/**
-	 * Launch configuration listener which is responsible for updating items in
-	 * the tree when the user renames configurations in the dialog.
-	 * 
-	 * This is necessary because when we tell the configuration dialog to open
-	 * on a launch config and the user renames that config, the old config (the
-	 * one in the tree) is made obsolete and a new config is created. This
-	 * listener hears when new configurations are created this way and replaces
-	 * the old configuration with the new.
-	 */
-	private ILaunchConfigurationListener configurationListener= new ILaunchConfigurationListener() {
-		/**
-		 * A launch configuration has been added. If this config has been
-		 * movedFrom a configuration in the tree, replace the old config with
-		 * the new.
-		 */
-		public void launchConfigurationAdded(final ILaunchConfiguration configuration) {
-			ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-			final ILaunchConfiguration oldConfig= manager.getMovedFrom(configuration);
-			if (oldConfig == null) {
-				return;
-			}
-            //Replace the movedFrom config in the list of newly created configs
-            if (newConfigList.remove(oldConfig)) {
-                newConfigList.add(configuration);
-            }
-			
-			Display.getDefault().asyncExec(new Runnable() {	
-				public void run() {
-					TableItem[] items= viewer.getTable().getItems();
-					for (int i = 0; i < items.length; i++) {
-						TableItem item = items[i];
-						Object data= item.getData();
-						if (data == oldConfig) {
-							// Found the movedFrom config in the tree. Replace it with the new config 
-							item.setData(configuration);
-							viewer.update(configuration, null);
-							break;
-						}
-					}
-				}
-			});
-		}
-		public void launchConfigurationChanged(ILaunchConfiguration configuration) {
-		}
-		public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
-		}
-	};
-
-	/**
-	 * Creates an initialized property page
-	 */
-	public BuilderPropertyPage() {
-		super();
-		noDefaultAndApplyButton();
-	}
-
-	/**
-	 * Add the project's build to the table viewer.
-	 */
-	private void addBuildersToTable() {
-		IProject project = getInputProject();
-		if (project == null) {
-			return;
-		}
-		//add build spec entries to the table
-		ICommand[] commands= null;
-		try {
-			commands = project.getDescription().getBuildSpec();
-		} catch (CoreException e) {
-			handleException(e);
-            return;
-		}
-	
-		boolean projectNeedsMigration= false;
-		for (int i = 0; i < commands.length; i++) {
-			String[] version= new String[] {""}; //$NON-NLS-1$
-			ILaunchConfiguration config = BuilderUtils.configFromBuildCommandArgs(project, commands[i].getArguments(), version);
-			if (BuilderUtils.VERSION_2_1.equals(version[0])) {
-				// Storing the .project file of a project with 2.1 configs, will
-				// edit the file in a way that isn't backwards compatible.
-				projectNeedsMigration= true;
-			}
-			Object element= null;
-			if (config != null) {
-				if (!config.isWorkingCopy() && !config.exists()) {
-                    Shell shell= getShell();
-                    if (shell == null) {
-                        return;
-                    }
-					IStatus status = new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, NLS.bind(ExternalToolsUIMessages.BuilderPropertyPage_Exists, new String[]{config.getLocation().toOSString()}), null);
-					ErrorDialog.openError(getShell(), ExternalToolsUIMessages.BuilderPropertyPage_errorTitle,
-									NLS.bind(ExternalToolsUIMessages.BuilderPropertyPage_External_Tool_Builder__0__Not_Added_2, new String[]{config.getName()}),
-									status);
-					userHasMadeChanges= true;
-				} else {
-					element= config;
-				}
-			} else {
-				String builderID = commands[i].getBuilderName();
-				if (builderID.equals(ExternalToolBuilder.ID) && commands[i].getArguments().get(BuilderUtils.LAUNCH_CONFIG_HANDLE) != null) {
-					// An invalid external tool entry.
-					element= new ErrorConfig(commands[i]);
-				} else {
-					element= commands[i];
-				}
-			}
-			if (element != null) {
-				viewer.add(element);
-				viewer.setChecked(element, isEnabled(element));
-			}
-		}
-		if (projectNeedsMigration) {
-			IPreferenceStore store= ExternalToolsPlugin.getDefault().getPreferenceStore();
-			boolean prompt= store.getBoolean(IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION);
-			boolean proceed= true;
-			if (prompt) {
-                Shell shell= getShell();
-                if (shell == null) {
-                    return;
-                }
-				MessageDialogWithToggle dialog= MessageDialogWithToggle.openYesNoQuestion(shell, ExternalToolsUIMessages.BuilderPropertyPage_0, ExternalToolsUIMessages.BuilderPropertyPage_1, ExternalToolsUIMessages.BuilderPropertyPage_2, false, null, null);
-				proceed= dialog.getReturnCode() == IDialogConstants.YES_ID;
-				store.setValue(IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION, !dialog.getToggleState());
-			}
-			if (!proceed) {
-				// Open the page read-only
-				viewer.getTable().setEnabled(false);
-				downButton.setEnabled(false);
-				editButton.setEnabled(false);
-				importButton.setEnabled(false);
-				newButton.setEnabled(false);
-				removeButton.setEnabled(false);
-			}
-		}
-	}
-
-	/**
-	 * Creates and returns a button with the given label, id, and enablement.
-	 */
-	private Button createButton(Composite parent, String label) {
-		Button button = new Button(parent, SWT.PUSH);
-		GridData data = new GridData();
-		data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		button.setLayoutData(data);
-		button.setFont(parent.getFont());
-		button.setText(label);
-		button.setEnabled(false);
-		button.addSelectionListener(buttonListener);
-		return button;
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on PreferencePage.
-	 */
-	protected Control createContents(Composite parent) {
-		
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IExternalToolsHelpContextIds.EXTERNAL_TOOLS_BUILDER_PROPERTY_PAGE);
-		
-		Font font = parent.getFont();
-
-		Composite topLevel = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		topLevel.setLayout(layout);
-		topLevel.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Label description = new Label(topLevel, SWT.WRAP);
-		description.setText(ExternalToolsUIMessages.BuilderPropertyPage_description);
-		description.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		description.setFont(font);
-
-		Composite tableAndButtons = new Composite(topLevel, SWT.NONE);
-		tableAndButtons.setLayoutData(new GridData(GridData.FILL_BOTH));
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.numColumns = 2;
-		tableAndButtons.setLayout(layout);
-
-		// table of builders and tools
-		viewer= CheckboxTableViewer.newCheckList(tableAndButtons, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
-		viewer.setLabelProvider(labelProvider);
-		viewer.addCheckStateListener(this);
-		Table builderTable= viewer.getTable();
-		builderTable.setLayoutData(new GridData(GridData.FILL_BOTH));
-		builderTable.setFont(font);
-		builderTable.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleTableSelectionChanged();
-			}
-		});
-		
-		builderTable.addListener(SWT.MouseDoubleClick, new Listener() {
-			public void handleEvent(Event event) {
-				handleEditButtonPressed();
-			}
-		});
-		
-		//button area
-		Composite buttonArea = new Composite(tableAndButtons, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		buttonArea.setLayout(layout);
-		buttonArea.setFont(font);
-		buttonArea.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		newButton = createButton(buttonArea, ExternalToolsUIMessages.BuilderPropertyPage_newButton);
-		importButton = createButton(buttonArea, ExternalToolsUIMessages.BuilderPropertyPage__Import____3);
-		editButton = createButton(buttonArea, ExternalToolsUIMessages.BuilderPropertyPage_editButton);
-		removeButton = createButton(buttonArea, ExternalToolsUIMessages.BuilderPropertyPage_removeButton);
-		new Label(buttonArea, SWT.LEFT);
-		upButton = createButton(buttonArea, ExternalToolsUIMessages.BuilderPropertyPage_upButton);
-		downButton = createButton(buttonArea, ExternalToolsUIMessages.BuilderPropertyPage_downButton);
-
-		newButton.setEnabled(true);
-		importButton.setEnabled(true);
-
-		//populate widget contents	
-		addBuildersToTable();
-
-		return topLevel;
-	}
-	
-	/**
-	 * Turns auto-building on or off in the workspace.
-	 */
-	private void setAutobuild(boolean newState) throws CoreException {
-		IWorkspace workspace= ResourcesPlugin.getWorkspace();
-		IWorkspaceDescription wsDescription= workspace.getDescription();
-		boolean oldState= wsDescription.isAutoBuilding();
-		if (oldState != newState) {
-			wsDescription.setAutoBuilding(newState);
-			workspace.setDescription(wsDescription);
-		}
-	}
-
-	/**
-	 * Returns the project that is the input for this property page,
-	 * or <code>null</code>.
-	 */
-	private IProject getInputProject() {
-		IAdaptable element = getElement();
-		if (element instanceof IProject) {
-			return (IProject) element;
-		}
-		Object resource = element.getAdapter(IResource.class);
-		if (resource instanceof IProject) {
-			return (IProject) resource;
-		}
-		return null;
-	}
-
-	/**
-	 * One of the buttons has been pressed, act accordingly.
-	 */
-	private void handleButtonPressed(Button button) {
-		if (button == newButton) {
-			handleNewButtonPressed();
-		} else if (button == importButton) {
-			handleImportButtonPressed();
-		} else if (button == editButton) {
-			handleEditButtonPressed();
-		} else if (button == removeButton) {
-			handleRemoveButtonPressed();
-		} else if (button == upButton) {
-			moveSelectionUp();
-		} else if (button == downButton) {
-			moveSelectionDown();
-		}
-        if (getControl().isDisposed()) {
-            return;
-        }
-		handleTableSelectionChanged();
-		viewer.getTable().setFocus();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
-	 */
-	public void checkStateChanged(CheckStateChangedEvent event) {
-		Object element= event.getElement();
-		boolean checked = event.getChecked();
-		if (element instanceof ILaunchConfiguration) {
-			enableLaunchConfiguration((ILaunchConfiguration) element, checked);
-		} else if (element instanceof ICommand) {
-            Shell shell= getShell();
-            if (shell == null) {
-                return;
-            }
-            if (checked) {
-            	enableCommand((ICommand)element, checked);
-            } else if (MessageDialog.openConfirm(shell, ExternalToolsUIMessages.BuilderPropertyPage_6, ExternalToolsUIMessages.BuilderPropertyPage_7)) {
-				enableCommand((ICommand)element, checked);
-			} else {
-				viewer.removeCheckStateListener(this);
-				viewer.setChecked(element, true);
-				viewer.addCheckStateListener(this);
-			}
-		}
-	}
-
-	private void enableLaunchConfiguration(ILaunchConfiguration configuration, boolean enable) {
-		ILaunchConfigurationWorkingCopy workingCopy= null;
-		try {
-			if (configuration instanceof ILaunchConfigurationWorkingCopy) {
-				workingCopy = (ILaunchConfigurationWorkingCopy) configuration;
-			} else {
-				// Replace the config with a working copy
-				TableItem[] items= viewer.getTable().getItems();
-				for (int i = 0; i < items.length; i++) {
-					TableItem item = items[i];
-					if (item.getData() == configuration) {
-						workingCopy = configuration.getWorkingCopy();
-						item.setData(workingCopy);
-					}
-				}
-			}
-			if (workingCopy != null) {
-				workingCopy.setAttribute(IExternalToolConstants.ATTR_BUILDER_ENABLED, enable);
-			}
-		} catch (CoreException e) {
-			return;
-		}
-		userHasMadeChanges= true;
-	}
-	
-	private void enableCommand(ICommand command, boolean enable) {
-		Map args= command.getArguments();
-		if (args == null) {
-			args= new HashMap(1);
-		}
-		args.put(COMMAND_ENABLED, Boolean.valueOf(enable));
-		command.setArguments(args);
-		userHasMadeChanges= true;
-	}
-
-	/**
-	 * The user has pressed the import button. Prompt them to select a
-	 * configuration to import from the workspace.
-	 */	
-	private void handleImportButtonPressed() {
-		ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-		List toolTypes= getConfigurationTypes(IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_CATEGORY);
-		List configurations= new ArrayList();
-		Iterator iter= toolTypes.iterator();
-		while (iter.hasNext()) {
-			try {
-				ILaunchConfiguration[] configs= manager.getLaunchConfigurations((ILaunchConfigurationType) iter.next());
-				for (int i = 0; i < configs.length; i++) {
-					ILaunchConfiguration launchConfiguration = configs[i];
-					if (!DebugUITools.isPrivate(launchConfiguration)) {
-						configurations.add(launchConfiguration);
-					}
-				}
-			} catch (CoreException e) {
-			}
-		}
-        Shell shell= getShell();
-        if (shell == null) {
-            return;
-        }
-		ElementListSelectionDialog dialog= new ElementListSelectionDialog(shell, new BuilderLabelProvider());
-		dialog.setTitle(ExternalToolsUIMessages.BuilderPropertyPage_4);
-		dialog.setMessage(ExternalToolsUIMessages.BuilderPropertyPage_5);
-		dialog.setElements(configurations.toArray());
-		if (dialog.open() == Window.CANCEL) {
-			return;
-		}
-		Object results[]= dialog.getResult();
-		if (results.length == 0) { //OK pressed with nothing selected
-			return;
-		}
-		ILaunchConfiguration config= (ILaunchConfiguration) results[0];
-		ILaunchConfiguration newConfig= null;
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			setAutobuild(false);
-			newConfig= BuilderUtils.duplicateConfiguration(getInputProject(), config);
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-		if (newConfig != null) {
-			userHasMadeChanges= true;
-			viewer.add(newConfig);
-			viewer.setChecked(newConfig, isEnabled(newConfig));
-			newConfigList.add(newConfig);
-		}
-	}
-	
-	/**
-	 * The user has pressed the remove button. Delete the selected builder.
-	 */
-	private void handleRemoveButtonPressed() {
-		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-		if (selection != null) {
-			int numSelected= selection.size();
-			userHasMadeChanges= true;
-			Iterator iterator= selection.iterator();
-			while (iterator.hasNext()) {
-				Object item= iterator.next();
-				if (item instanceof ILaunchConfiguration) {
-					if (configsToBeDeleted == null) {
-						configsToBeDeleted= new ArrayList(numSelected);
-					}
-					configsToBeDeleted.add(item);
-				} else if (item instanceof ICommand) {
-					if (commandsToBeDeleted == null) {
-						commandsToBeDeleted= new ArrayList(numSelected);
-					}
-					commandsToBeDeleted.add(item);
-				}
-				viewer.remove(item);
-			}
-		}
-	}
-	
-	/**
-	 * The user has pressed the new button. Create a new configuration and open
-	 * the launch configuration edit dialog on the new config.
-	 */
-	private void handleNewButtonPressed() {
-		ILaunchConfigurationType type = promptForConfigurationType();
-		if (type == null) {
-			return;
-		}
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			ILaunchConfigurationWorkingCopy workingCopy = null;
-			String name= DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(ExternalToolsUIMessages.BuilderPropertyPage_New_Builder_7);
-			workingCopy = type.newInstance(BuilderUtils.getBuilderFolder(getInputProject(), true), name);		
-			
-			StringBuffer buffer= new StringBuffer(IExternalToolConstants.BUILD_TYPE_FULL);
-			buffer.append(',');
-			buffer.append(IExternalToolConstants.BUILD_TYPE_INCREMENTAL);
-			buffer.append(',');
-			workingCopy.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-			workingCopy.setAttribute(ExternalToolsMainTab.FIRST_EDIT, true);
-			ILaunchConfiguration config = null;
-			setAutobuild(false);
-			config = workingCopy.doSave();
-			//needs to be added here in case the user hits apply in the edit dialog
-			//then we can correctly update the list with the new config.
-			newConfigList.add(config);
-			int code= editConfiguration(config);
-			if (code == Window.CANCEL) {
-				// If the user cancelled, delete the newly created config
-				newConfigList.remove(config);
-				config.delete();
-			} else {
-				userHasMadeChanges= true;
-				//retrieve the last "new" config
-				//may have been changed by the user pressing apply in the edit dialog
-				config= (ILaunchConfiguration)newConfigList.get(newConfigList.size() - 1);
-				viewer.add(config);
-				viewer.setChecked(config, isEnabled(config));
-			}
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-	}
-	
-	/**
-	 * Prompts the user to edit the given launch configuration. Returns the
-	 * return code from opening the launch configuration dialog.
-	 */
-	private int editConfiguration(ILaunchConfiguration config) {
-		ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-		manager.addLaunchConfigurationListener(configurationListener);
-        Shell shell= getShell();
-        if (shell == null) {
-            return Window.CANCEL;
-        }
-		int code= DebugUITools.openLaunchConfigurationPropertiesDialog(shell, config, IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_GROUP);
-		manager.removeLaunchConfigurationListener(configurationListener);
-		return code;
-	}
-	
-	/**
-	 * Prompts the user to choose a launch configuration type to create and
-	 * returns the type the user selected or <code>null</code> if the user
-	 * cancelled.
-	 * 
-	 * @return the configuration type selected by the user or <code>null</code>
-	 * if the user cancelled.
-	 */
-	private ILaunchConfigurationType promptForConfigurationType() {
-		List externalToolTypes= getConfigurationTypes(IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY);
-        Shell shell= getShell();
-        if (shell == null) {
-            return null;
-        }
-		ElementListSelectionDialog dialog = new ElementListSelectionDialog(shell, new BuilderLabelProvider());
-		dialog.setElements(externalToolTypes.toArray());
-		dialog.setMultipleSelection(false);
-		dialog.setTitle(ExternalToolsUIMessages.BuilderPropertyPage_Choose_configuration_type_8);
-		dialog.setMessage(ExternalToolsUIMessages.BuilderPropertyPage_Choose_an_external_tool_type_to_create_9);
-		dialog.open();
-		Object result[] = dialog.getResult();
-		if (result == null || result.length == 0) {
-			return null;
-		}
-		return (ILaunchConfigurationType) result[0];
-	}
-	
-	/**
-	 * Returns the launch configuration types of the given category
-	 */
-	private List getConfigurationTypes(String category) {
-		ILaunchConfigurationType types[] = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationTypes();
-		List externalToolTypes = new ArrayList();
-		for (int i = 0; i < types.length; i++) {
-			ILaunchConfigurationType configurationType = types[i];
-			if (category.equals(configurationType.getCategory())) {
-				externalToolTypes.add(configurationType);
-			}
-		}
-		return externalToolTypes;
-	}
-	
-	/**
-	 * The user has pressed the edit button or double-clicked. Open the launch configuration edit
-	 * dialog on the selection after migrating the tool if necessary.
-	 */
-	private void handleEditButtonPressed() {
-		TableItem[] items= viewer.getTable().getSelection();
-		if (items.length == 0) {
-			return;
-		}
-		TableItem selection= items[0];
-		if (selection != null) {
-			Object data = selection.getData();
-			if (data instanceof ILaunchConfiguration) {
-				ILaunchConfiguration config= (ILaunchConfiguration) data;
-				if (BuilderUtils.isUnmigratedConfig(config)) {
-					if (!shouldProceedWithMigration()) {
-						return;
-					}
-					try {
-						config= BuilderUtils.migrateBuilderConfiguration(getInputProject(), (ILaunchConfigurationWorkingCopy) config);
-					} catch (CoreException e) {
-						handleException(e);
-						return;
-					}
-					// Replace the working copy in the table with the migrated configuration
-					selection.setData(config);
-				}
-				userHasMadeChanges= true;
-				boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-				try {
-					setAutobuild(false);
-					editConfiguration(config);
-				} catch (CoreException e) {
-					handleException(e);
-				} finally {
-					try {
-						setAutobuild(wasAutobuilding);
-					} catch (CoreException e) {
-						handleException(e);
-					}
-				}
-			} else if (data instanceof ICommand) {
-				ICommand command= (ICommand) data;
-				if (command.isConfigurable()) {
-					if (editCommand(command)) {
-						userHasMadeChanges= true;	
-					}
-				}
-			}
-		}
-	}
-	
-	private boolean editCommand(ICommand data) {
-		EditCommandDialog dialog= new EditCommandDialog(getShell(), data);
-		return Window.OK == dialog.open();
-	}
-
-	/**
-	 * Prompts the user to proceed with the migration of a project builder from
-	 * the old format to the new, launch configuration-based, format and returns
-	 * whether or not the user wishes to proceed with the migration.
-	 * 
-	 * @return boolean whether or not the user wishes to proceed with migration
-	 */
-	private boolean shouldProceedWithMigration() {
-		if (!ExternalToolsPlugin.getDefault().getPreferenceStore().getBoolean(IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION)) {
-			// User has asked not to be prompted
-			return true;
-		}
-        Shell shell= getShell();
-        if (shell == null) {
-            return false;
-        }
-		// Warn the user that editing an old config will cause storage migration.
-		MessageDialogWithToggle dialog= MessageDialogWithToggle.openYesNoQuestion(getShell(), 
-			ExternalToolsUIMessages.BuilderPropertyPage_Migrate_project_builder_10,
-			ExternalToolsUIMessages.BuilderPropertyPage_Not_Support,
-			ExternalToolsUIMessages.BuilderPropertyPage_Prompt,
-			false,
-			ExternalToolsPlugin.getDefault().getPreferenceStore(), 
-			IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION);
-		return dialog.getReturnCode() == IDialogConstants.YES_ID;
-	}
-
-	/**
-	 * Handles unexpected internal exceptions
-	 */
-	private void handleException(Exception e) {
-		final IStatus[] status= new IStatus[1];
-		if (e instanceof CoreException) {
-			status[0] = ((CoreException) e).getStatus();
-		} else {
-			status[0] = new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, ExternalToolsUIMessages.BuilderPropertyPage_statusMessage, e);
-		}
-		Display.getDefault().asyncExec(new Runnable() {
-		    public void run() {
-		        Shell shell= getShell();
-		        if (shell != null) {
-		            ErrorDialog.openError(shell, ExternalToolsUIMessages.BuilderPropertyPage_errorTitle,
-		                    ExternalToolsUIMessages.BuilderPropertyPage_errorMessage,
-		                    status[0]);
-		        }
-		    }
-		});
-	}
-
-	/**
-	 * The user has selected a different builder in table.
-	 * Update button enablement.
-	 */
-	private void handleTableSelectionChanged() {
-		newButton.setEnabled(true);
-		Table builderTable= viewer.getTable();
-		TableItem[] items = builderTable.getSelection();
-		boolean validSelection= items != null && items.length > 0;
-		boolean enableEdit= validSelection;
-		boolean enableRemove= validSelection;
-		boolean enableUp= validSelection;
-		boolean enableDown= validSelection;
-		if (validSelection) {
-			if (items.length > 1) {
-				enableEdit= false;
-			}
-			int indices[]= builderTable.getSelectionIndices();
-			int max = builderTable.getItemCount();
-			enableUp= indices[0] != 0;
-			enableDown= indices[indices.length - 1] < max - 1;
-			for (int i = 0; i < items.length; i++) {
-				TableItem item = items[i];
-				Object data= item.getData();
-				if (data instanceof ILaunchConfiguration) {
-					ILaunchConfiguration config= (ILaunchConfiguration)data;
-					String builderName= null;
-					try {
-						builderName = config.getAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, (String)null);
-					} catch (CoreException e) {
-					}
-					if (builderName != null) {
-						//do not allow "wrapped" builders to be removed or edited if they are valid
-						IExtension ext= Platform.getExtensionRegistry().getExtension(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_BUILDERS, builderName);
-						enableEdit= false;
-						enableRemove= ext == null;
-					}
-				} else {
-					if (data instanceof ErrorConfig) {
-						enableEdit= false;
-						continue;
-					}
-					ICommand command= (ICommand) data;
-					enableEdit= command.isConfigurable();
-					IExtension ext= Platform.getExtensionRegistry().getExtension(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_BUILDERS, command.getBuilderName());
-					enableRemove= ext == null;
-					break;
-				}
-			}
-		}
-		editButton.setEnabled(enableEdit);
-		removeButton.setEnabled(enableRemove);
-		upButton.setEnabled(enableUp);
-		downButton.setEnabled(enableDown);
-	}
-	
-	/**
-	 * Returns whether the given element (command or launch config)
-	 * is enabled.
-	 * 
-	 * @param element the element
-	 * @return whether the given element is enabled
-	 */
-	private boolean isEnabled(Object element) {
-		if (element instanceof ICommand) {
-			Boolean enabled= (Boolean)((ICommand) element).getArguments().get(COMMAND_ENABLED);
-			if (enabled != null) {
-				return enabled.booleanValue();
-			}
-		} else if (element instanceof ILaunchConfiguration) {
-			try {
-				return ExternalToolsUtil.isBuilderEnabled((ILaunchConfiguration) element);
-			} catch (CoreException e) {
-			}
-		} else if (element instanceof ErrorConfig) {
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Moves an entry in the builder table to the given index.
-	 */
-	private void move(TableItem item, int index) {
-		userHasMadeChanges= true;
-		Object data = item.getData();
-		item.dispose();
-		viewer.insert(data, index);
-		viewer.setChecked(data, isEnabled(data));
-	}
-
-	/**
-	 * Move the current selection in the build list down.
-	 */
-	private void moveSelectionDown() {
-		Table builderTable= viewer.getTable();
-		int indices[]= builderTable.getSelectionIndices();
-		if (indices.length < 1) {
-			return;
-		}
-		int newSelection[]= new int[indices.length];
-		int max= builderTable.getItemCount() - 1;
-		for (int i = indices.length - 1; i >= 0; i--) {
-			int index= indices[i];
-			if (index < max) {
-				move (builderTable.getItem(index), index + 1);
-				newSelection[i]= index + 1;
-			}
-		}
-		builderTable.setSelection(newSelection);
-	}
-
-	/**
-	 * Move the current selection in the build list up.
-	 */
-	private void moveSelectionUp() {
-		Table builderTable= viewer.getTable();
-		int indices[]= builderTable.getSelectionIndices();
-		int newSelection[]= new int[indices.length];
-		for (int i = 0; i < indices.length; i++) {
-			int index= indices[i];
-			if (index > 0) {
-				move (builderTable.getItem(index), index - 1);
-				newSelection[i]= index - 1;
-			}
-		}
-		builderTable.setSelection(newSelection);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		if (!userHasMadeChanges) {
-			return super.performOk();
-		}
-		userHasMadeChanges= false;
-		Table builderTable= viewer.getTable();
-		int numCommands = builderTable.getItemCount();
-		final Object[] itemData= new Object[numCommands];
-		for (int i = 0; i < numCommands; i++) {
-			itemData[i]= builderTable.getItem(i).getData();
-		}
-		IRunnableWithProgress runnable= new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-					throws InvocationTargetException, InterruptedException {
-				doPerformOk(monitor, itemData);
-				if (monitor.isCanceled()) {
-					throw new InterruptedException();
-				}
-			}
-		};
-		
-		IProgressService service= PlatformUI.getWorkbench().getProgressService();
-		try {
-			service.busyCursorWhile(runnable);
-		} catch (InvocationTargetException e) {
-			return false;
-		} catch (InterruptedException e) {
-			return false;		
-		}
-		return super.performOk();
-	}
-	
-	private void doPerformOk(IProgressMonitor monitor, Object[] itemData) {
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		IProject project = getInputProject();
-		//get all the build commands
-		int numCommands = itemData.length;
-		monitor.beginTask(ExternalToolsUIMessages.BuilderPropertyPage_3, numCommands + 1);
-		List possibleCommands= new ArrayList(numCommands);
-		for (int i = 0; i < numCommands; i++) {
-			Object data = itemData[i];
-			if (data instanceof ICommand) {
-				if (commandsToBeDeleted != null && commandsToBeDeleted.contains(data)) {
-					//command specified to be removed
-					data= null;
-				}
-				ICommand command= (ICommand)data;
-				Map args= command.getArguments();
-				Boolean enabled= (Boolean)args.get(COMMAND_ENABLED);
-				if (enabled != null && enabled.equals(Boolean.FALSE)) {
-					ILaunchConfiguration config= disableCommand(command);
-					if (config != null) {
-						data= BuilderUtils.commandFromLaunchConfig(project,config);
-					}
-				} else {
-					args.remove(COMMAND_ENABLED);
-					command.setArguments(args);
-				}
-			} else if (data instanceof ILaunchConfiguration) {
-				ILaunchConfiguration config= (ILaunchConfiguration) data;
-				String disabledBuilderName;
-				try {
-					disabledBuilderName = config.getAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, (String)null);
-					if (disabledBuilderName != null && ExternalToolsUtil.isBuilderEnabled(config)) {
-						possibleCommands.add(translateBackToCommand(config, project));
-						continue;
-					}
-				} catch (CoreException e1) {
-				}
-				
-				if (!BuilderUtils.isUnmigratedConfig(config) && (config instanceof ILaunchConfigurationWorkingCopy)) {
-					ILaunchConfigurationWorkingCopy workingCopy= ((ILaunchConfigurationWorkingCopy) config);
-					// Save any changes to the config (such as enable/disable)
-					if (workingCopy.isDirty()) {
-						try {
-							workingCopy.doSave();
-						} catch (CoreException e) {
-                            Shell shell= getShell();
-                            if (shell != null) {
-                                MessageDialog.openError(shell, ExternalToolsUIMessages.BuilderPropertyPage_39, NLS.bind(ExternalToolsUIMessages.BuilderPropertyPage_40, new String[] {workingCopy.getName()}));
-                            }
-						}
-					}
-				}
-				data= BuilderUtils.commandFromLaunchConfig(project, config);
-			} else if (data instanceof ErrorConfig) {
-				data= ((ErrorConfig) data).getCommand();
-			}
-			if (data != null) {
-				possibleCommands.add(data);
-			}
-			monitor.worked(1);
-		}
-		ICommand[] commands= new ICommand[possibleCommands.size()];
-		possibleCommands.toArray(commands);
-		if (checkCommandsForChange(commands)) {
-			//set the build spec
-			try {
-				IProjectDescription desc = project.getDescription();
-				desc.setBuildSpec(commands);
-				project.setDescription(desc, IResource.FORCE, monitor);
-			} catch (CoreException e) {
-				handleException(e);
-                performCancel();
-			}
-		}
-		
-		if (configsToBeDeleted != null) {
-			deleteConfigurations();
-		}
-		monitor.done();
-	}
-	
-	private void checkBuilderFolder() {
-		try {
-			IFolder builderFolder= BuilderUtils.getBuilderFolder(getInputProject(), false);
-			if (builderFolder != null && builderFolder.exists() && builderFolder.members().length == 0) {
-				// All files in the builder folder have been deleted. Clean up
-				builderFolder.delete(true, false, null);
-			}
-		} catch (CoreException e) {
-			handleException(e);
-		}
-	}
-
-	/**
-	 * A non-external tool builder builder was disabled.
-	 * It has been re-enabled. Translate the disabled external tool builder launch configuration
-	 * wrapper back into the full fledged builder command.
-	 */
-	private ICommand translateBackToCommand(ILaunchConfiguration config, IProject project) {
-		try {
-			ICommand newCommand = project.getDescription().newCommand();
-			String builderName= config.getAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, (String)null);
-			Map args= config.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, new HashMap(0));
-			
-			newCommand.setBuilderName(builderName);
-			newCommand.setArguments(args);
-			if (configsToBeDeleted == null) {
-				configsToBeDeleted= new ArrayList();
-			}
-			configsToBeDeleted.add(config);
-			return newCommand;
-		} catch (CoreException exception) {
-            Shell shell= getShell();
-            if (shell != null) {
-                MessageDialog.openError(shell, ExternalToolsUIMessages.BuilderPropertyPage_13, ExternalToolsUIMessages.BuilderPropertyPage_error);
-            }
-			return null;
-		}
-	}
-	
-	/**
-	 * Disables a builder by wrappering the builder command as a disabled external tool builder.
-	 * The details of the command is persisted in the launch configuration.
-	 */
-	private ILaunchConfiguration disableCommand(ICommand command) {
-		Map arguments= command.getArguments();
-		if (arguments != null) {
-			arguments.remove(COMMAND_ENABLED);
-		}
-		List externalToolTypes= getConfigurationTypes(IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY);
-		if (externalToolTypes.size() == 0) {
-			return null;
-		}
-		ILaunchConfigurationType type= (ILaunchConfigurationType)externalToolTypes.get(0);
-		if (type == null) {
-			return null;
-		}
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			ILaunchConfigurationWorkingCopy workingCopy = null;
-			String builderName = command.getBuilderName();
-			String name= DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(builderName);
-			workingCopy = type.newInstance(BuilderUtils.getBuilderFolder(getInputProject(), true), name);		
-					
-			workingCopy.setAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, builderName);
-			if (arguments != null) {
-				workingCopy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-			}
-			workingCopy.setAttribute(IExternalToolConstants.ATTR_BUILDER_ENABLED, false);
-			ILaunchConfiguration config = null;
-			setAutobuild(false);
-			config = workingCopy.doSave();
-			return config;
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-		return null;
-	}
-
-	private void deleteConfigurations() {
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			setAutobuild(false);
-		
-			Iterator itr= configsToBeDeleted.iterator();
-			while (itr.hasNext()) {
-				ILaunchConfiguration element = (ILaunchConfiguration) itr.next();
-				element.delete();
-			}
-			
-			checkBuilderFolder();
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-	}
-	
-	/**
-	 * Returns whether any of the commands have changed.
-	 */
-	private boolean checkCommandsForChange(ICommand[] newCommands) {
-		try {
-			ICommand[] oldCommands = getInputProject().getDescription().getBuildSpec();
-			if (oldCommands.length != newCommands.length) {
-				return true;
-			}
-			IgnoreWhiteSpaceComparator comparator= new IgnoreWhiteSpaceComparator();
-			for (int i = 0; i < oldCommands.length; i++) {
-				ICommand oldCommand = oldCommands[i];
-				ICommand newCommand= newCommands[i];
-				String oldName= oldCommand.getBuilderName();
-				String newName= newCommand.getBuilderName();
-				if (oldName == null && newName != null) {
-					return true;
-				}
-				
-				if(oldName != null && !oldName.equals(newName)) {
-					return true;
-				}
-				Map oldArgs= oldCommand.getArguments();
-				Map newArgs= newCommand.getArguments();
-				if (oldArgs == null && newArgs != null) {
-					return true;
-				}
-				if (oldArgs == null && newArgs == null) {
-					continue;
-				}
-				if(oldArgs.size() != newArgs.size()) {
-					return true;
-				}
-				Iterator keySet= oldArgs.keySet().iterator();
-				while (keySet.hasNext()) {
-					Object key = keySet.next();
-					Object oldArg= oldArgs.get(key);
-					Object newArg= newArgs.get(key);
-					if (oldArg instanceof String && newArg instanceof String) {
-						if (comparator.compare(oldArg, newArg) != 0) {
-							return true;
-						}
-					} else if (!oldArg.equals(newArg)){
-						return true;
-					}
-				}
-				
-				if (oldCommand.isBuilding(IncrementalProjectBuilder.AUTO_BUILD) != newCommand.isBuilding(IncrementalProjectBuilder.AUTO_BUILD)
-						|| oldCommand.isBuilding(IncrementalProjectBuilder.CLEAN_BUILD) != newCommand.isBuilding(IncrementalProjectBuilder.CLEAN_BUILD)
-						|| oldCommand.isBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD) != newCommand.isBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD)
-						|| oldCommand.isBuilding(IncrementalProjectBuilder.FULL_BUILD) != newCommand.isBuilding(IncrementalProjectBuilder.FULL_BUILD)) {
-					return true;
-				}
-			}
-		} catch (CoreException ce) {
-			return true;
-		}
-		return false;	
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.IPreferencePage#performCancel()
-	 */
-	public boolean performCancel() {
-		Iterator iter= newConfigList.iterator();
-		while (iter.hasNext()) {
-			try {
-				((ILaunchConfiguration) iter.next()).delete();
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-		
-		checkBuilderFolder();
-		
-		//remove the local marking of the enabled state of the commands
-		Table builderTable= viewer.getTable();
-		int numCommands = builderTable.getItemCount();
-		for (int i = 0; i < numCommands; i++) {
-			Object data = builderTable.getItem(i).getData();
-			if (data instanceof ICommand) {
-				ICommand command= (ICommand)data;
-				Map args= command.getArguments();
-				args.remove(COMMAND_ENABLED);
-				command.setArguments(args);
-			}
-		}
-		return super.performCancel();
-	}
-    
-    public Shell getShell() {
-        if (getControl().isDisposed()) {
-			return null;
-        }
-        return super.getShell();
-    }
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/EditCommandDialog.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/EditCommandDialog.java
deleted file mode 100644
index 4a2befe..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/EditCommandDialog.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Dialog to alter the triggers of an ICommand that represents a builder.
- */
-public class EditCommandDialog extends Dialog {
-
-	private Button fFullButton;
-	private Button fIncrementalButton;
-	private Button fAutoButton;
-	private Button fCleanButton;
-	
-	private ICommand fCommand;
-	
-	public EditCommandDialog(Shell parentShell, ICommand command) {
-		super(parentShell);
-		fCommand= command;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		
-		getShell().setText(ExternalToolsUIMessages.EditCommandDialog_0);
-		Composite composite = (Composite)super.createDialogArea(parent);
-		
-		Label label= new Label(composite, SWT.NONE);
-		label.setText(ExternalToolsUIMessages.EditCommandDialog_1);
-		
-		fFullButton = new Button(composite, SWT.CHECK);
-		fFullButton.setText(ExternalToolsUIMessages.EditCommandDialog_2);
-		fFullButton.setSelection(fCommand.isBuilding(IncrementalProjectBuilder.FULL_BUILD));
-		fIncrementalButton = new Button(composite, SWT.CHECK);
-		fIncrementalButton.setText(ExternalToolsUIMessages.EditCommandDialog_3);
-		fIncrementalButton.setSelection(fCommand.isBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD));
-		fAutoButton = new Button(composite, SWT.CHECK);
-		fAutoButton.setText(ExternalToolsUIMessages.EditCommandDialog_4);
-		fAutoButton.setSelection(fCommand.isBuilding(IncrementalProjectBuilder.AUTO_BUILD));
-		
-		fCleanButton = new Button(composite, SWT.CHECK);
-		fCleanButton.setText(ExternalToolsUIMessages.EditCommandDialog_5);
-		fCleanButton.setSelection(fCommand.isBuilding(IncrementalProjectBuilder.CLEAN_BUILD));
-		applyDialogFont(composite);
-		return composite;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		fCommand.setBuilding(IncrementalProjectBuilder.FULL_BUILD, fFullButton.getSelection());
-		fCommand.setBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD, fIncrementalButton.getSelection());
-		fCommand.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, fAutoButton.getSelection());
-		fCommand.setBuilding(IncrementalProjectBuilder.CLEAN_BUILD, fCleanButton.getSelection());
-		
-		super.okPressed();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
deleted file mode 100644
index 46c8cdf..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.model.IPreferenceConstants;
-
-/**
- * Preference page that allows the user to customize external tools
- */
-public class ExternalToolsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
-	private Button promptForToolMigrationButton;
-	private Button promptForProjectMigrationButton;
-	
-	public ExternalToolsPreferencePage() {
-		setPreferenceStore(ExternalToolsPlugin.getDefault().getPreferenceStore());
-		setDescription(ExternalToolsUIMessages.ExternalToolsPreferencePage_External_tool_project_builders_migration_2);
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IExternalToolsHelpContextIds.EXTERNAL_TOOLS_PREFERENCE_PAGE);
-		//The main composite
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight=0;
-		layout.marginWidth=0;
-		composite.setLayout(layout);
-		composite.setFont(parent.getFont());
-				
-		promptForToolMigrationButton= createCheckButton(composite, ExternalToolsUIMessages.ExternalToolsPreferencePage_Prompt_before_migrating_3, IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION);
-		promptForProjectMigrationButton= createCheckButton(composite, ExternalToolsUIMessages.ExternalToolsPreferencePage_1, IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION);
-		
-		applyDialogFont(composite);
-		
-		return composite;
-	}
-	
-	/**
-	 * Returns a new check button with the given label for the given preference.
-	 */
-	private Button createCheckButton(Composite parent, String label, String preferenceKey) {
-		Button button= new Button(parent, SWT.CHECK | SWT.LEFT);
-		button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-		button.setFont(parent.getFont());
-		button.setText(label);
-		button.setSelection(getPreferenceStore().getBoolean(preferenceKey));
-		return button;
-	}
-	
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		getPreferenceStore().setValue(IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION, promptForToolMigrationButton.getSelection());
-		getPreferenceStore().setValue(IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION, promptForProjectMigrationButton.getSelection());
-		return super.performOk();
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		promptForToolMigrationButton.setSelection(getPreferenceStore().getDefaultBoolean(IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION));
-		promptForToolMigrationButton.setSelection(getPreferenceStore().getDefaultBoolean(IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION));
-		super.performDefaults();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
deleted file mode 100644
index d07e86a..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ExternalToolsUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.ui.ExternalToolsUIMessages";//$NON-NLS-1$
-
-	public static String BuilderPropertyPage_description;
-	public static String BuilderPropertyPage_newButton;
-	public static String BuilderPropertyPage_editButton;
-	public static String BuilderPropertyPage_removeButton;
-	public static String BuilderPropertyPage_upButton;
-	public static String BuilderPropertyPage_downButton;
-	public static String BuilderPropertyPage_statusMessage;
-	public static String BuilderPropertyPage_errorTitle;
-	public static String BuilderPropertyPage_errorMessage;
-	public static String BuilderPropertyPage_invalidBuildTool;
-	public static String BuilderPropertyPage_missingBuilder;
-	public static String BuilderPropertyPage_Exists;
-	public static String BuilderPropertyPage_External_Tool_Builder__0__Not_Added_2;
-	public static String BuilderPropertyPage__Import____3;
-	public static String BuilderPropertyPage_New_Builder_7;
-	public static String BuilderPropertyPage_Choose_configuration_type_8;
-	public static String BuilderPropertyPage_Choose_an_external_tool_type_to_create_9;
-	public static String BuilderPropertyPage_Migrate_project_builder_10;
-	public static String BuilderPropertyPage_Not_Support;
-	public static String BuilderPropertyPage_Prompt;
-	public static String BuilderPropertyPage_error;
-	public static String BuilderPropertyPage_0;
-	public static String BuilderPropertyPage_2;
-	public static String BuilderPropertyPage_1;
-	public static String BuilderPropertyPage_4;
-	public static String BuilderPropertyPage_5;
-	public static String BuilderPropertyPage_13;
-	public static String BuilderPropertyPage_39;
-	public static String BuilderPropertyPage_3;
-	public static String BuilderPropertyPage_6;
-	public static String BuilderPropertyPage_7;
-	public static String BuilderPropertyPage_40;
-
-	public static String FileSelectionDialog_Choose_Location_1;
-	public static String FileSelectionDialog_Ok_2;
-	public static String FileSelectionDialog_Cancel_3;
-
-	public static String ExternalToolsPreferencePage_External_tool_project_builders_migration_2;
-	public static String ExternalToolsPreferencePage_Prompt_before_migrating_3;
-	public static String ExternalToolsPreferencePage_1;
-
-	public static String ExternalToolMigration_37;
-	public static String ExternalToolMigration_38;
-	public static String EditCommandDialog_0;
-	public static String EditCommandDialog_1;
-	public static String EditCommandDialog_2;
-	public static String EditCommandDialog_3;
-	public static String EditCommandDialog_4;
-	public static String EditCommandDialog_5;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ExternalToolsUIMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
deleted file mode 100644
index f5f0a1b..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-BuilderPropertyPage_description = Configure the builders for the &project:
-BuilderPropertyPage_newButton = &New...
-BuilderPropertyPage_editButton = &Edit...
-BuilderPropertyPage_removeButton = &Remove
-BuilderPropertyPage_upButton = &Up
-BuilderPropertyPage_downButton = &Down
-BuilderPropertyPage_statusMessage = Internal error
-BuilderPropertyPage_errorTitle = External Tool Builder Problem
-BuilderPropertyPage_errorMessage = Internal error
-BuilderPropertyPage_invalidBuildTool = Invalid External Tool Builder
-BuilderPropertyPage_missingBuilder = Missing builder ({0})
-BuilderPropertyPage_Exists=Builder launch configuration {0} no longer exists
-BuilderPropertyPage_External_Tool_Builder__0__Not_Added_2=External Tool Builder {0} Not Added
-BuilderPropertyPage__Import____3=&Import...
-BuilderPropertyPage_New_Builder_7=New_Builder
-BuilderPropertyPage_Choose_configuration_type_8=Choose configuration type
-BuilderPropertyPage_Choose_an_external_tool_type_to_create_9=&Choose an external tool type to create:
-BuilderPropertyPage_Migrate_project_builder_10=Migrate project builder
-BuilderPropertyPage_Not_Support=This project builder is stored in a format that is no longer supported. If you wish to edit this builder, it will first be migrated to a new format. If you proceed, this project builder will not be understood by installations using the old format.\n\nProceed with migration?
-BuilderPropertyPage_Prompt=&Do not prompt before migrating project builders
-BuilderPropertyPage_error=An error occurred while saving the project\'s build commands
-BuilderPropertyPage_0=Project Migration
-BuilderPropertyPage_2=&Do not prompt before migrating projects
-BuilderPropertyPage_1=This project stores its builders in a format that is no longer supported. If any changes are made, the project will be migrated to the new format which will not be understood by installations using the old format.\n\nProceed? (Selecting "No" will open the page read-only)
-BuilderPropertyPage_4=Import launch configuration
-BuilderPropertyPage_5=&Choose a launch configuration from the workspace to import.\nThis will create a copy of the selected configuration.
-BuilderPropertyPage_13=Command error
-BuilderPropertyPage_39=Error Saving Builder
-BuilderPropertyPage_3=Updating builders...
-BuilderPropertyPage_6=Confirm Disable Builder
-BuilderPropertyPage_7=This is an advanced operation. Disabling a project builder can have many side-effects. Continue?
-BuilderPropertyPage_40=An exception occurred while attempting to save builder {0}
-
-FileSelectionDialog_Choose_Location_1=Choose Location
-FileSelectionDialog_Ok_2=OK
-FileSelectionDialog_Cancel_3=Cancel
-
-ExternalToolsPreferencePage_External_tool_project_builders_migration_2=External tool project builders stored in an old format will be migrated to a new format when edited. Projects which store builders using an old format will be migrated whenever a change is made. Once migrated, project builders will not be understood by installations using these older formats.
-ExternalToolsPreferencePage_Prompt_before_migrating_3=&Confirm before migrating external tool project builders for edit
-ExternalToolsPreferencePage_1=C&onfirm before migrating projects to the new format
-
-ExternalToolMigration_37=An exception occurred accessing external tool\'s \"run in background\" attribute
-ExternalToolMigration_38=An exception occurred attempting to migrate external tool\'s \"run in background\" attribute
-EditCommandDialog_0=Configure Builder
-EditCommandDialog_1=Run this builder:
-EditCommandDialog_2=After a "&Clean"
-EditCommandDialog_3=During &manual builds
-EditCommandDialog_4=During &auto builds
-EditCommandDialog_5=&During a "Clean"
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
deleted file mode 100644
index db5a4b1..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Dialog for selecting a file in the workspace. Derived from
- * org.eclipse.ui.dialogs.ResourceSelectionDialog
- */
-public class FileSelectionDialog extends MessageDialog {
-	// the root element to populate the viewer with
-	private IAdaptable root;
-
-	// the visual selection widget group
-	private TreeAndListGroup selectionGroup;
-	// constants
-	private final static int SIZING_SELECTION_WIDGET_WIDTH = 400;
-	private final static int SIZING_SELECTION_WIDGET_HEIGHT = 300;
-	/**
-	 * The file(s) selected by the user.
-	 */
-	private IStructuredSelection result = null;
-
-	private boolean allowMultiselection= false;
-
-    private Pattern fPattern;
-	/**
-	 * Creates a resource selection dialog rooted at the given element.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param rootElement
-	 *            the root element to populate this dialog with
-	 * @param message
-	 *            the message to be displayed at the top of this dialog, or
-	 *            <code>null</code> to display a default message
-	 */
-	public FileSelectionDialog(Shell parentShell, IAdaptable rootElement, String message) {
-		super(parentShell, ExternalToolsUIMessages.FileSelectionDialog_Choose_Location_1, null, message, MessageDialog.NONE, new String[] { ExternalToolsUIMessages.FileSelectionDialog_Ok_2, ExternalToolsUIMessages.FileSelectionDialog_Cancel_3}, 0);
-		root = rootElement;
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-	
-	/**
-	 * Limits the files displayed in this dialog to files matching the given
-	 * pattern. The string can be a filename or a regular expression containing
-	 * '*' for any series of characters or '?' for any single character.
-	 * 
-	 * @param pattern
-	 *            a pattern used to filter the displayed files or <code>null</code>
-	 *            to display all files. If a pattern is supplied, only files
-	 *            whose names match the given pattern will be available for
-	 *            selection.
-	 * @param ignoreCase
-	 *            if true, case is ignored. If the pattern argument is <code>null</code>,
-	 *            this argument is ignored.
-	 */
-	public void setFileFilter(String pattern, boolean ignoreCase) {
-	    if (pattern != null) {
-	        if (ignoreCase) {
-	            fPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
-	        } else {
-	            fPattern = Pattern.compile(pattern);
-	        }
-	    } else {
-	        fPattern = null;
-	    }
-	}
-	
-	/*
-	 * (non-Javadoc) Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IExternalToolsHelpContextIds.FILE_SELECTION_DIALOG);
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		super.createButtonsForButtonBar(parent);
-		initializeDialog();
-	}
-	
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// page group
-		Composite composite = (Composite) super.createDialogArea(parent);
-
-		//create the input element, which has the root resource
-		//as its only child
-		selectionGroup =
-			new TreeAndListGroup(
-				composite,
-				root,
-				getResourceProvider(
-					IResource.FOLDER | IResource.PROJECT | IResource.ROOT),
-				new WorkbenchLabelProvider(),
-				getResourceProvider(IResource.FILE),
-				new WorkbenchLabelProvider(),
-				SWT.NONE,
-				// since this page has no other significantly-sized
-				// widgets we need to hardcode the combined widget's
-				// size, otherwise it will open too small
-				SIZING_SELECTION_WIDGET_WIDTH, SIZING_SELECTION_WIDGET_HEIGHT,
-				allowMultiselection);
-		
-		composite.addControlListener(new ControlListener() {
-			public void controlMoved(ControlEvent e) {
-			}
-			public void controlResized(ControlEvent e) {
-				//Also try and reset the size of the columns as appropriate
-				TableColumn[] columns =
-					selectionGroup.getListTable().getColumns();
-				for (int i = 0; i < columns.length; i++) {
-					columns[i].pack();
-				}
-			}
-		});
-
-		return composite;
-	}
-	/**
-	 * Returns a content provider for <code>IResource</code> s that returns
-	 * only children of the given resource type.
-	 */
-	private ITreeContentProvider getResourceProvider(final int resourceType) {
-		return new WorkbenchContentProvider() {
-			public Object[] getChildren(Object o) {
-				if (o instanceof IContainer) {
-					IResource[] members = null;
-					try {
-						members = ((IContainer) o).members();
-						List accessibleMembers = new ArrayList(members.length);
-						for (int i = 0; i < members.length; i++) {
-							IResource resource = members[i];
-							if (resource.isAccessible()) {
-								accessibleMembers.add(resource);
-							}
-						}
-						members =
-							(IResource[]) accessibleMembers.toArray(
-								new IResource[accessibleMembers.size()]);
-					} catch (CoreException e) {
-						//just return an empty set of children
-						return new Object[0];
-					}
-
-					//filter out the desired resource types
-					ArrayList results = new ArrayList();
-					for (int i = 0; i < members.length; i++) {
-						//And the test bits with the resource types to see if
-						// they are what we want
-						if ((members[i].getType() & resourceType) > 0) {
-							if (members[i].getType() == IResource.FILE
-								&& fPattern != null
-								&& !fPattern.matcher(members[i].getName()).find()) {
-								continue;
-							}
-							results.add(members[i]);
-						}
-					}
-					return results.toArray();
-				}
-				
-				return new Object[0];
-			}
-		};
-	}
-	/**
-	 * Initializes this dialog's controls.
-	 */
-	private void initializeDialog() {
-		selectionGroup
-			.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				getButton(IDialogConstants.OK_ID).setEnabled(
-					!selectionGroup.getListTableSelection().isEmpty());
-			}
-		});
-		selectionGroup.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				buttonPressed(IDialogConstants.OK_ID);
-			}
-		});
-
-		getButton(IDialogConstants.OK_ID).setEnabled(false);
-	}
-
-	/**
-	 * Returns the file the user chose or <code>null</code> if none.
-	 */
-	public IStructuredSelection getResult() {
-		return result;
-	}
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			result= selectionGroup.getListTableSelection();
-		}
-		super.buttonPressed(buttonId);
-	}
-	/**
-	 * Sets whether this dialog will allow multi-selection.
-	 * Must be called before <code>open</code>
-	 * @param allowMultiselection whether to allow multi-selection in the dialog
-	 */
-	public void setAllowMultiselection(boolean allowMultiselection) {
-		this.allowMultiselection= allowMultiselection;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
deleted file mode 100644
index 0c3f2cf..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.views.navigator.ResourceComparator;
-
-/**
- * This class was derived from org.eclipse.ui.internal.misc.CheckboxTreeAndListGroup
- *
- */
-public class TreeAndListGroup implements ISelectionChangedListener {
-	private Object root;
-	private Object currentTreeSelection;
-	private List selectionChangedListeners = new ArrayList();
-	private List doubleClickListeners= new ArrayList();
-
-	private ITreeContentProvider treeContentProvider;
-	private IStructuredContentProvider listContentProvider;
-	private ILabelProvider treeLabelProvider;
-	private ILabelProvider listLabelProvider;
-
-	// widgets
-	private TreeViewer treeViewer;
-	private TableViewer listViewer;
-	private boolean allowMultiselection= false;
-
-	/**
-	 *	Create an instance of this class.  Use this constructor if you wish to specify
-	 *	the width and/or height of the combined widget (to only hardcode one of the
-	 *	sizing dimensions, specify the other dimension's value as -1)
-	 *
-	 *	@param parent org.eclipse.swt.widgets.Composite
-	 *	@param style int
-	 *  @param rootObject java.lang.Object
-	 *	@param width int
-	 *	@param height int
-	 *  @param allowMultiselection Whether to allow multi-selection in the list viewer.
-	 */
-	public TreeAndListGroup(Composite parent, Object rootObject, ITreeContentProvider treeContentProvider, ILabelProvider treeLabelProvider, IStructuredContentProvider listContentProvider, ILabelProvider listLabelProvider, int style, int width, int height, boolean allowMultiselection) {
-
-		root = rootObject;
-		this.treeContentProvider = treeContentProvider;
-		this.listContentProvider = listContentProvider;
-		this.treeLabelProvider = treeLabelProvider;
-		this.listLabelProvider = listLabelProvider;
-		this.allowMultiselection= allowMultiselection;
-		createContents(parent, width, height, style);
-	}
-	/**
-	 * This method must be called just before this window becomes visible.
-	 */
-	public void aboutToOpen() {
-		currentTreeSelection = null;
-
-		//select the first element in the list
-		Object[] elements = treeContentProvider.getElements(root);
-		Object primary = elements.length > 0 ? elements[0] : null;
-		if (primary != null) {
-			treeViewer.setSelection(new StructuredSelection(primary));
-		}
-		treeViewer.getControl().setFocus();
-	}
-	/**
-	 *	Add the passed listener to collection of clients
-	 *	that listen for changes to list viewer selection state
-	 *
-	 *	@param listener ISelectionChangedListener
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.add(listener);
-	}
-	
-	/**
-	 * Add the given listener to the collection of clients that listen to
-	 * double-click events in the list viewer
-	 * 
-	 * @param listener IDoubleClickListener
-	 */
-	public void addDoubleClickListener(IDoubleClickListener listener) {
-		doubleClickListeners.add(listener);
-	}
-
-	/**
-	 * Notify all selection listeners that a selection has occurred in the list
-	 * viewer
-	 */
-	protected void notifySelectionListeners(SelectionChangedEvent event) {
-		Iterator iter = selectionChangedListeners.iterator();
-		while (iter.hasNext()) {
-			 ((ISelectionChangedListener) iter.next()).selectionChanged(event);
-		}
-	}
-	
-	/**
-	 * Notify all double click listeners that a double click event has occurred
-	 * in the list viewer
-	 */
-	protected void notifyDoubleClickListeners(DoubleClickEvent event) {
-		Iterator iter= doubleClickListeners.iterator();
-		while (iter.hasNext()) {
-			((IDoubleClickListener) iter.next()).doubleClick(event);
-		}
-	}
-
-	/**
-	 *	Lay out and initialize self's visual components.
-	 *
-	 *	@param parent org.eclipse.swt.widgets.Composite
-	 *	@param width int
-	 *	@param height int
-	 */
-	protected void createContents(Composite parent, int width, int height, int style) {
-		// group pane
-		Composite composite = new Composite(parent, style);
-		composite.setFont(parent.getFont());
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = true;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		createTreeViewer(composite, width / 2, height);
-		createListViewer(composite, width / 2, height);
-
-		initialize();
-	}
-	/**
-	 *	Create this group's list viewer.
-	 */
-	protected void createListViewer(Composite parent, int width, int height) {
-		int style;
-		if (allowMultiselection) {
-			style= SWT.MULTI;
-		} else {
-			style= SWT.SINGLE;
-		}
-		listViewer = new TableViewer(parent, SWT.BORDER | style);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = width;
-		data.heightHint = height;
-		listViewer.getTable().setLayoutData(data);
-		listViewer.getTable().setFont(parent.getFont());
-		listViewer.setContentProvider(listContentProvider);
-		listViewer.setLabelProvider(listLabelProvider);
-		listViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
-		listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				notifySelectionListeners(event);
-			}
-		});
-		listViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				if (!event.getSelection().isEmpty()) {
-					notifyDoubleClickListeners(event);
-				}
-			}
-		});
-	}
-	/**
-	 *	Create this group's tree viewer.
-	 */
-	protected void createTreeViewer(Composite parent, int width, int height) {
-		Tree tree = new Tree(parent, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = width;
-		data.heightHint = height;
-		tree.setLayoutData(data);
-		tree.setFont(parent.getFont());
-
-		treeViewer = new TreeViewer(tree);
-		treeViewer.setContentProvider(treeContentProvider);
-		treeViewer.setLabelProvider(treeLabelProvider);
-        treeViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
-		treeViewer.addSelectionChangedListener(this);
-	}
-	
-	public Table getListTable() {
-		return listViewer.getTable();
-	}
-	
-	public IStructuredSelection getListTableSelection() {
-		ISelection selection=  this.listViewer.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			return (IStructuredSelection)selection;
-		} 
-		return StructuredSelection.EMPTY;
-	}
-	
-	protected void initialListItem(Object element) {
-		Object parent = treeContentProvider.getParent(element);
-		selectAndRevealFolder(parent);
-	}
-	
-	public void selectAndRevealFolder(Object treeElement) {
-		treeViewer.reveal(treeElement);
-		IStructuredSelection selection = new StructuredSelection(treeElement);
-		treeViewer.setSelection(selection);
-	}
-	
-	public void selectAndRevealFile(Object treeElement) {
-		listViewer.reveal(treeElement);
-		IStructuredSelection selection = new StructuredSelection(treeElement);
-		listViewer.setSelection(selection);
-	}
-
-	/**
-	 *	Initialize this group's viewers after they have been laid out.
-	 */
-	protected void initialize() {
-		treeViewer.setInput(root);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-		Object selectedElement = selection.getFirstElement();
-		if (selectedElement == null) {
-			currentTreeSelection = null;
-			listViewer.setInput(currentTreeSelection);
-			return;
-		}
-
-		// ie.- if not an item deselection
-		if (selectedElement != currentTreeSelection) {
-			listViewer.setInput(selectedElement);
-		}
-
-		currentTreeSelection = selectedElement;
-	}
-	/**
-	 *	Set the list viewer's providers to those passed
-	 *
-	 *	@param contentProvider ITreeContentProvider
-	 *	@param labelProvider ILabelProvider
-	 */
-	public void setListProviders(IStructuredContentProvider contentProvider, ILabelProvider labelProvider) {
-		listViewer.setContentProvider(contentProvider);
-		listViewer.setLabelProvider(labelProvider);
-	}
-	/**
-	 *	Set the sorter that is to be applied to self's list viewer
-	 */
-	public void setListSorter(ViewerComparator comparator) {
-		listViewer.setComparator(comparator);
-	}
-	/**
-	 * Set the root of the widget to be new Root. Regenerate all of the tables and lists from this
-	 * value.
-	 * @param newRoot
-	 */
-	public void setRoot(Object newRoot) {
-		root = newRoot;
-		initialize();
-	}
-
-	/**
-	 *	Set the tree viewer's providers to those passed
-	 *
-	 *	@param contentProvider ITreeContentProvider
-	 *	@param labelProvider ILabelProvider
-	 */
-	public void setTreeProviders(ITreeContentProvider contentProvider, ILabelProvider labelProvider) {
-		treeViewer.setContentProvider(contentProvider);
-		treeViewer.setLabelProvider(labelProvider);
-	}
-	/**
-	 *	Set the comparator that is to be applied to self's tree viewer
-	 */
-	public void setTreeComparator(ViewerComparator comparator) {
-		treeViewer.setComparator(comparator);
-	}
-
-	/**
-	 * Set the focus on to the list widget.
-	 */
-	public void setFocus() {
-		treeViewer.getTree().setFocus();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java
deleted file mode 100644
index 0670eda..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Conway and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Conway - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-
-public class BuildFilesResolver implements IDynamicVariableResolver
-{
-    private static final char ARG_REMOVED = 'r';
-    private static final char ARG_CHANGED = 'c';
-    private static final char ARG_ADDED = 'a';
-    private static final char ARG_DIRS = 'd';
-    private static final char ARG_FILES = 'f';
-
-    // Use a space as a separator as this is a more natural fit for sending a
-    // list of files to a unix command
-    private static final String FILE_LIST_SEPARATOR = " "; //$NON-NLS-1$
-
-    public String resolveValue(IDynamicVariable variable, String argument) throws CoreException
-    {
-        String result = null;
-        
-        IResourceDelta buildDelta = ExternalToolBuilder.getBuildDelta();
-        if (buildDelta != null)
-        {
-            final StringBuffer fileList = new StringBuffer();
-            final Set changedResources = new LinkedHashSet();
-            
-            // Use the argument to determine which deltas to visit - if none,
-            // then defaults to all
-            int deltas = 0;
-            boolean dirs = false, files = false;
-            if (argument != null)
-            {
-                // Check delta kinds
-                if (argument.indexOf(ARG_ADDED) > -1)
-                {
-                    deltas |= IResourceDelta.ADDED; 
-                }
-                if (argument.indexOf(ARG_CHANGED) > -1)
-                {
-                    deltas |= IResourceDelta.CHANGED; 
-                }
-                if (argument.indexOf(ARG_REMOVED) > -1)
-                {
-                    deltas |= IResourceDelta.REMOVED; 
-                }
-                
-                // Check wether to include files and/or directories
-                if (argument.indexOf(ARG_DIRS) > -1)
-                {
-                    dirs = true;
-                }
-                if (argument.indexOf(ARG_FILES) > -1)
-                {
-                    files = true;
-                }
-
-            }
-            if (deltas == 0)
-            {
-                deltas = IResourceDelta.ADDED | IResourceDelta.CHANGED | IResourceDelta.REMOVED;
-            }
-            if (!dirs && !files)
-            {
-                dirs = true;
-                files = true;
-            }
-            final int trackDeltas = deltas;
-            final boolean trackDirs = dirs;
-            final boolean trackFiles = files;
-            
-            
-            buildDelta.accept(new IResourceDeltaVisitor()
-            {
-                public boolean visit(IResourceDelta delta) throws CoreException
-                {
-                    IResource resource = delta.getResource();
-                    
-                    // Only track files with the right kind of delta
-                    boolean isTracked = (delta.getKind() & trackDeltas) > 0;
-                    if (isTracked)
-                    {
-                        // Only track dirs if desired
-                        isTracked = trackDirs && resource.getType() != IResource.FILE;
-                        // Only track files if desired
-                        isTracked |= trackFiles && resource.getType() == IResource.FILE;
-                    }
-                    
-                    //  If tracking a change, then add it to the change set for inclusion in the variable's output
-                    if (isTracked)
-                    {
-                        String osPath = resource.getLocation().toOSString();
-                        if (changedResources.add(osPath))
-                        {
-                            if (fileList.length() > 0)
-                            {
-                                fileList.append(FILE_LIST_SEPARATOR);
-                            }
-                            
-                            // Since space is our separator, we need to add quotes
-                            // around each file to handle filenames with embedded
-                            // spaces. We also need to escape out embedded quotes in
-                            // the filename so they don't conflict with these
-                            // special quotes.
-                            //
-                            osPath = osPath.replaceAll("\"", "\\\\\""); //$NON-NLS-1$ //$NON-NLS-2$
-                            fileList.append("\"" + osPath + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-                        }
-                    }
-                    return true;
-                }
-            }, deltas);
-            result = fileList.toString();
-        }
-       
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildProjectResolver.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildProjectResolver.java
deleted file mode 100644
index 793cc52..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildProjectResolver.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-
-public class BuildProjectResolver implements IDynamicVariableResolver {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IDynamicVariableResolver#resolveValue(org.eclipse.core.variables.IDynamicVariable, java.lang.String)
-	 */
-	public String resolveValue(IDynamicVariable variable, String argument) throws CoreException {
-		IResource resource= ExternalToolBuilder.getBuildProject();
-		if (argument != null && resource != null) {
-			resource = ((IProject)resource).findMember(new Path(argument));
-		}
-		if (resource != null && resource.exists()) {
-			return resource.getLocation().toOSString();
-		}
-		abort(NLS.bind(VariableMessages.BuildProjectResolver_3, new String[]{getReferenceExpression(variable, argument)}), null);
-		return null;
-	}
-	
-	/**
-	 * Throws an exception with the given message and underlying exception.
-	 *  
-	 * @param message exception message
-	 * @param exception underlying exception or <code>null</code> 
-	 * @throws CoreException
-	 */
-	protected void abort(String message, Throwable exception) throws CoreException {
-		throw new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, IExternalToolConstants.ERR_INTERNAL_ERROR, message, exception));
-	}
-	
-	/**
-	 * Returns an expression used to reference the given variable and optional argument.
-	 * For example, <code>${var_name:arg}</code>.
-	 * 
-	 * @param variable referenced variable
-	 * @param argument referenced argument or <code>null</code>
-	 * @return vraiable reference expression
-	 */
-	protected String getReferenceExpression(IDynamicVariable variable, String argument) {
-		StringBuffer reference = new StringBuffer();
-		reference.append("${"); //$NON-NLS-1$
-		reference.append(variable.getName());
-		if (argument != null) {
-			reference.append(":"); //$NON-NLS-1$
-			reference.append(argument);
-		}
-		reference.append("}"); //$NON-NLS-1$
-		return reference.toString();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeResolver.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeResolver.java
deleted file mode 100644
index c370724..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeResolver.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-
-
-public class BuildTypeResolver implements IDynamicVariableResolver {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IDynamicVariableResolver#resolveValue(org.eclipse.core.variables.IDynamicVariable, java.lang.String)
-	 */
-	public String resolveValue(IDynamicVariable variable, String argument) {
-			return ExternalToolBuilder.getBuildType();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/SystemPathResolver.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/SystemPathResolver.java
deleted file mode 100644
index ddc8903..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/SystemPathResolver.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Wieant (wieant@tasking.com) - Bug 138007
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import java.io.File;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-public class SystemPathResolver implements IDynamicVariableResolver {
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IDynamicVariableResolver#resolveValue(org.eclipse.core.variables.IDynamicVariable, java.lang.String)
-	 */
-	public String resolveValue(IDynamicVariable variable, String argument) throws CoreException {
-        if (argument == null) {
-            throw new CoreException(new Status(IStatus.ERROR,  IExternalToolConstants.PLUGIN_ID, IExternalToolConstants.ERR_INTERNAL_ERROR, VariableMessages.SystemPathResolver_0, null));
-        }
-        Map map= DebugPlugin.getDefault().getLaunchManager().getNativeEnvironment();
-        String path= (String) map.get("PATH"); //$NON-NLS-1$
-        if (path == null) {
-            return argument;
-        }
-        // On MS Windows the PATHEXT environment variable defines which file extensions
-        // mark files that are executable (e.g. .EXE, .COM, .BAT)
-        String pathext = (String) map.get("PATHEXT"); //$NON-NLS-1$
-        StringTokenizer tokenizer= new StringTokenizer(path, File.pathSeparator);
-        while (tokenizer.hasMoreTokens()) {
-            String pathElement= tokenizer.nextToken();
-            File pathElementFile= new File(pathElement);
-            if (pathElementFile.isDirectory()) {
-                File toolFile= new File(pathElementFile, argument);
-                if (toolFile.exists()) {
-                    return toolFile.getAbsolutePath();
-                }
-                if ( pathext != null ) {
-                	StringTokenizer pathextTokenizer = new StringTokenizer(pathext, File.pathSeparator);
-                    while (pathextTokenizer.hasMoreTokens()) {
-                        String pathextElement = pathextTokenizer.nextToken();
-                        toolFile = new File(pathElementFile, argument + pathextElement);
-                        if (toolFile.exists()) {
-                            return toolFile.getAbsolutePath();
-                        }
-                    }
-                }
-            }
-        }
-        return argument;
-	} 
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java
deleted file mode 100644
index 959a714..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import org.eclipse.osgi.util.NLS;
-
-public class VariableMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.variables.VariableMessages";//$NON-NLS-1$
-
-	public static String BuildProjectResolver_3;
-	public static String SystemPathResolver_0;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, VariableMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties
deleted file mode 100644
index 65a694e..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-BuildProjectResolver_3=Variable references non-existent resource : {0}
-SystemPathResolver_0=External tool argument must be specified for the system_path variable
diff --git a/org.eclipse.ui.externaltools/META-INF/MANIFEST.MF b/org.eclipse.ui.externaltools/META-INF/MANIFEST.MF
deleted file mode 100644
index 3b3d32a..0000000
--- a/org.eclipse.ui.externaltools/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.externaltools; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.externaltools.internal.launchConfigurations;x-friends:="org.eclipse.ant.ui",
- org.eclipse.ui.externaltools.internal.menu;x-internal:=true,
- org.eclipse.ui.externaltools.internal.model;x-friends:="org.eclipse.ant.ui",
- org.eclipse.ui.externaltools.internal.program.launchConfigurations;x-friends:="org.eclipse.ant.ui",
- org.eclipse.ui.externaltools.internal.registry;x-internal:=true,
- org.eclipse.ui.externaltools.internal.ui;x-friends:="org.eclipse.ant.ui",
- org.eclipse.ui.externaltools.internal.variables;x-internal:=true
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.variables;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.debug.core;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.debug.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
deleted file mode 100644
index 2d7ab0a..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-
-/**
- * Refreshes resources as specified by a launch configuration, when 
- * an associated process terminates.
- */
-public class BackgroundResourceRefresher implements IDebugEventSetListener  {
-
-	private ILaunchConfiguration fConfiguration;
-	private IProcess fProcess;
-	
-	public BackgroundResourceRefresher(ILaunchConfiguration configuration, IProcess process) {
-		fConfiguration = configuration;
-		fProcess = process;
-	}
-	
-	/**
-	 * If the process has already terminated, resource refreshing is done
-	 * immediately in the current thread. Otherwise, refreshing is done when the
-	 * process terminates.
-	 */
-	public void startBackgroundRefresh() {
-		synchronized (fProcess) {
-			if (fProcess.isTerminated()) {
-				refresh();
-			} else {
-				DebugPlugin.getDefault().addDebugEventListener(this);
-			}
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse.debug.core.DebugEvent[])
-	 */
-	public void handleDebugEvents(DebugEvent[] events) {
-		for (int i = 0; i < events.length; i++) {
-			DebugEvent event = events[i];
-			if (event.getSource() == fProcess && event.getKind() == DebugEvent.TERMINATE) {
-				DebugPlugin.getDefault().removeDebugEventListener(this);
-				refresh();
-				break;
-			}
-		}
-	}
-	
-	/**
-	 * Submits a job to do the refresh
-	 */
-	protected void refresh() {
-		Job job= new Job(ExternalToolsProgramMessages.BackgroundResourceRefresher_0) {
-			public IStatus run(IProgressMonitor monitor) {
-				try {
-					RefreshTab.refreshResources(fConfiguration, monitor);
-				} catch (CoreException e) {
-					ExternalToolsPlugin.getDefault().log(e);
-					return e.getStatus();
-				}	
-				return Status.OK_STATUS;
-			}
-		};
-		job.schedule();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
deleted file mode 100644
index 7e817f8..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ExternalToolsProgramMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.program.launchConfigurations.ExternalToolsProgramMessages";//$NON-NLS-1$
-
-	public static String BackgroundResourceRefresher_0;
-
-	public static String ProgramLaunchDelegate_Workbench_Closing_1;
-	public static String ProgramLaunchDelegate_The_workbench_is_exiting;
-	public static String ProgramLaunchDelegate_3;
-	public static String ProgramLaunchDelegate_4;
-
-	public static String ProgramMainTab_Select;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ExternalToolsProgramMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
deleted file mode 100644
index 059a026..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-BackgroundResourceRefresher_0=Refreshing resources...
-
-ProgramLaunchDelegate_Workbench_Closing_1=Workbench Closing
-ProgramLaunchDelegate_The_workbench_is_exiting=The workbench is exiting and a program launched from an external tool appears to still be running. These programs will be terminated when the workbench exits. It is recommended that you exit any external programs launched from the workbench before you proceed.\n\nClick OK to continue exiting the workbench.
-ProgramLaunchDelegate_3=Running {0}...
-ProgramLaunchDelegate_4=An IProcess could not be created for the launch
-
-ProgramMainTab_Select=&Select a program:
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
deleted file mode 100644
index 4bfb827..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.EnvironmentTab;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsBuilderTab;
-
-public class ProgramBuilderTabGroup extends AbstractLaunchConfigurationTabGroup {
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
-	 */
-	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {
-			new ProgramMainTab(),
-			new RefreshTab(),
-			new EnvironmentTab(),
-			new ExternalToolsBuilderTab(),
-		};
-		setTabs(tabs);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
deleted file mode 100644
index bed6304..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Keith Seitz (keiths@redhat.com) - environment variables contribution (Bug 27243)
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-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.Status;
-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.ILaunchManager;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.LaunchConfigurationDelegate;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsBuildTab;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * Launch delegate for a program.
- */
-public class ProgramLaunchDelegate extends LaunchConfigurationDelegate {
-
-	private static IWindowListener fWindowListener;
-
-	/**
-	 * A window listener that warns the user about any running programs when
-	 * the workbench closes. Programs are killed when the VM exits.
-	 */
-	private class ProgramLaunchWindowListener implements IWindowListener {
-		public void windowActivated(IWorkbenchWindow window) {
-		}
-		public void windowDeactivated(IWorkbenchWindow window) {
-		}
-		public void windowClosed(IWorkbenchWindow window) {
-			IWorkbenchWindow windows[]= PlatformUI.getWorkbench().getWorkbenchWindows();
-			if (windows.length > 1) {
-				// There are more windows still open.
-				return;
-			}
-			ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-			ILaunchConfigurationType programType= manager.getLaunchConfigurationType(IExternalToolConstants.ID_PROGRAM_LAUNCH_CONFIGURATION_TYPE);
-			if (programType == null) {
-				return;
-			}
-			ILaunch launches[]= manager.getLaunches();
-			ILaunchConfigurationType configType;
-			ILaunchConfiguration config;
-			for (int i = 0; i < launches.length; i++) {
-				try {
-					config= launches[i].getLaunchConfiguration();
-					if (config == null) {
-						continue;
-					}
-					configType= config.getType();
-				} catch (CoreException e) {
-					continue;
-				}
-				if (configType.equals(programType)) {
-					if (!launches[i].isTerminated()) {
-						MessageDialog.openWarning(window.getShell(), ExternalToolsProgramMessages.ProgramLaunchDelegate_Workbench_Closing_1, ExternalToolsProgramMessages.ProgramLaunchDelegate_The_workbench_is_exiting);
-						break;
-					}
-				}
-			}
-		}
-		public void windowOpened(IWorkbenchWindow window) {
-		}
-	}
-
-	/**
-	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		// resolve location
-		IPath location = ExternalToolsUtil.getLocation(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}		
-		
-		// resolve working directory
-		IPath workingDirectory = ExternalToolsUtil.getWorkingDirectory(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		// resolve arguments
-		String[] arguments = ExternalToolsUtil.getArguments(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		int cmdLineLength = 1;
-		if (arguments != null) {
-			cmdLineLength += arguments.length;
-		}
-		String[] cmdLine = new String[cmdLineLength];
-		cmdLine[0] = location.toOSString();
-		if (arguments != null) {
-			System.arraycopy(arguments, 0, cmdLine, 1, arguments.length);
-		}
-		
-		File workingDir = null;
-		if (workingDirectory != null) {
-			workingDir = workingDirectory.toFile();
-		}
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		String[] envp = DebugPlugin.getDefault().getLaunchManager().getEnvironment(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		if (fWindowListener == null) {
-			fWindowListener= new ProgramLaunchWindowListener();
-			PlatformUI.getWorkbench().addWindowListener(fWindowListener);
-		}
-		Process p = DebugPlugin.exec(cmdLine, workingDir, envp);
-		IProcess process = null;
-		
-		// add process type to process attributes
-		Map processAttributes = new HashMap();
-		String programName = location.lastSegment();
-		String extension = location.getFileExtension();
-		if (extension != null) {
-			programName = programName.substring(0, programName.length() - (extension.length() + 1));
-		}
-		programName = programName.toLowerCase();
-		processAttributes.put(IProcess.ATTR_PROCESS_TYPE, programName);
-		
-		if (p != null) {
-			monitor.beginTask(NLS.bind(ExternalToolsProgramMessages.ProgramLaunchDelegate_3, new String[] {configuration.getName()}), IProgressMonitor.UNKNOWN);
-			process = DebugPlugin.newProcess(launch, p, location.toOSString(), processAttributes);
-		}
-		if (p == null || process == null) {
-			if (p != null)
-				p.destroy();
-			throw new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, IExternalToolConstants.ERR_INTERNAL_ERROR, ExternalToolsProgramMessages.ProgramLaunchDelegate_4, null));
-		}
-		process.setAttribute(IProcess.ATTR_CMDLINE, generateCommandLine(cmdLine));
-		
-		if (CommonTab.isLaunchInBackground(configuration)) {
-			// refresh resources after process finishes
-			if (RefreshTab.getRefreshScope(configuration) != null) {
-				BackgroundResourceRefresher refresher = new BackgroundResourceRefresher(configuration, process);
-				refresher.startBackgroundRefresh();
-			}				
-		} else {
-			// wait for process to exit
-			while (!process.isTerminated()) {
-				try {
-					if (monitor.isCanceled()) {
-						process.terminate();
-						break;
-					}
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-			
-			// refresh resources
-			RefreshTab.refreshResources(configuration, monitor);
-		}
-	}
-	
-	private String generateCommandLine(String[] commandLine) {
-		if (commandLine.length < 1)
-			return ""; //$NON-NLS-1$
-		StringBuffer buf= new StringBuffer();
-		for (int i= 0; i < commandLine.length; i++) {
-			buf.append(' ');
-			char[] characters= commandLine[i].toCharArray();
-			StringBuffer command= new StringBuffer();
-			boolean containsSpace= false;
-			for (int j = 0; j < characters.length; j++) {
-				char character= characters[j];
-				if (character == '\"') {
-					command.append('\\');
-				} else if (character == ' ') {
-					containsSpace = true;
-				}
-				command.append(character);
-			}
-			if (containsSpace) {
-				buf.append('\"');
-				buf.append(command);
-				buf.append('\"');
-			} else {
-				buf.append(command);
-			}
-		}	
-		return buf.toString();
-	}	
-	
-    /* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#getBuildOrder(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String)
-	 */
-	protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException {
-		IProject[] projects = ExternalToolsBuildTab.getBuildProjects(configuration, null);
-		if (projects == null) {
-			return null ;
-		}
-		boolean isRef = ExternalToolsBuildTab.isIncludeReferencedProjects(configuration, null);
-		if (isRef) {
-			return computeReferencedBuildOrder(projects);
-		}
-		return computeBuildOrder(projects);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
deleted file mode 100644
index 6969274..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsMainTab;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.ui.FileSelectionDialog;
-
-public class ProgramMainTab extends ExternalToolsMainTab {
-
-	/**
-	 * Prompts the user for a program location within the workspace and sets the
-	 * location as a String containing the workspace_loc variable or
-	 * <code>null</code> if no location was obtained from the user.
-	 */
-	protected void handleWorkspaceLocationButtonSelected() {
-		FileSelectionDialog dialog;
-		dialog = new FileSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), ExternalToolsProgramMessages.ProgramMainTab_Select);
-		dialog.open();
-		IStructuredSelection result = dialog.getResult();
-		if (result == null) {
-			return;
-		}
-		Object file= result.getFirstElement();
-		if (file instanceof IFile) {
-			StringBuffer expression = new StringBuffer();
-			expression.append("${workspace_loc:"); //$NON-NLS-1$
-			expression.append(((IFile)file).getFullPath().toString());
-			expression.append("}"); //$NON-NLS-1$
-			locationField.setText(expression.toString());
-		}
-	}
-	
-	
-   	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IExternalToolsHelpContextIds.EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_PROGRAM_MAIN_TAB);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
deleted file mode 100644
index 7da4116..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     dakshinamurthy.karra@gmail.com - bug 165371
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.EnvironmentTab;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsBuildTab;
-
-public class ProgramTabGroup extends AbstractLaunchConfigurationTabGroup {
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
-	 */
-	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {
-			new ProgramMainTab(),
-			new RefreshTab(),
-			new ExternalToolsBuildTab(),
-			new EnvironmentTab(),
-			new CommonTab()
-		};
-		setTabs(tabs);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/about.html b/org.eclipse.ui.externaltools/about.html
deleted file mode 100644
index 4602330..0000000
--- a/org.eclipse.ui.externaltools/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation 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
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/build.properties b/org.eclipse.ui.externaltools/build.properties
deleted file mode 100644
index 6f02b6f..0000000
--- a/org.eclipse.ui.externaltools/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = External Tools Base/,\
-				Program Tools Support/
-
-src.includes=about.html
-
-bin.includes = icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               .,\
-               META-INF/
diff --git a/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml b/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
deleted file mode 100644
index c0b6754..0000000
--- a/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<!-- Export a jar of .class files for the org.eclipse.ui.externaltools Eclipse plug-in
-     along with other important plugin files to the "plugin-export" subdirectory
-     of the target Eclipse installation 
-     
-     -->
-<project name="Export externaltools" 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.ui.externaltools_3.0.0" />
-	</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 destfile="${dest}/externaltools.jar">
-			<fileset dir="bin">
-			</fileset>
-		</jar>
-		<!-- Create the source zip -->
-		<zip destfile="${dest}/externaltoolssrc.zip">
-			<fileset dir="External Tools Base"/>
-			<fileset dir="Program Tools Support"/>
-		</zip>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<copy file=".classpath" todir="${dest}"/>
-		<copy file=".options" todir="${dest}"/>
-		<copy todir="${dest}/icons">
-			<fileset dir="icons" />
-		</copy>		
-	</target>
-	
-</project>
diff --git a/org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
deleted file mode 100644
index 4122d9a..0000000
--- a/org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
deleted file mode 100644
index b05bf3e..0000000
--- a/org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/build_tab.gif b/org.eclipse.ui.externaltools/icons/full/obj16/build_tab.gif
deleted file mode 100644
index 4fcb208..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/build_tab.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif b/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
deleted file mode 100644
index 903bbec..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif b/org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
deleted file mode 100644
index cb55e33..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
deleted file mode 100644
index b05bf3e..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif b/org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
deleted file mode 100644
index 0bc6068..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif b/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
deleted file mode 100644
index 0193dbe..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.png b/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.png
deleted file mode 100644
index 66335ad..0000000
--- a/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/plugin.properties b/org.eclipse.ui.externaltools/plugin.properties
deleted file mode 100644
index b3814e7..0000000
--- a/org.eclipse.ui.externaltools/plugin.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Plugin.name = External Tools
-Plugin.providerName = Eclipse.org
-
-build_type.description= Returns the type of build being performed - "incremental", "full", "auto", or "none".
-build_project.description= Returns the absolute file system path of the project currently being built, or the absolute file system path of the resource identified by an optional argument interpreted as a path relative to the project currently being built.
-build_files.description= Returns the set of absolute file system paths whose modification caused the current build.  A list of the characters, 'a' (added), 'c' (changed), 'r' (removed), 'f' (files only), 'd' (directories only), can be supplied as an argument to limit the file list to just those types of deltas.  Defaults to all deltas. 
-system_path.description= Returns the absolute file system path of the external tool. Resolved by finding the first occurrence of the named tool based on the system path specification. The tool name must be supplied as an argument.
-
-ExtPoint.configurationDuplicationMaps = Launch Configuration Duplication Maps
-ExternalToolsLaunchGroup.label = &External Tools
-ExternalToolsLaunchGroup.title = Select or configure an external tool to run
-Menu.run = &Run
-ActionSet.externalTools = External Tools
-Action.externalTools = &External Tools
-Action.externalToolsTip = Run Last Tool
-PropertyPage.externalToolsBuilders = Builders
-
-Builder.externalTools = Integrated External Tool Builder
-PreferencePage.externalToolsPreferences = External Tools
-
-Program.externalTools = Program
-programLaunchConfigurationTabGroup.description=Run a program
-programBuilderLaunchConfigurationTabGroup.description=Create a configuration that will run a program during builds
-
-ActionDefinition.externalToolMenuDelegateToolbar.name=Run Last Launched External Tool
-ActionDefinition.externalToolMenuDelegateToolbar.description=Runs the last launched external Tool
-
-ActionDefinition.openExternalToolsConfigurations.name=External Tools...
-ActionDefinition.openExternalToolsConfigurations.description=Open external tools launch configuration dialog
diff --git a/org.eclipse.ui.externaltools/plugin.xml b/org.eclipse.ui.externaltools/plugin.xml
deleted file mode 100644
index a0ca6df..0000000
--- a/org.eclipse.ui.externaltools/plugin.xml
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- For internal use only. Not to be extended. -->
-   <extension-point id="configurationDuplicationMaps" name="%ExtPoint.configurationDuplicationMaps"  schema="schema/configurationDuplicationMaps.exsd"/>
-
-<!-- UI extensions -->
-<!-- Extensions -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%ActionSet.externalTools"
-            visible="true"
-            id="org.eclipse.ui.externaltools.ExternalToolsSet">
-         <menu
-               label="%Menu.run"
-               path="additions"
-               id="org.eclipse.ui.run">
-            <separator
-                  name="ExternalToolsGroup">
-            </separator>
-         </menu>
-         <action
-               label="%Action.externalTools"
-               style="pulldown"
-               icon="$nl$/icons/full/obj16/external_tools.gif"
-               class="org.eclipse.ui.externaltools.internal.menu.ExternalToolMenuDelegate"
-               menubarPath="org.eclipse.ui.run/ExternalToolsGroup"
-               id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateMenu">
-         </action>
-         <action
-               definitionId="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar"
-               label="%Action.externalTools"
-               style="pulldown"
-               icon="$nl$/icons/full/obj16/external_tools.gif"
-               tooltip="%Action.externalToolsTip"
-               class="org.eclipse.ui.externaltools.internal.menu.ExternalToolMenuDelegate"
-               toolbarPath="org.eclipse.debug.ui.launchActionSet/debug"
-               id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar">
-         </action>
-         <action
-               definitionId="org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations"
-               label="%ActionDefinition.openExternalToolsConfigurations.name"
-               class="org.eclipse.ui.externaltools.internal.menu.OpenExternalToolsConfigurations"
-               id="org.eclipse.ui.externaltools.OpenExternalToolsConfigurations">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            name="%ActionDefinition.externalToolMenuDelegateToolbar.name"
-            description="%ActionDefinition.externalToolMenuDelegateToolbar.description"
-            categoryId="org.eclipse.debug.ui.category.run"
-            id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar">
-      </command>
-       <command
-            name="%ActionDefinition.openExternalToolsConfigurations.name"
-            categoryId="org.eclipse.debug.ui.category.run"
-            description="%ActionDefinition.openExternalToolsConfigurations.description"
-            id="org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%PreferencePage.externalToolsPreferences"
-            category="org.eclipse.debug.ui.DebugPreferencePage"
-            class="org.eclipse.ui.externaltools.internal.ui.ExternalToolsPreferencePage"
-            id="org.eclipse.ui.externaltools.ExternalToolsPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            name="%PropertyPage.externalToolsBuilders"
-            class="org.eclipse.ui.externaltools.internal.ui.BuilderPropertyPage"
-            id="org.eclipse.ui.externaltools.propertypages.BuilderPropertyPage">
-         <filter
-               name="open"
-               value="true">
-         </filter>
-         <enabledWhen>
-         	<adapt
-                type="org.eclipse.core.resources.IProject">
-          	</adapt>
-		</enabledWhen>
-      </page>
-   </extension>
-   <extension
-         id="ExternalToolBuilder"
-         name="%Builder.externalTools"
-         point="org.eclipse.core.resources.builders">
-      <builder
-      	isConfigurable= "true">
-         <run
-               class="org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder">
-         </run>
-      </builder>
-   </extension>
-<!-- Launch Configuration Extensions -->
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationTypes">
-      <launchConfigurationType
-            name="%Program.externalTools"
-            delegate="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramLaunchDelegate"
-            category="org.eclipse.ui.externaltools"
-            modes="run"
-            id="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
-      </launchConfigurationType>
-      <launchConfigurationType
-            name="%Program.externalTools"
-            delegate="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramLaunchDelegate"
-            category="org.eclipse.ui.externaltools.builder"
-            modes="run"
-            id="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
-      </launchConfigurationType>
-   </extension>
-   <extension
-         point="org.eclipse.ui.externaltools.configurationDuplicationMaps">
-      <configurationMap
-            sourceType="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"
-            builderType="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
-      </configurationMap>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
-      <launchConfigurationTabGroup
-            type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"
-            description="%programLaunchConfigurationTabGroup.description"
-            helpContextId="org.eclipse.ui.externaltools.launchConfigHelpContext.program"
-            class="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramTabGroup"
-            id="org.eclipse.ui.externaltools.launchConfigurationTabGroup.program">
-      </launchConfigurationTabGroup>
-      <launchConfigurationTabGroup
-            type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"
-            description="%programBuilderLaunchConfigurationTabGroup.description"
-            helpContextId="org.eclipse.ui.externaltools.launchConfigHelpContext.program_builder"
-            class="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramBuilderTabGroup"
-            id="org.eclipse.ui.externaltools.launchConfigurationTabGroup.program.builder">
-      </launchConfigurationTabGroup>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
-      <launchConfigurationTypeImage
-            icon="$nl$/icons/full/obj16/external_tools.gif"
-            configTypeID="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"
-            id="org.eclipse.ui.externaltools.launchConfigurationTypeImage.program">
-      </launchConfigurationTypeImage>
-      <launchConfigurationTypeImage
-            icon="$nl$/icons/full/obj16/external_tools.gif"
-            configTypeID="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"
-            id="org.eclipse.ui.externaltools.launchConfigurationTypeImage.program.builder">
-      </launchConfigurationTypeImage>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchGroups">
-      <launchGroup
-            label="%ExternalToolsLaunchGroup.label"
-            bannerImage="$nl$/icons/full/wizban/ext_tools_wiz.png"
-            category="org.eclipse.ui.externaltools"
-            image="$nl$/icons/full/obj16/external_tools.gif"
-            mode="run"
-            id="org.eclipse.ui.externaltools.launchGroup"
-            title="%ExternalToolsLaunchGroup.title">
-      </launchGroup>
-      <launchGroup
-            label="%ExternalToolsLaunchGroup.label"
-            bannerImage="$nl$/icons/full/wizban/ext_tools_wiz.png"
-            category="org.eclipse.ui.externaltools.builder"
-            image="$nl$/icons/full/obj16/external_tools.gif"
-            public="false"
-            mode="run"
-            id="org.eclipse.ui.externaltools.launchGroup.builder">
-      </launchGroup>
-   </extension>
-<!-- Dynamic (String Substitution) Variables -->	
-   <extension
-         point="org.eclipse.core.variables.dynamicVariables">
-      <variable
-            name="build_type"
-            resolver="org.eclipse.ui.externaltools.internal.variables.BuildTypeResolver"
-            description="%build_type.description"
-            supportsArgument="false">
-      </variable>
-       <variable
-            name="build_project"
-            resolver="org.eclipse.ui.externaltools.internal.variables.BuildProjectResolver"
-            description="%build_project.description">
-      </variable>
-       <variable
-            name="build_files"
-            resolver="org.eclipse.ui.externaltools.internal.variables.BuildFilesResolver"
-            description="%build_files.description"
-            supportsArgument="true">
-      </variable>
-       <variable
-            name="system_path"
-            resolver="org.eclipse.ui.externaltools.internal.variables.SystemPathResolver"
-            description="%system_path.description"
-            supportsArgument="true">
-      </variable>
-   </extension>
-   
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationComparators">
-      <launchConfigurationComparator
-            attribute="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE"
-            class="org.eclipse.ui.externaltools.internal.launchConfigurations.WorkingSetComparator"
-            id="org.eclipse.ui.externaltools.workingSetComparator">
-      </launchConfigurationComparator>
-   </extension>
-   
-   	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer class="org.eclipse.ui.externaltools.internal.model.ExternalToolsPreferenceInitializer"/>
-	</extension>
-
-</plugin>
diff --git a/org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd b/org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
deleted file mode 100644
index 731db79..0000000
--- a/org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.externaltools">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.externaltools" id="configurationDuplicationMaps" name="Configuration Duplication Maps"/>
-      </appInfo>
-      <documentation>
-This is an internal extension point to declare the launch configuration type that
-should be created when duplicating an existing configuration as a project builder.
-
-Clients are not intended to use this extension point.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="configurationMap" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-   
-   <element name="configurationMap">
-      <complexType>
-         <attribute name="sourceType" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies the identifier of the launch configuration type for which this mapping is provided
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="builderType" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies the identifier of the launch configuration type which should be created when a configuration of type "sourceType" is imported to be a project builder
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-The following example specifies that when the user chooses to import a launch configuration
-of the type &quot;org.eclipse.ui.externaltools.ProgramLaunchConfigurationType&quot;, a new launch
-configuration of the type&quot;org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType&quot;
-should be created.
-
-&lt;pre&gt;
-&lt;extension
-      point=&quot;org.eclipse.ui.externaltools.configurationDuplicationMaps&quot;&gt;
-   &lt;configurationMap
-         sourceType=&quot;org.eclipse.ui.externaltools.ProgramLaunchConfigurationType&quot;
-         builderType=&quot;org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType&quot;&gt;
-   &lt;/configurationMap&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-   
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-      
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2003, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies this distribution, and is available at 
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>