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

Sprout from master 2009-03-23 14:33:04 UTC Michael Rennie <mrennie> 'updated build notes'
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/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/src/org/eclipse/debug/examples/pdavm/PDAVirtualMachine.java
    org.eclipse.debug.examples.core/pdavm/tests/vmtest10.pda
    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/vmtest9.pda
    org.eclipse.debug.examples.core/pdavm/tests/vmtest_children.pda
    org.eclipse.debug.examples.core/plugin.xml
    org.eclipse.debug.examples.core/readme.html
    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/registers.pda
    org.eclipse.debug.examples.core/samples/stack.pda
    org.eclipse.debug.examples.core/samples/structures.pda
    org.eclipse.debug.examples.core/scripts/build.xml
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/ClockControl.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/LengthControl.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunch.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunchDelegate.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/SequencerControl.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TempoControl.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TimeControl.java
    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/protocol/PDABitFieldData.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAChildrenCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAClearBreakpointCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommandResult.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADataCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADropFrameCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalResultEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEventStopCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAExitedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommandResult.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameData.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAGroupsCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAListResult.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDANoSuchLabelEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPopDataCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPushDataCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegisterData.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommandResult.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumeCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARunControlEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetBreakpointCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetDataCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetVarCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommandResult.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommandResult.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStartedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepReturnCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminateCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminatedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAUnimplementedInstructionEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumeCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMStartedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMTerminatedEvent.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVarCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAWatchCommand.java
    org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/package.html
    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.core/src_ant/org/eclipse/debug/examples/ant/tasks/PreProcessor.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/clef.png
    org.eclipse.debug.examples.ui/icons/full/obj16/note.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/midi/adapters/ControlCellModifier.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEditor.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEventHandler.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlLabelProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlsMementoProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiAdapterFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiEventLabelProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiStepOverHandler.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnPresentation.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerContentProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerControlsModelProxy.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerModelProxyFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnPresentation.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackContentProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackLabelProvider.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ClockSliderDetailPane.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ControlDetailPaneFactory.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/TempoSliderDetailPane.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiLaunchShortcut.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiMainTab.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiTabGroup.java
    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/breakpoints/PDAToggleWatchpointsTarget.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAToggleWatchpointsTargetFactory.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/AbstractDataStackViewHandler.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/CanPushTester.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/PopHandler.java
    org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushHandler.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 03df26f..0000000
--- a/org.eclipse.core.variables/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.variables</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</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 05664ee..0000000
--- a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,96 +0,0 @@
-#Thu Feb 26 08:16:51 CST 2009

-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.comparingIdentical=warning

-org.eclipse.jdt.core.compiler.problem.deadCode=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.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.missingHashCodeMethod=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.missingSynchronizedOnInheritedMethod=ignore

-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.redundantSuperinterface=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.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled

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

-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=error

-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=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 eb43f80..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.200.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)"
-Bundle-ActivationPolicy: lazy
-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/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 fe3e8d6..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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
- *     Stefan Liebig  - Bug 242685 StringVariableManager - Variable contributions may silently override existing variables
- *******************************************************************************/
-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);
-			Object old = fDynamicVariables.put(variable.getName(), variable);
-			if (old != null) {
-				DynamicVariable oldVariable = (DynamicVariable)old;
-				VariablesPlugin.logMessage(NLS.bind("Dynamic variable extension from bundle ''{0}'' overrides existing extension variable ''{1}'' from bundle ''{2}''", //$NON-NLS-1$
-						new String[] {element.getDeclaringExtension().getContributor().getName(),oldVariable.getName(),
-						oldVariable.getConfigurationElement().getDeclaringExtension().getContributor().getName()}), null);
-			}
-		}
-	}
-
-	/**
-	 * 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);
-			Object old = fValueVariables.put(name, variable);
-			if (old != null) {
-				StringVariable oldVariable = (StringVariable)old;
-				VariablesPlugin.logMessage(NLS.bind("Contributed variable extension from bundle ''{0}'' overrides existing extension variable ''{1}'' from  bundle ''{2}''", //$NON-NLS-1$
-						new String[] {element.getDeclaringExtension().getContributor().getName(),oldVariable.getName(),
-						oldVariable.getConfigurationElement().getDeclaringExtension().getContributor().getName()}), null);
-			}
-		}		
-	}
-
-	/**
-	 * 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 b81fff7..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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 contributing a dynamic variable provide an implementation of
- * {@link org.eclipse.core.variables.IDynamicVariableResolver}.
- * </p>
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- */
-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 70c3e25..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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>
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- */
-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 e3502e9..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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.
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- */
-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 4b25138..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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>
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- */
-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 4fa1b74..0000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-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 9f8cf0e..0000000
--- a/org.eclipse.debug.examples.core/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src_ant"/>
-	<classpathentry kind="src" path="pdavm/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 b1f1fe3..0000000
--- a/org.eclipse.debug.examples.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.debug.examples.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</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 63456da..0000000
--- a/org.eclipse.debug.examples.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +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.1.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,
- org.apache.ant;bundle-version="1.7.0";resolution:=optional
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.debug.examples.core.midi.launcher,
- 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.protocol,
- org.eclipse.debug.examples.core.pda.sourcelookup
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
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 f50444b..0000000
--- a/org.eclipse.debug.examples.core/build.properties
+++ /dev/null
@@ -1,21 +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/,\
-               META-INF/,\
-               about.html,\
-               .,\
-               readme.html,\
-               samples/
-src.includes = about.html,\
-               src/
diff --git a/org.eclipse.debug.examples.core/pdavm/src/org/eclipse/debug/examples/pdavm/PDAVirtualMachine.java b/org.eclipse.debug.examples.core/pdavm/src/org/eclipse/debug/examples/pdavm/PDAVirtualMachine.java
deleted file mode 100644
index 98a56dd..0000000
--- a/org.eclipse.debug.examples.core/pdavm/src/org/eclipse/debug/examples/pdavm/PDAVirtualMachine.java
+++ /dev/null
@@ -1,1408 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Wind River Systems 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-package org.eclipse.debug.examples.pdavm;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.StringWriter;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Push Down Automata interpreter.
- * 
- * @since 3.5
- */
-public class PDAVirtualMachine {
-
-    static class Stack extends LinkedList {
-        private static final long serialVersionUID = 1L;
-
-        public Object pop() {
-            return isEmpty() ? new Integer(0) : remove(size() - 1);
-        }
-
-        public void push(Object value) {
-            add(value);
-        }
-    }
-    
-    static class Register {
-        Register(String name) { 
-            fName = name; 
-        }
-        String fName;
-        String fGroup = "<no_group>";
-        boolean fIsWriteable = true;
-        Map fBitFields = new LinkedHashMap(0);
-        int fValue;
-    }
-
-    static class BitField {
-        BitField(String name) { 
-            fName = name; 
-        }
-        String fName;
-        int fBitOffset;
-        int fBitCount;
-        Map fMnemonics = new LinkedHashMap(0);
-    }
-
-    Map fRegisters = new LinkedHashMap(0);
-    
-    class Args {
-        final String[] fArgs;
-
-        int next = 0;
-
-        Args(String[] args) {
-            fArgs = args;
-        }
-
-        boolean hasNextArg() {
-            return fArgs.length > next;
-        }
-        
-        String getNextStringArg() {
-            if (fArgs.length > next) {
-                return fArgs[next++];
-            }
-            return "";
-        }
-
-        int getNextIntArg() {
-            String arg = getNextStringArg();
-            try {
-                return Integer.parseInt(arg);
-            } catch (NumberFormatException e) {
-            }
-            return 0;
-        }
-
-        boolean getNextBooleanArg() {
-            String arg = getNextStringArg();
-            try {
-                return Boolean.getBoolean(arg);
-            } catch (NumberFormatException e) {
-            }
-            return false;
-        }
-
-        Object getNextIntOrStringArg() {
-            String arg = getNextStringArg();
-            try {
-                return new Integer(arg);
-            } catch (NumberFormatException e) {
-            }
-            return arg;
-        }
-
-        PDAThread getThreadArg() {
-            int id = getNextIntArg();
-            return (PDAThread)fThreads.get( new Integer(id) );
-        }
-    }
-
-    class PDAThread {
-        final int fID;
-
-        /** The push down automata data stack (the data stack). */
-        final Stack fStack = new Stack();
-
-        /**
-         * PDAThread copy of the code. It can differ from the program if
-         * performing an evaluation.
-         */
-        String[] fThreadCode;
-
-        /** PDAThread copy of the labels. */
-        Map fThreadLabels;
-
-        /** The stack of stack frames (the control stack) */
-        final List fFrames = new LinkedList();
-
-        /** Current stack frame (not includced in fFrames) */
-        Frame fCurrentFrame;
-
-        /**
-         * The run flag is true if the thread is running. If the run flag is
-         * false, the thread exits the next time the main instruction loop runs.
-         */
-        boolean fRun = true;
-
-        String fSuspend = null;
-
-        boolean fStep = false;
-
-        boolean fStepReturn = false;
-        
-        int fSavedPC;
-
-        boolean fPerformingEval = false;
-        
-        PDAThread(int id, String function, int pc) {
-            fID = id;
-            fCurrentFrame = new Frame(function, pc);
-            fThreadCode = fCode;
-            fThreadLabels = fLabels;
-        }
-    }
-
-    final Map fThreads = new LinkedHashMap();
-
-    int fNextThreadId = 1;
-
-    boolean fStarted = true;
-    /**
-     * The code is stored as an array of strings, each line of the source file
-     * being one entry in the array.
-     */
-    final String[] fCode;
-
-    /** A mapping of labels to indicies in the code array */
-    final Map fLabels;
-
-    /** Each stack frame is a mapping of variable names to values. */
-    class Frame {
-        final Map fLocalVariables = new LinkedHashMap();
-        
-        /**
-         * The name of the function in this frame
-         */
-        final String fFunction;
-
-        /**
-         * The current program counter in the frame the pc points to the next
-         * instruction to be executed
-         */
-        int fPC;
-
-        Frame(String function, int pc) {
-            fFunction = function;
-            fPC = pc;
-        }
-        
-        void set(String name, Object value) {
-            if (name.startsWith("$")) {
-                setRegisterValue(name, value);
-            } else {
-                fLocalVariables.put(name, value);
-            }
-        }
-        
-        Object get(String name) {
-            if (name.startsWith("$")) {
-                return getRegisterValue(name);
-            } else { 
-                return fLocalVariables.get(name);
-            }
-        }
-    }
-
-    void setRegisterValue(String name, Object value) {
-        Register reg = (Register)fRegisters.get(getRegisterPartOfName(name));
-        if (reg == null) return;
-        String bitFieldName = getBitFieldPartOfName(name);
-        if (bitFieldName != null) {
-            BitField bitField = (BitField)reg.fBitFields.get(bitFieldName);
-            if (bitField == null) return;
-            Integer intValue = null;
-            if (value instanceof Integer) {
-                intValue = (Integer)value;
-            } else if (value instanceof String) {
-                intValue = (Integer)bitField.fMnemonics.get(value);
-            }
-            if (intValue != null) {
-                int bitFieldMask = 2^(bitField.fBitCount - 1);           
-                int registerMask = ~(bitFieldMask << bitField.fBitOffset);
-                int bitFieldValue = intValue.intValue() & bitFieldMask;
-                reg.fValue = (reg.fValue & registerMask) | (bitFieldValue << bitField.fBitOffset);
-            }
-        } else if (value instanceof Integer) {
-            reg.fValue = ((Integer)value).intValue();
-        }
-    }
-
-    Object getRegisterValue(String name) {
-        Register reg = (Register)fRegisters.get(getRegisterPartOfName(name));
-        if (reg == null) return null;
-        String bitFieldName = getBitFieldPartOfName(name);
-        if (bitFieldName != null) {
-            BitField bitField = (BitField)reg.fBitFields.get(bitFieldName);
-            if (bitField == null) return null;
-            int bitFieldMask = 2^(bitField.fBitCount - 1);           
-            int registerMask = bitFieldMask << bitField.fBitOffset;
-            return new Integer( (reg.fValue & registerMask) >> bitField.fBitOffset );
-        } else {
-            return new Integer(reg.fValue);
-        }
-    }
-    
-    /**
-     * Breakpoints are stored per each each line of code.  The boolean indicates
-     * whether the whole VM should suspend or just the triggering thread.
-     */
-    final Map fBreakpoints = new HashMap();
-
-    /**
-     * The suspend flag is true if the VM should suspend running the program and
-     * just listen for debug commands.
-     */
-    String fSuspendVM;
-
-    /** Flag indicating whether the debugger is performing a step. */
-    boolean fStepVM = false;
-
-    /** Flag indicating whether the debugger is performing a step return */
-    boolean fStepReturnVM = false;
-    
-    int fSteppingThread = 0;
-
-    /** Name of the pda program being debugged */
-    final String fFilename;
-
-    /** The command line argument to start a debug session. */
-    final boolean fDebug;
-
-    /** The port to listen for debug commands on */
-    final int fCommandPort;
-
-    /**
-     * Command socket for receiving debug commands and sending command responses
-     */
-    Socket fCommandSocket;
-
-    /** Command socket reader */
-    BufferedReader fCommandReceiveStream;
-
-    /** Command socket write stream. */
-    OutputStream fCommandResponseStream;
-
-    /** The port to send debug events to */
-    final int fEventPort;
-
-    /** Event socket */
-    Socket fEventSocket;
-
-    /** Event socket and write stream. */
-    OutputStream fEventStream;
-
-    /** The eventstops table holds which events cause suspends and which do not. */
-    final Map fEventStops = new HashMap();
-    {
-        fEventStops.put("unimpinstr", Boolean.FALSE);
-        fEventStops.put("nosuchlabel", Boolean.FALSE);
-    }
-
-    /**
-     * The watchpoints table holds watchpoint information.
-     * <p/>
-     * variablename_stackframedepth => N
-     * <ul> 
-     * <li>N = 0 is no watch</li> 
-     * <li>N = 1 is read watch</li>
-     * <li>N = 2 is write watch</li>
-     * <li>N = 3 is both, etc.</li>
-     */
-    final Map fWatchpoints = new HashMap();
-
-    public static void main(String[] args) {
-        String programFile = args.length >= 1 ? args[0] : null;
-        if (programFile == null) {
-            System.err.println("Error: No program specified");
-            return;
-        }
-
-        String debugFlag = args.length >= 2 ? args[1] : "";
-        boolean debug = "-debug".equals(debugFlag);
-        int commandPort = 0;
-        int eventPort = 0;
-
-        if (debug) {
-            String commandPortStr = args.length >= 3 ? args[2] : "";
-            try {
-                commandPort = Integer.parseInt(commandPortStr);
-            } catch (NumberFormatException e) {
-                System.err.println("Error: Invalid command port");
-                return;
-            }
-
-            String eventPortStr = args.length >= 4 ? args[3] : "";
-            try {
-                eventPort = Integer.parseInt(eventPortStr);
-            } catch (NumberFormatException e) {
-                System.err.println("Error: Invalid event port");
-                return;
-            }
-        }
-
-        PDAVirtualMachine pdaVM = null;
-        try {
-            pdaVM = new PDAVirtualMachine(programFile, debug, commandPort, eventPort);
-            pdaVM.startDebugger();
-        } catch (IOException e) {
-            System.err.println("Error: " + e.toString());
-            return;
-        }
-        pdaVM.run();
-    }
-
-    PDAVirtualMachine(String inputFile, boolean debug, int commandPort, int eventPort) throws IOException {
-        fFilename = inputFile;
-
-        // Load all the code into memory
-        FileReader fileReader = new FileReader(inputFile);
-        StringWriter stringWriter = new StringWriter();
-        List code = new LinkedList();
-        int c = fileReader.read();
-        while (c != -1) {
-            if (c == '\n') {
-                code.add(stringWriter.toString().trim());
-                stringWriter = new StringWriter();
-            } else {
-                stringWriter.write(c);
-            }
-            c = fileReader.read();
-        }
-        code.add(stringWriter.toString().trim());
-        fCode = (String[])code.toArray(new String[code.size()]);
-
-        fLabels = mapLabels(fCode);
-
-        fDebug = debug;
-        fCommandPort = commandPort;
-        fEventPort = eventPort;
-    }
-
-    /**
-     * Initializes the labels map
-     */
-    Map mapLabels(String[] code) {
-        Map labels = new HashMap();
-        for (int i = 0; i < code.length; i++) {
-            if (code[i].length() != 0 && code[i].charAt(0) == ':') {
-                labels.put(code[i].substring(1), new Integer(i));
-            }
-        }
-        return labels;
-    }
-
-    void sendCommandResponse(String response) {
-        try {
-            fCommandResponseStream.write(response.getBytes());
-            fCommandResponseStream.flush();
-        } catch (IOException e) {
-        }
-    }
-
-    void sendDebugEvent(String event, boolean error) {
-        if (fDebug) {
-            try {
-                fEventStream.write(event.getBytes());
-                fEventStream.write('\n');
-                fEventStream.flush();
-            } catch (IOException e) {
-                System.err.println("Error: " + e);
-                System.exit(1);
-            }
-        } else if (error) {
-            System.err.println("Error: " + event);
-        }
-    }
-
-    void startDebugger() throws IOException {
-        if (fDebug) {
-            System.out.println("-debug " + fCommandPort + " " + fEventPort);
-        }
-
-        ServerSocket commandServerSocket = new ServerSocket(fCommandPort);
-        fCommandSocket = commandServerSocket.accept();
-        fCommandReceiveStream = new BufferedReader(new InputStreamReader(fCommandSocket.getInputStream()));
-        fCommandResponseStream = new PrintStream(fCommandSocket.getOutputStream());
-        commandServerSocket.close();
-
-        ServerSocket eventServerSocket = new ServerSocket(fEventPort);
-        fEventSocket = eventServerSocket.accept();
-        fEventStream = new PrintStream(fEventSocket.getOutputStream());
-        eventServerSocket.close();
-
-        System.out.println("debug connection accepted");
-
-        fSuspendVM = "client";
-    }
-
-    void run() {
-        int id = fNextThreadId++;
-        sendDebugEvent("vmstarted", false);
-        fThreads.put(new Integer(id), new PDAThread(id, "main", 0));
-        if (fDebug) {
-            sendDebugEvent("started " + id, false);
-        }
-
-        boolean allThreadsSuspended = false;
-        while (!fThreads.isEmpty()) {
-            checkForBreakpoint();
-            
-            if (fSuspendVM != null) {
-                debugUI();
-            } else {
-                yieldToDebug(allThreadsSuspended);
-                if (fSuspendVM != null) {
-                    // Received a command to suspend VM, skip executing threads.
-                    continue;
-                }
-            }
-
-            PDAThread[] threadsCopy = (PDAThread[])fThreads.values().toArray(new PDAThread[fThreads.size()]);
-            allThreadsSuspended = true;
-            for (int i = 0; i < threadsCopy.length; i++) {
-                PDAThread thread = threadsCopy[i];
-                if (thread.fSuspend == null) {
-                    allThreadsSuspended = false;
-                    
-                    String instruction = thread.fThreadCode[thread.fCurrentFrame.fPC];
-                    thread.fCurrentFrame.fPC++;
-                    doOneInstruction(thread, instruction);
-                    if (thread.fCurrentFrame.fPC >= thread.fThreadCode.length) {
-                        // Thread reached end of code, exit from the thread.
-                        thread.fRun = false;
-                    } else if (thread.fStepReturn) {
-                        // If this thread is in a step-return operation, check
-                        // if we've returned from a call.  
-                        instruction = thread.fThreadCode[thread.fCurrentFrame.fPC];
-                        if ("return".equals(instruction)) {
-                            // Note: this will only be triggered if the current 
-                            // thread also has the fStepReturn flag set.
-                            if (fStepReturnVM) {
-                                fSuspendVM = thread.fID + " step";
-                            } else {
-                                thread.fSuspend = "step";
-                            }
-                        }
-                    }
-                    if (!thread.fRun) {
-                        sendDebugEvent("exited " + thread.fID, false);
-                        fThreads.remove(new Integer(thread.fID));
-                    } else if (thread.fSuspend != null) {
-                        sendDebugEvent("suspended " + thread.fID + " " + thread.fSuspend, false);
-                        thread.fStep = thread.fStepReturn = thread.fPerformingEval = false;
-                    }
-                } 
-            }
-            
-            // Force thread context switch to avoid starving out other
-            // processes in the system.
-            Thread.yield();
-        }
-        
-        sendDebugEvent("vmterminated", false);
-        if (fDebug) {
-            try {
-                fCommandReceiveStream.close();
-                fCommandResponseStream.close();
-                fCommandSocket.close();
-                fEventStream.close();
-                fEventSocket.close();
-            } catch (IOException e) {
-                System.out.println("Error: " + e);
-            }
-        }
-
-    }
-
-    void doOneInstruction(PDAThread thread, String instr) {
-        StringTokenizer tokenizer = new StringTokenizer(instr);
-        String op = tokenizer.nextToken();
-        List tokens = new LinkedList();
-        while (tokenizer.hasMoreTokens()) {
-            tokens.add(tokenizer.nextToken());
-        }
-        Args args = new Args( (String[])tokens.toArray(new String[tokens.size()]) );
-
-        boolean opValid = true;
-        if (op.equals("add")) iAdd(thread, args);
-        else if (op.equals("branch_not_zero")) iBranchNotZero(thread, args);
-        else if (op.equals("call")) iCall(thread, args);
-        else if (op.equals("dec")) iDec(thread, args);
-        else if (op.equals("def")) iDef(thread, args);
-        else if (op.equals("dup")) iDup(thread, args);
-        else if (op.equals("exec")) iExec(thread, args);            
-        else if (op.equals("halt")) iHalt(thread, args);
-        else if (op.equals("output")) iOutput(thread, args);
-        else if (op.equals("pop")) iPop(thread, args);
-        else if (op.equals("push")) iPush(thread, args);
-        else if (op.equals("return")) iReturn(thread, args);
-        else if (op.equals("var")) iVar(thread, args);
-        else if (op.equals("xyzzy")) iInternalEndEval(thread, args);
-        else if (op.startsWith(":")) {} // label
-        else if (op.startsWith("#")) {} // comment
-        else {
-            opValid = false;
-        }
-
-        if (!opValid) {
-            sendDebugEvent("unimplemented instruction " + op, true);
-            if ( ((Boolean)fEventStops.get("unimpinstr")).booleanValue() ) {
-                fSuspendVM = thread.fID + " event unimpinstr";
-                thread.fCurrentFrame.fPC--;
-            }
-        } else if (thread.fStep) {
-            if (fStepVM) {
-                fSuspendVM = thread.fID + " step";
-                fStepVM = false;
-            } else {
-                thread.fSuspend = "step";
-            }
-            thread.fStep = false;
-        }
-    }
-
-    void checkForBreakpoint() {
-        if (fDebug) {
-            for (Iterator itr = fThreads.values().iterator(); itr.hasNext();) {
-                PDAThread thread = (PDAThread)itr.next();
-                Integer pc = new Integer(thread.fCurrentFrame.fPC);
-                // Suspend for breakpoint if:
-                // - the VM is not yet set to suspend, for e.g. as a result of step end,
-                // - the thread is not yet suspended and is not performing an evaluation
-                // - the breakpoints table contains a breakpoint for the given line.
-                if (fSuspendVM == null && 
-                    thread.fSuspend == null && !thread.fPerformingEval && 
-                    fBreakpoints.containsKey(pc)) 
-                {
-                    if ( ((Boolean)fBreakpoints.get(pc)).booleanValue() ) {
-                        fSuspendVM = thread.fID + " breakpoint " + pc;
-                    } else {
-                        thread.fSuspend = "breakpoint " + pc;
-                        thread.fStep = thread.fStepReturn = false;
-                        sendDebugEvent("suspended " + thread.fID + " " + thread.fSuspend, false);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * After each instruction, we check the debug command channel for control input. If
-     * there are commands, process them.
-     */
-    void yieldToDebug(boolean allThreadsSuspended) {
-        if (fDebug) {
-            String line = "";
-            try {
-                if (allThreadsSuspended || fCommandReceiveStream.ready()) {
-                    line = fCommandReceiveStream.readLine();
-                    processDebugCommand(line);
-                }
-            } catch (IOException e) {
-                System.err.println("Error: " + e);
-                System.exit(1);
-            }
-        }
-    }
-
-    /**
-     *  Service the debugger commands while the VM is suspended
-     */
-    void debugUI() {
-        if (!fStarted) {
-            sendDebugEvent("vmsuspended " + fSuspendVM, false);
-        } else {
-            fStarted = false;
-        }
-
-        // Clear all stepping flags.  In case the VM suspended while
-        // a step operation was being performed for the VM or some thread.
-        fStepVM = fStepReturnVM = false;
-        for (Iterator itr = fThreads.values().iterator(); itr.hasNext();) {
-            PDAThread thread = (PDAThread)itr.next();
-            thread.fSuspend = null;
-            thread.fStep = thread.fStepReturn = thread.fPerformingEval = false;
-        }
-        
-        while (fSuspendVM != null) {
-            String line = "";
-            try {
-                line = fCommandReceiveStream.readLine();
-            } catch (IOException e) {
-                System.err.println("Error: " + e);
-                System.exit(1);
-                return;
-            }
-            processDebugCommand(line);
-        }
-
-        if (fStepVM || fStepReturnVM) {
-            sendDebugEvent("vmresumed step", false);
-        } else {
-            sendDebugEvent("vmresumed client", false);
-        }
-    }
-
-    void processDebugCommand(String line) {
-        StringTokenizer tokenizer = new StringTokenizer(line.trim());
-        if (line.length() == 0) {
-            return;
-        }
-
-        String command = tokenizer.nextToken();
-        List tokens = new LinkedList();
-        while (tokenizer.hasMoreTokens()) {
-            tokens.add(tokenizer.nextToken());
-        }
-        Args args = new Args( (String[])tokens.toArray(new String[tokens.size()]));
-
-        if ("children".equals(command)) debugChildren(args);
-        else if ("clear".equals(command)) debugClearBreakpoint(args);
-        else if ("data".equals(command)) debugData(args);
-        else if ("drop".equals(command)) debugDropFrame(args);
-        else if ("eval".equals(command)) debugEval(args);
-        else if ("eventstop".equals(command)) debugEventStop(args);
-        else if ("frame".equals(command)) debugFrame(args);
-        else if ("groups".equals(command)) debugGroups(args);
-        else if ("popdata".equals(command)) debugPopData(args);
-        else if ("pushdata".equals(command)) debugPushData(args);
-        else if ("registers".equals(command)) debugRegisters(args);
-        else if ("resume".equals(command)) debugResume(args);
-        else if ("set".equals(command)) debugSetBreakpoint(args);
-        else if ("setdata".equals(command)) debugSetData(args);
-        else if ("setvar".equals(command)) debugSetVariable(args);
-        else if ("stack".equals(command)) debugStack(args);
-        else if ("stackdepth".equals(command)) debugStackDepth(args);
-        else if ("state".equals(command)) debugState(args);
-        else if ("step".equals(command)) debugStep(args);
-        else if ("stepreturn".equals(command)) debugStepReturn(args);
-        else if ("suspend".equals(command)) debugSuspend(args);
-        else if ("terminate".equals(command)) debugTerminate();
-        else if ("threads".equals(command)) debugThreads();
-        else if ("var".equals(command)) debugVar(args);
-        else if ("vmresume".equals(command)) debugVMResume();
-        else if ("vmsuspend".equals(command)) debugVMSuspend();
-        else if ("watch".equals(command)) debugWatch(args);
-        else {
-            sendCommandResponse("error: invalid command\n");
-        }
-    }
-
-    void debugChildren(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        int sfnumber = args.getNextIntArg();
-        String var = args.getNextStringArg();
-        
-        Frame frame = sfnumber >= thread.fFrames.size()    
-            ? thread.fCurrentFrame : (Frame)thread.fFrames.get(sfnumber);
-
-        String varDot = var + ".";
-        List children = new ArrayList();
-        for (Iterator itr = frame.fLocalVariables.keySet().iterator(); itr.hasNext();) {
-            String localVar = (String)itr.next();
-            if (localVar.startsWith(varDot) && localVar.indexOf('.', varDot.length() + 1) == -1) {
-                children.add(localVar);
-            }
-        }
-
-        StringBuffer result = new StringBuffer();
-        for (Iterator itr = children.iterator(); itr.hasNext();) {
-            result.append(itr.next());
-            result.append('|');
-        }
-        result.append('\n');
-
-        sendCommandResponse(result.toString());
-    }
-    
-    void debugClearBreakpoint(Args args) {
-        int line = args.getNextIntArg();
-
-        fBreakpoints.remove( new Integer(line) );
-        sendCommandResponse("ok\n");
-    }
-
-    private static Pattern fPackPattern = Pattern.compile("%([a-fA-F0-9][a-fA-F0-9])");
-
-    void debugData(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        StringBuffer result = new StringBuffer();
-        for (Iterator itr = thread.fStack.iterator(); itr.hasNext();) {
-            result.append(itr.next());
-            result.append('|');
-        }
-        result.append('\n');
-        sendCommandResponse(result.toString());
-    }
-
-    void debugDropFrame(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        if (!thread.fFrames.isEmpty()) {
-            thread.fCurrentFrame = (Frame)thread.fFrames.remove(thread.fFrames.size() - 1);
-        }
-        thread.fCurrentFrame.fPC--;
-        sendCommandResponse("ok\n");
-        if (fSuspendVM != null) {
-            sendDebugEvent("vmresumed drop", false);
-            sendDebugEvent("vmsuspended " + thread.fID + " drop", false);
-        } else {
-            sendDebugEvent("resumed " + thread.fID + " drop", false);
-            sendDebugEvent("suspended " + thread.fID + " drop", false);
-        }
-    }
-
-    void debugEval(Args args) {
-        if (fSuspendVM != null) {
-            sendCommandResponse("error: cannot evaluate while vm is suspended\n");        
-            return;
-        }
-        
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-        
-        if (thread.fSuspend == null) {
-            sendCommandResponse("error: thread running\n");
-            return;
-        }
-        
-        StringTokenizer tokenizer = new StringTokenizer(args.getNextStringArg(), "|");
-        tokenizer.countTokens();
-
-        int numEvalLines = tokenizer.countTokens();
-        thread.fThreadCode = new String[fCode.length + numEvalLines + 1];
-        System.arraycopy(fCode, 0, thread.fThreadCode, 0, fCode.length);
-        for (int i = 0; i < numEvalLines; i++) {
-            String line = tokenizer.nextToken();
-            StringBuffer lineBuf = new StringBuffer(line.length());
-            Matcher matcher = fPackPattern.matcher(line);
-            int lastMatchEnd = 0;
-            while (matcher.find()) {
-                lineBuf.append(line.substring(lastMatchEnd, matcher.start()));
-                String charCode = line.substring(matcher.start() + 1, matcher.start() + 3);
-                try {
-                    lineBuf.append((char) Integer.parseInt(charCode, 16));
-                } catch (NumberFormatException e) {
-                }
-                lastMatchEnd = matcher.end();
-            }
-            if (lastMatchEnd < line.length()) {
-                lineBuf.append(line.substring(lastMatchEnd));
-            }
-            thread.fThreadCode[fCode.length + i] = lineBuf.toString();
-        }
-        thread.fThreadCode[fCode.length + numEvalLines] = "xyzzy";
-        thread.fThreadLabels = mapLabels(fCode);
-
-        thread.fSavedPC = thread.fCurrentFrame.fPC;
-        thread.fCurrentFrame.fPC = fCode.length;
-        thread.fPerformingEval = true;
-        
-        thread.fSuspend = null;
-        
-        sendCommandResponse("ok\n");
-
-        sendDebugEvent("resumed " + thread.fID + " eval", false);
-    }
-
-    void debugEventStop(Args args) {
-        String event = args.getNextStringArg();
-        int stop = args.getNextIntArg();
-        fEventStops.put(event, new Boolean(stop > 0));
-        sendCommandResponse("ok\n");
-    }
-
-    void debugTerminate() {
-        sendCommandResponse("ok\n");
-        sendDebugEvent("vmterminated", false);
-        System.exit(0);
-    }
-
-    void debugFrame(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        int sfnumber = args.getNextIntArg();
-        Frame frame = null;
-        if (sfnumber >= thread.fFrames.size()) {
-            frame = thread.fCurrentFrame;
-        } else {
-            frame = (Frame)thread.fFrames.get(sfnumber);
-        }
-        sendCommandResponse(printFrame(frame) + "\n");
-    }
-
-    void debugGroups(Args args) {
-        TreeSet groups = new TreeSet();
-        for (Iterator itr = fRegisters.values().iterator(); itr.hasNext();) {
-            Register reg = (Register)itr.next();
-            groups.add(reg.fGroup);
-        }
-        StringBuffer response = new StringBuffer();
-        for (Iterator itr = groups.iterator(); itr.hasNext();) {
-            response.append(itr.next());
-            response.append('|');
-        }
-        response.append('\n');
-        sendCommandResponse(response.toString());
-    }
-
-    void debugPopData(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        thread.fStack.pop();
-        sendCommandResponse("ok\n");
-    }
-
-    void debugPushData(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-        
-        Object val = args.getNextIntOrStringArg();
-        thread.fStack.push(val);
-        sendCommandResponse("ok\n");
-    }
-
-    void debugRegisters(Args args) {
-        String group = args.getNextStringArg();
-        
-        StringBuffer response = new StringBuffer();
-        for (Iterator itr = fRegisters.values().iterator(); itr.hasNext();) {
-            Register reg = (Register)itr.next();
-            if (group.equals(reg.fGroup)) {
-                response.append(reg.fName);
-                response.append(' ');
-                response.append(reg.fIsWriteable);
-                for (Iterator itr2 = reg.fBitFields.values().iterator(); itr2.hasNext();) {
-                    BitField bitField = (BitField)itr2.next();
-                    response.append('|');
-                    response.append(bitField.fName);
-                    response.append(' ');
-                    response.append(bitField.fBitOffset);
-                    response.append(' ');
-                    response.append(bitField.fBitCount);
-                    response.append(' ');
-                    for (Iterator itr3 = bitField.fMnemonics.entrySet().iterator(); itr3.hasNext();) {
-                        Map.Entry mnemonicEntry = (Map.Entry)itr3.next();
-                        response.append(mnemonicEntry.getKey());
-                        response.append(' ');
-                        response.append(mnemonicEntry.getValue());
-                        response.append(' ');
-                    }
-                }
-                
-                response.append('#');
-            }
-        }
-        response.append('\n');
-        sendCommandResponse(response.toString());
-    }
-    
-    void debugResume(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        } 
-        if (fSuspendVM != null) {
-            sendCommandResponse("error: cannot resume thread when vm is suspended\n");
-            return;
-        } 
-        if (thread.fSuspend == null) {
-            sendCommandResponse("error: thread already running\n");
-            return;
-        } 
-        
-        thread.fSuspend = null;
-        sendDebugEvent("resumed " + thread.fID + " client", false);
-        
-        sendCommandResponse("ok\n");
-    }
-
-    void debugSetBreakpoint(Args args) {
-        int line = args.getNextIntArg();
-        int stopVM = args.getNextIntArg();
-        
-        fBreakpoints.put(new Integer(line), new Boolean(stopVM != 0));
-        sendCommandResponse("ok\n");
-    }
-
-    void debugSetData(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-        
-        int offset = args.getNextIntArg();
-        Object val = args.getNextIntOrStringArg();
-
-        if (offset < thread.fStack.size()) {
-            thread.fStack.set(offset, val);
-        } else {
-            thread.fStack.add(0, val);
-        }
-        sendCommandResponse("ok\n");
-    }
-
-    void debugSetVariable(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        int sfnumber = args.getNextIntArg();
-        String var = args.getNextStringArg();
-        Object val = args.getNextIntOrStringArg();
-        while (args.hasNextArg()) {
-            val = val.toString() + " " + args.getNextStringArg();
-        }
-        
-        if (sfnumber >= thread.fFrames.size()) {
-            thread.fCurrentFrame.set(var, val);
-        } else {
-            ((Frame)thread.fFrames.get(sfnumber)).set(var, val);
-        }
-        sendCommandResponse("ok\n");
-    }
-
-    void debugStack(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        StringBuffer result = new StringBuffer();
-        
-        for (Iterator itr = thread.fFrames.iterator(); itr.hasNext();) {
-            Frame frame = (Frame)itr.next();
-            result.append(printFrame(frame));
-            result.append('#');
-        }
-        result.append(printFrame(thread.fCurrentFrame));
-        result.append('\n');
-        sendCommandResponse(result.toString());
-    }
-
-    void debugStackDepth(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-        sendCommandResponse( Integer.toString(thread.fFrames.size() + 1) + "\n" );
-    }
-
-
-    /**
-     * The stack frame output is: frame # frame # frame ... where each frame is:
-     * filename | line number | function name | var | var | var | var ...
-     */
-    private String printFrame(Frame frame) {
-        StringBuffer buf = new StringBuffer();
-        buf.append(fFilename);
-        buf.append('|');
-        buf.append(frame.fPC);
-        buf.append('|');
-        buf.append(frame.fFunction);
-        for (Iterator itr = frame.fLocalVariables.keySet().iterator(); itr.hasNext();) {
-            String var = (String)itr.next();
-            if (var.indexOf('.') == -1) {
-                buf.append('|');
-                buf.append(var);
-            }
-        }
-        return buf.toString();
-    }
-
-    void debugState(Args args) {
-        PDAThread thread = args.getThreadArg();
-        String response = null;
-        if (thread == null) {
-            response = fSuspendVM == null ? "running" : fSuspendVM;
-        } else if (fSuspendVM != null) {
-            response = "vm";
-        } else {
-            response = thread.fSuspend == null ? "running" : thread.fSuspend;
-        }
-        sendCommandResponse(response + "\n");
-    }
-    
-    void debugStep(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        } 
-
-        // Set suspend to null 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.
-        if (fSuspendVM != null) {
-            // All threads are suspended, so suspend all threads again when 
-            // step completes.
-            fSuspendVM = null;
-            fStepVM = true;
-            // Also mark the thread that initiated the step to mark it as
-            // the triggering thread when suspending.
-            thread.fStep = true;
-        } else {
-            if (thread.fSuspend == null) {
-                sendCommandResponse("error: thread already running\n");
-                return;
-            }
-            thread.fSuspend = null;
-            thread.fStep = true;
-            sendDebugEvent("resumed " + thread.fID + " step", false);
-        }
-        sendCommandResponse("ok\n");
-    }
-
-    void debugStepReturn(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        } 
-        
-        if (fSuspendVM != null) {
-            fSuspendVM = null;
-            fStepReturnVM = true;
-            thread.fStepReturn = true;
-        } else {
-            if (thread.fSuspend == null) {
-                sendCommandResponse("error: thread running\n");
-                return;
-            }
-            thread.fSuspend = null;
-            thread.fStepReturn = true;
-            sendDebugEvent("resumed " + thread.fID + " step", false);
-        }
-        sendCommandResponse("ok\n");
-    }
-
-    void debugSuspend(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        } 
-        if (fSuspendVM != null) {
-            sendCommandResponse("error: vm already suspended\n");
-            return;
-        }
-        if (thread.fSuspend != null) {
-            sendCommandResponse("error: thread already suspended\n");
-            return;
-        } 
-        
-        thread.fSuspend = "client";
-        sendDebugEvent("suspended " + thread.fID + " client", false);
-        sendCommandResponse("ok\n");
-    }
-
-    void debugThreads() {
-        StringBuffer response = new StringBuffer();
-        for (Iterator itr = fThreads.keySet().iterator(); itr.hasNext();) {
-            response.append(itr.next());
-            response.append(' ');
-        }
-        sendCommandResponse(response.toString().trim() + "\n");
-    }
-
-    void debugVar(Args args) {
-        PDAThread thread = args.getThreadArg();
-        if (thread == null) {
-            sendCommandResponse("error: invalid thread\n");
-            return;
-        }
-
-        int sfnumber = args.getNextIntArg();
-        String var = args.getNextStringArg();
-
-        Frame frame = sfnumber >= thread.fFrames.size()    
-            ? thread.fCurrentFrame : (Frame)thread.fFrames.get(sfnumber);
-        
-        Object val = frame.get(var);
-        if (val == null) {
-            sendCommandResponse("error: variable undefined\n");
-        } else {
-            sendCommandResponse(val.toString() + "\n");
-        }
-    }
-
-    void debugVMResume() {
-        if (fSuspendVM == null) {
-            sendCommandResponse("error: vm already running\n");
-            return;
-        } 
-
-        fSuspendVM = null;
-        sendCommandResponse("ok\n");
-    }
-
-    void debugVMSuspend() {
-        if (fSuspendVM != null) {
-            sendCommandResponse("error: vm already suspended\n");
-            return;
-        }
-
-        fSuspendVM = "client";
-        sendCommandResponse("ok\n");
-    }
-
-    void debugWatch(Args args) {
-        String funcAndVar = args.getNextStringArg();
-        int flags = args.getNextIntArg();
-        fWatchpoints.put(funcAndVar, new Integer(flags));
-        sendCommandResponse("ok\n");
-    }
-
-    void iAdd(PDAThread thread, Args args) {
-        Object val1 = thread.fStack.pop();
-        Object val2 = thread.fStack.pop();
-        if (val1 instanceof Integer && val2 instanceof Integer) {
-            int intVal1 = ((Integer) val1).intValue();
-            int intVal2 = ((Integer) val2).intValue();
-            thread.fStack.push( new Integer(intVal1 + intVal2) );
-        } else {
-            thread.fStack.push( new Integer(-1) );
-        }
-    }
-
-    void iBranchNotZero(PDAThread thread, Args args) {
-        Object val = thread.fStack.pop();
-        if (val instanceof Integer && ((Integer) val).intValue() != 0) {
-            String label = args.getNextStringArg();
-            if (thread.fThreadLabels.containsKey(label)) {
-                thread.fCurrentFrame.fPC = ((Integer)thread.fThreadLabels.get(label)).intValue();
-            } else {
-                sendDebugEvent("no such label " + label, true);
-                if ( ((Boolean)fEventStops.get("nosuchlabel")).booleanValue() ) {
-                    fSuspendVM = thread.fID + " event nosuchlabel";
-                    thread.fStack.push(val);
-                    thread.fCurrentFrame.fPC--;
-                }
-            }
-        }
-    }
-
-    void iCall(PDAThread thread, Args args) {
-        String label = args.getNextStringArg();
-        if (thread.fThreadLabels.containsKey(label)) {
-            thread.fFrames.add(thread.fCurrentFrame);
-            thread.fCurrentFrame = new Frame(label, ((Integer)thread.fThreadLabels.get(label)).intValue());
-        } else {
-            sendDebugEvent("no such label " + label, true);
-            if ( ((Boolean)fEventStops.get("nosuchlabel")).booleanValue() ) {
-                fSuspendVM = thread.fID + " event nosuchlabel";
-                thread.fCurrentFrame.fPC--;
-            }
-        }
-    }
-
-    void iDec(PDAThread thread, Args args) {
-        Object val = thread.fStack.pop();
-        if (val instanceof Integer) {
-            val = new Integer(((Integer) val).intValue() - 1);
-        }
-        thread.fStack.push(val);
-    }
-
-    void iDef(PDAThread thread, Args args) {
-        String type = args.getNextStringArg();
-
-        String name = args.getNextStringArg();
-        String regName = getRegisterPartOfName(name);
-        String bitFieldName = getBitFieldPartOfName(name);
-
-        if ("register".equals(type)) {
-            Register reg = new Register(regName); 
-            reg.fGroup = args.getNextStringArg();
-            fRegisters.put(regName, reg);
-            reg.fIsWriteable = args.getNextBooleanArg();
-        } else if ("bitfield".equals(type)) {
-            Register reg = (Register)fRegisters.get(regName);
-            if (reg == null) return;
-            BitField bitField = new BitField(bitFieldName);
-            bitField.fBitOffset = args.getNextIntArg();
-            bitField.fBitCount = args.getNextIntArg();
-            reg.fBitFields.put(bitFieldName, bitField);
-        } else if ("mnemonic".equals(type)) {
-            Register reg = (Register)fRegisters.get(regName);
-            if (reg == null) return;
-            BitField bitField = (BitField)reg.fBitFields.get(bitFieldName);
-            if (bitField == null) return;
-            bitField.fMnemonics.put(args.getNextStringArg(), new Integer(args.getNextIntArg()));
-        }
-        sendDebugEvent("registers", false);
-    }
-
-    private String getRegisterPartOfName(String name) {
-        if (name.startsWith("$")) {
-            int end = name.indexOf('.');
-            end = end != -1 ? end : name.length();
-            return name.substring(1, end);
-        }
-        return null;
-    }
-
-    private String getBitFieldPartOfName(String name) {
-        int start = name.indexOf('.');
-        if (name.startsWith("$") && start != -1) {
-            return name.substring(start + 1, name.length());
-        }
-        return null;        
-    }
-
-    void iDup(PDAThread thread, Args args) {
-        Object val = thread.fStack.pop();
-        thread.fStack.push(val);
-        thread.fStack.push(val);
-    }
-    
-    void iExec(PDAThread thread, Args args) {
-        String label = args.getNextStringArg();
-        if (fLabels.containsKey(label)) {
-            int id = fNextThreadId++;
-            fThreads.put( new Integer(id), new PDAThread(id, label, ((Integer)fLabels.get(label)).intValue()) );
-            sendDebugEvent("started " + id, false);
-        } else {
-            sendDebugEvent("no such label " + label, true);
-            if ( ((Boolean)fEventStops.get("nosuchlabel")).booleanValue() ) {
-                thread.fSuspend = "event nosuchlabel";
-                thread.fCurrentFrame.fPC--;
-            }
-        }
-    }
-
-    void iHalt(PDAThread thread, Args args) {
-        thread.fRun = false;
-    }
-
-    void iOutput(PDAThread thread, Args args) {
-        System.out.println(thread.fStack.pop());
-    }
-
-    void iPop(PDAThread thread, Args args) {
-        String arg = args.getNextStringArg();
-        if (arg.startsWith("$")) {
-            String var = arg.substring(1);
-            thread.fCurrentFrame.set(var, thread.fStack.pop());
-            String key = thread.fCurrentFrame.fFunction + "::" + var;
-            if ( fWatchpoints.containsKey(key) && (((Integer)fWatchpoints.get(key)).intValue() & 2) != 0 ) {
-                fSuspendVM = thread.fID + " watch write " + key;
-            }
-        } else {
-            thread.fStack.pop();
-        }
-    }
-
-    void iPush(PDAThread thread, Args args) {
-        String arg = args.getNextStringArg();
-        while (arg.length() != 0) {
-            if (arg.startsWith("$")) {
-                String var = arg.substring(1);
-                Object val = thread.fCurrentFrame.get(var);
-                if (val == null) val = "<undefined>";
-                thread.fStack.push(val);
-                String key = thread.fCurrentFrame.fFunction + "::" + var;
-                if (fWatchpoints.containsKey(key) && (((Integer)fWatchpoints.get(key)).intValue() & 1) != 0) {
-                    fSuspendVM = thread.fID + " watch read " + key;
-                }
-            } else {
-                Object val = arg;
-                if (args.hasNextArg()) {
-                    while (args.hasNextArg()) {
-                        val = val.toString() + " " + args.getNextStringArg();
-                    }
-                } else {
-                    try {
-                        val = new Integer(arg);
-                    } catch (NumberFormatException e) {
-                    }
-                }
-                thread.fStack.push(val);
-            }
-            
-            arg = args.getNextStringArg();
-        }
-    }
-
-    void iReturn(PDAThread thread, Args args) {
-        if (!thread.fFrames.isEmpty()) {
-            thread.fCurrentFrame = (Frame)thread.fFrames.remove(thread.fFrames.size() - 1);
-        } else {
-            // Execution returned from the top frame, which means this thread
-            // should exit.
-            thread.fRun = false;
-        }
-    }
-
-    void iVar(PDAThread thread, Args args) {
-        String var = args.getNextStringArg();
-        thread.fCurrentFrame.set(var, new Integer(0));
-    }
-
-    void iInternalEndEval(PDAThread thread, Args args) {
-        Object result = thread.fStack.pop();
-        thread.fThreadCode = fCode;
-        thread.fThreadLabels = fLabels;
-        thread.fCurrentFrame.fPC = thread.fSavedPC;
-        sendDebugEvent("evalresult " + result, false);
-        thread.fSuspend = "eval";
-        thread.fPerformingEval = false;
-    }
-
-}
diff --git a/org.eclipse.debug.examples.core/pdavm/tests/vmtest10.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest10.pda
deleted file mode 100644
index 837277f..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest10.pda
+++ /dev/null
@@ -1,38 +0,0 @@
-def register $reg1 group1 true
-def register $reg2 group1 false
-def register $reg3 group2 true
-def bitfield $reg1.field1 0 2
-def bitfield $reg1.field2 2 2
-def mnemonic $reg1.field2 zero 0
-def mnemonic $reg1.field2 one 1
-def mnemonic $reg1.field2 two 2
-def mnemonic $reg1.field2 three 3
-push 1
-pop $$reg1
-push $$reg1
-output
-push 2
-pop $$reg1.field1
-push $$reg1.field1
-output
-push 4
-pop $$reg1.field1
-push $$reg1.field1
-output
-push 1
-pop $$reg1.field2
-push $$reg1
-output
-push zero 
-pop $$reg1.field2
-push $$reg1.field2
-output
-push $$reg1
-output
-push 2 
-pop $$reg1.field2
-push $$reg1.field2
-output
-push $$reg1
-output
-halt
\ No newline at end of file
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 5aecdc5..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest3.pda
+++ /dev/null
@@ -1,13 +0,0 @@
-push 1
-push 2
-push 3
-foobar swish
-push 4
-add
-add
-call zippy
-add
-output
-push 1
-branch_not_zero swishy
-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/vmtest9.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest9.pda
deleted file mode 100644
index 336a251..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest9.pda
+++ /dev/null
@@ -1,23 +0,0 @@
-push 5
-:thread_create
-exec foo
-dec 
-dup
-branch_not_zero thread_create
-push finished
-output 
-halt
-:foo
-push thread_created
-output
-call inner
-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/vmtest_children.pda b/org.eclipse.debug.examples.core/pdavm/tests/vmtest_children.pda
deleted file mode 100644
index b0bbd16..0000000
--- a/org.eclipse.debug.examples.core/pdavm/tests/vmtest_children.pda
+++ /dev/null
@@ -1,8 +0,0 @@
-var a
-var a.b
-var a.c
-push 1
-pop $a.b
-push $a.b
-output
-halt
diff --git a/org.eclipse.debug.examples.core/plugin.xml b/org.eclipse.debug.examples.core/plugin.xml
deleted file mode 100644
index 90ceead..0000000
--- a/org.eclipse.debug.examples.core/plugin.xml
+++ /dev/null
@@ -1,93 +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-->  
-
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationTypes">
-      <launchConfigurationType
-            delegate="org.eclipse.debug.examples.core.midi.launcher.MidiLaunchDelegate"
-            name="MIDI Sequence"
-            id="midi.launchType"
-            modes="run, debug"/>
-   </extension>
-
-<!--#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/readme.html b/org.eclipse.debug.examples.core/readme.html
deleted file mode 100644
index 2a7cb9d..0000000
--- a/org.eclipse.debug.examples.core/readme.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<h1>Debug Examples ReadMe Notes</h1>
-<h2>PDA Debugger Example</h2>
-<p>In order to actually run the PDA debugger example, you will need a Perl interpreter. 
-  Linux&reg;&#8482; comes with Perl. For Microsoft&reg; Windows&reg;, we use either 
-  ActivePerl (<a href="http://www.activeperl.com/">http://www.activeperl.com/</a>) or Indigo Perl 
-  (<a href="http://www.indigostar.com/">http://www.indigostar.com/</a>). You also 
-  have to set the string substitution variable named &#8220;perlExecutable&#8221; 
-  to the complete path to your Perl interpreter. (For example, ours was C:\perl\bin\perl.exe) 
-  To set a string substitution variable, use the Windows &gt; Preferences &gt; 
-  Run/Debug &gt; String Substitution preferences page.<br>
-</p>
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/registers.pda b/org.eclipse.debug.examples.core/samples/registers.pda
deleted file mode 100644
index 97fd8d4..0000000
--- a/org.eclipse.debug.examples.core/samples/registers.pda
+++ /dev/null
@@ -1,72 +0,0 @@
-def register $pc General true
-def register $sp General true
-def register $status General true
-def bitfield $status.BITS_00_07 0 8
-def bitfield $status.BITS_08_15 8 8
-def bitfield $status.BITS_16_23 16 8
-def bitfield $status.BITS_24_31 24 8
-def mnemonic $status.BITS_24_31 three 3 
-def mnemonic $status.BITS_24_31 twelve 12 
-def mnemonic $status.BITS_24_31 fourty_eight 48 
-def mnemonic $status.BITS_24_31 one_nighty_two 192 
-def register $stackdepth General true
-def register $stack[0] General true
-def register $stack[1] General true
-def register $stack[2] General true
-def register $stack[3] General true
-def register $stack[4] General true
-push 103
-pop $$pc
-push 306
-push 2
-pop $$sp
-push 400
-pop $$status
-push 5
-pop $$stackdepth
-push 12
-pop $$stack[0]
-push 45
-pop $$stack[1]
-push 146
-pop $$stack[2]
-push 215
-pop $$stack[3]
-push 251
-pop $$stack[4]
-push 306
-pop $$stack[5]
-def register $total-instructions Analysis false
-def register $add-instructions Analysis false
-def register $call-instructions Analysis false
-def register $dec-instructions Analysis false
-def register $dup-instructions Analysis false
-def register $halt-instructions Analysis false
-def register $output-instructions Analysis false
-def register $pop-instructions Analysis false
-def register $push-instructions Analysis false
-def register $return-instructions Analysis false
-def register $var-instructions Analysis false
-push 1046
-pop $$total-instructions
-push 12
-pop $$add-instructions
-push 24
-pop $$call-instructions
-push 36
-pop $$dec-instructions
-push 50
-pop $$dup-instructions
-push 62
-pop $$halt-instructions
-push 74
-pop $$output-instructions
-push 106
-pop $$pop-instructions
-push 120
-pop $$push-instructions
-push 132
-pop $$return-instructions
-push 144
-pop $$var-instructions
-halt
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/samples/stack.pda b/org.eclipse.debug.examples.core/samples/stack.pda
deleted file mode 100644
index c7fa162..0000000
--- a/org.eclipse.debug.examples.core/samples/stack.pda
+++ /dev/null
@@ -1,21 +0,0 @@
-push 5
-:thread_create
-exec stack
-dec 
-dup
-branch_not_zero thread_create
-push finished
-output 
-halt
-:stack
-push 100
-:inner
-dup
-output
-dup
-branch_not_zero descend
-return
-:descend
-dec
-call inner 
-return
\ No newline at end of file
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 4cc8817..0000000
--- a/org.eclipse.debug.examples.core/samples/structures.pda
+++ /dev/null
@@ -1,29 +0,0 @@
-push a
-push b
-push c
-push x
-push y
-push z
-push one two three
-push 1 2 3
-push I II III
-var x
-var x.a
-var x.b
-var y
-var y.c
-var y.d
-var y.d.1
-var y.d.2
-var y.d.3
-pop $x
-pop $x.a
-pop $x.b
-pop $y
-pop $y.c
-pop $y.d
-pop $y.d.1
-pop $y.d.2
-pop $y.d.3
-push Done
-output
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/scripts/build.xml b/org.eclipse.debug.examples.core/scripts/build.xml
deleted file mode 100644
index df434e6..0000000
--- a/org.eclipse.debug.examples.core/scripts/build.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0"?>
-<!-- ======================================================================
- 	 Copyright (c) 2005, 2008 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
-
-     EclipseCon    
-     Debug Tutorial Exercises
-     ====================================================================== -->
-<project name="EclipseCon" default="generateAll">
-	<description>
-            Debug Tutorial Exercises
-    </description>
-
-	<taskdef name="preprocess" classname="org.eclipse.debug.examples.ant.tasks.PreProcessor" classpath="../bin" />
-	<property name="destBase" location="c:\temp\example" />
-	<property name="workspace" location="c:\eclipse-dev\dev-3.4" />
-	<property name="coreSource" location="${workspace}\org.eclipse.debug.examples.core" />
-	<property name="uiSource" location="${workspace}\org.eclipse.debug.examples.ui" />
-
-	<!-- ================================= 
-          target: generateAll              
-         ================================= -->
-	<target name="generateAll" description="--> Debug Tutorial Exercises">
-		
-    <!-- = = = = = = = = = = = = = = = = =
-          macrodef: process          
-         = = = = = = = = = = = = = = = = = -->
-    <macrodef name="process">
-        <attribute name="destdir"/>
-    	<attribute name="symbols"/>
-        <sequential>
-            <delete dir="@{destdir}"/>
-        	<mkdir dir="@{destdir}\org.eclipse.debug.examples.core"/>
-        	<mkdir dir="@{destdir}\org.eclipse.debug.examples.ui"/>
-        	<preprocess destdir="@{destdir}\org.eclipse.debug.examples.core" symbols="@{symbols}">
-        		<fileset dir="${coreSource}">
-        			<exclude name="**/*.class"/>
-        			<exclude name="**/PreProcessor.java"/>
-        		</fileset>
-        	</preprocess>
-        	<preprocess destdir="@{destdir}\org.eclipse.debug.examples.ui" symbols="@{symbols}">
-        		<fileset dir="${uiSource}">
-        			<exclude name="**/*.class"/>
-        		</fileset>
-        	</preprocess>
-        </sequential>
-    </macrodef>
-
-	<process destdir="${destBase}\exercise1.1" symbols="ex1"/>
-	<process destdir="${destBase}\exercise2.1" symbols="ex2"/>
-	<process destdir="${destBase}\exercise3.1" symbols="ex3"/>
-	<process destdir="${destBase}\exercise4.1" symbols="ex4"/>
-	<process destdir="${destBase}\exercise5.1" symbols="ex5"/>
-	<process destdir="${destBase}\exercise6.1" symbols="ex6"/>
-	<process destdir="${destBase}\exercise7.1" symbols="ex7"/>
-    <process destdir="${destBase}\answer" symbols="answer"/>
-	</target>
-
-</project>
-
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/ClockControl.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/ClockControl.java
deleted file mode 100644
index 639f1ac..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/ClockControl.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-
-/**
- * Controls the location of the sequencer in microseconds.
- * 
- * @since 1.0
- */
-public class ClockControl extends TimeControl {
-
-	/**
-	 * @param launch
-	 */
-	public ClockControl(MidiLaunch launch) {
-		super("Time" , launch);
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.TimeControl#getTimeValue()
-	 */
-	protected long getTimeValue() {
-		return getSequencer().getMicrosecondPosition();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#isEditable()
-	 */
-	public boolean isEditable() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#setValue(java.lang.String)
-	 */
-	public IStatus setValue(String newValue) {
-		try {
-			long value = getLong(newValue);
-			getSequencer().setMicrosecondPosition(value);
-			fireEvent(new DebugEvent(this, DebugEvent.CHANGE));
-			return Status.OK_STATUS;
-		} catch (CoreException e) {
-			return e.getStatus();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#validateValue(java.lang.String)
-	 */
-	public IStatus validateValue(String value) {
-		try {
-			getLong(value);
-			return Status.OK_STATUS;
-		} catch (CoreException e) {
-			return e.getStatus();
-		}
-	}
-	
-	/**
-	 * Returns a float for the string.
-	 * 
-	 * @param value string
-	 * @return float
-	 * @throws CoreException if not a valid value 
-	 */
-	protected long getLong(String value) throws CoreException {
-		try {
-			if (value.indexOf(':') == -1) {
-				long secs = Long.parseLong(value);
-				return secs * 1000000;
-			}
-		} catch (NumberFormatException e) {
-			throw new CoreException(new Status(IStatus.ERROR, DebugCorePlugin.PLUGIN_ID, "Time must be an integer (seconds) or 00:00 (minutes:seconds) format", e));
-		}
-		return 0L;
-	}
-	
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/LengthControl.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/LengthControl.java
deleted file mode 100644
index 3a754c9..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/LengthControl.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-
-/**
- * Describes the length of the sequence in microseconds.
- * 
- * @since 1.0
- */
-public class LengthControl extends TimeControl {
-
-	/**
-	 * @param launch
-	 */
-	public LengthControl(MidiLaunch launch) {
-		super("Duration" , launch);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.TimeControl#getTimeValue()
-	 */
-	protected long getTimeValue() {
-		return getSequencer().getMicrosecondLength();
-	}
-
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunch.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunch.java
deleted file mode 100644
index 75801ec..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunch.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-import javax.sound.midi.MidiFileFormat;
-import javax.sound.midi.Sequencer;
-
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.Launch;
-import org.eclipse.debug.core.model.ISuspendResume;
-
-/**
- * A launch containing a MIDI sequencer.
- * 
- * @since 1.0
- */
-public class MidiLaunch extends Launch implements ISuspendResume {
-	
-	/**
-	 * MIDI Sequencer
-	 */
-	private Sequencer fSequencer;
-	
-	/**
-	 * MIDI file format
-	 */
-	private MidiFileFormat fFormat;
-
-	/**
-	 * Constructs a new MIDI launch.
-	 * 
-	 * @param launchConfiguration configuration to play
-	 * @param mode mode to play in
-	 */
-	public MidiLaunch(ILaunchConfiguration launchConfiguration, String mode) {
-		super(launchConfiguration, mode, null);
-	}
-	
-	/**
-	 * Sets the sequencer used to play MIDI files.
-	 * 
-	 * @param sequencer
-	 */
-	public void setSequencer(Sequencer sequencer) {
-		fSequencer = sequencer;
-		fireChanged();
-	}
-	
-	/**
-	 * Sets the format of the sequence
-	 * @param format
-	 */
-	public void setFormat(MidiFileFormat format) {
-		fFormat = format;
-	}
-
-	/**
-	 * Returns the file format of the sequence.
-	 * 
-	 * @return file format
-	 */
-	public MidiFileFormat getFormat() {
-		return fFormat;
-	}
-	/**
-	 * Returns the sequencer used to play MIDI files.
-	 * 
-	 * @return the sequencer used to play MIDI files
-	 */
-	public Sequencer getSequencer() {
-		return fSequencer;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.Launch#canTerminate()
-	 */
-	public boolean canTerminate() {
-		return getSequencer().isOpen();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.Launch#isTerminated()
-	 */
-	public boolean isTerminated() {
-		if (fSequencer != null) {
-			return !fSequencer.isOpen();
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.Launch#terminate()
-	 */
-	public void terminate() throws DebugException {
-		getSequencer().stop();
-		getSequencer().close();
-		fireTerminate();
-		DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(getSequencer(), DebugEvent.TERMINATE)});
-	}
-
-	/* (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() {
-		if (fSequencer != null) {
-			return fSequencer.isRunning();
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
-	 */
-	public boolean isSuspended() {
-		if (fSequencer != null) {
-			return fSequencer.isOpen() & !fSequencer.isRunning();
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#resume()
-	 */
-	public void resume() throws DebugException {
-		getSequencer().start();
-		fireChanged();
-		fireEvent(new DebugEvent(getSequencer(), DebugEvent.RESUME, DebugEvent.CLIENT_REQUEST));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
-	 */
-	public void suspend() throws DebugException {
-		getSequencer().stop();
-		fireChanged();
-		fireEvent(new DebugEvent(getSequencer(), DebugEvent.SUSPEND, DebugEvent.CLIENT_REQUEST));
-	}
-	
-	/**
-	 * Fires a debug event.
-	 * 
-	 * @param event debug event to fire
-	 */
-	protected void fireEvent(DebugEvent event) {
-		DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {event});
-	} 
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunchDelegate.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunchDelegate.java
deleted file mode 100644
index b5538a7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/MidiLaunchDelegate.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-
-import javax.sound.midi.InvalidMidiDataException;
-import javax.sound.midi.MidiFileFormat;
-import javax.sound.midi.MidiSystem;
-import javax.sound.midi.MidiUnavailableException;
-import javax.sound.midi.Sequencer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.LaunchConfigurationDelegate;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-
-/**
- * Creates and starts a MIDI sequencer.
- * 
- * @since 1.0
- */
-public class MidiLaunchDelegate extends LaunchConfigurationDelegate {
-
-	/**
-	 * Identifier for the MIDI launch configuration type
-	 * (value <code>midi.launchType</code>)
-	 */
-	public static final String ID_MIDI_LAUNCH_CONFIGURATION_TYPE = "midi.launchType";
-	
-	/**
-	 * Launch configuration attribute for the MIDI file to play
-	 * (value <code>midi.file</code>)
-	 */
-	public static final String ATTR_MIDI_FILE = "midi.file";
-	
-	/* (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 {
-		String fileName = configuration.getAttribute(ATTR_MIDI_FILE, (String)null);
-		if (fileName == null) {
-			abort("MIDI file not specified.", null);
-		}
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IFile file = root.getFile(new Path(fileName));
-		if (!file.exists()) {
-			abort("MIDI file does not exist.", null);
-		}
-		Sequencer sequencer = null;
-		MidiFileFormat fileFormat = null;
-		try {
-			sequencer = MidiSystem.getSequencer();
-			sequencer.open();
-			IPath location = file.getLocation();
-			if (location != null) {
-				fileFormat = MidiSystem.getMidiFileFormat(location.toFile());
-			}
-		} catch (MidiUnavailableException e) {
-			abort("Cannot initialize sequencer.", e);
-		} catch (InvalidMidiDataException e) {
-			abort("Invalid MIDI file.", e);
-		} catch (IOException e) {
-			abort("Error reading MIDI file.", e);
-		}
-		BufferedInputStream stream = new BufferedInputStream(file.getContents());
-		try {
-			sequencer.setSequence(stream);
-		} catch (IOException e) {
-			abort("Error reading MIDI file", e);
-		} catch (InvalidMidiDataException e) {
-			abort("Inavlid MIDI file.", e);
-		}
-		MidiLaunch midiLaunch = (MidiLaunch)launch;
-		midiLaunch.setSequencer(sequencer);
-		midiLaunch.setFormat(fileFormat);
-		sequencer.start();
-	}
-
-	/**
-	 * 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.PLUGIN_ID, 0, message, e));
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#getLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String)
-	 */
-	public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) throws CoreException {
-		return new MidiLaunch(configuration, mode);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#buildForLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
-		return false;
-	}
-	
-	
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/SequencerControl.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/SequencerControl.java
deleted file mode 100644
index 3274582..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/SequencerControl.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-import javax.sound.midi.Sequencer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * Controls some aspect of a MIDI sequencer.
- * 
- * @since 1.0
- */
-public abstract class SequencerControl {
-	
-	/**
-	 * The launch
-	 */
-	private MidiLaunch fLaunch;
-	
-	/** 
-	 * Control name
-	 */
-	private String fName;
-	
-	/**
-	 * Constructs a control with the given name.
-	 */
-	public SequencerControl(String name, MidiLaunch launch) {
-		fName = name;
-		fLaunch = launch;
-	}
-	
-	/**
-	 * Returns the launch this control is associated with.
-	 * 
-	 * @return MIDI launch
-	 */
-	public MidiLaunch getLaunch() {
-		return fLaunch;
-	}
-
-	/**
-	 * Returns the sequencer associated with this control.
-	 * 
-	 * @return associated sequencer
-	 */
-	public Sequencer getSequencer() {
-		return fLaunch.getSequencer();
-	}
-	
-	/**
-	 * Returns the name of this control.
-	 * 
-	 * @return control name
-	 */
-	public String getName() {
-		return fName;
-	}
-	
-	/**
-	 * Returns this controls current value.
-	 * 
-	 * @return current value
-	 */
-	public abstract String getValue();
-	
-	/**
-	 * Whether this contol's value can be modified.
-	 * 
-	 * @return Whether this contol's value can be modified
-	 */
-	public abstract boolean isEditable();
-	
-	/**
-	 * Returns a status indicating if the given value is
-	 * a valid value for this control to accept.
-	 * 
-	 * @param value new value
-	 * @return whether the value is valid
-	 */
-	public abstract IStatus validateValue(String value);
-	
-	/**
-	 * Sets the value of this control to the given value
-	 * and returns a status indicating if the value was
-	 * successfully set.
-	 * 
-	 * @param newValue value
-	 * @return whether successful
-	 */
-	public abstract IStatus setValue(String newValue);
-	
-	/**
-	 * Fires a debug event.
-	 * 
-	 * @param event debug event to fire
-	 */
-	public void fireEvent(DebugEvent event) {
-		DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {event});
-	} 	
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (obj != null) {
-			if (getClass().equals(obj.getClass())) {
-				return ((SequencerControl)obj).getSequencer().equals(getSequencer());
-				
-			}
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return getSequencer().hashCode() + getClass().hashCode();
-	}	
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TempoControl.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TempoControl.java
deleted file mode 100644
index feb3b32..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TempoControl.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
-
-/**
- * Controls the tempo of a sequencer.
- * 
- * @since 1.0
- */
-public class TempoControl extends SequencerControl {
-
-	/**
-	 * Constructs a tempo control for the given launch.
-	 */
-	public TempoControl(MidiLaunch launch) {
-		super("Tempo (BPM)", launch);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#getValue()
-	 */
-	public String getValue() {
-		float bpm = getSequencer().getTempoInBPM();
-		return Float.toString(bpm);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#isEditable()
-	 */
-	public boolean isEditable() {
-		return getSequencer().isOpen();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#setValue(java.lang.String)
-	 */
-	public IStatus setValue(String newValue) {
-		try {
-			float value = getFloat(newValue);
-			getSequencer().setTempoInBPM(value);
-			fireEvent(new DebugEvent(this, DebugEvent.CHANGE));
-			return Status.OK_STATUS;
-		} catch (CoreException e) {
-			return e.getStatus();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#validateValue(java.lang.String)
-	 */
-	public IStatus validateValue(String value) {
-		try {
-			getFloat(value);
-			return Status.OK_STATUS;
-		} catch (CoreException e) {
-			return e.getStatus();
-		}
-	}
-
-	/**
-	 * Returns a float for the string.
-	 * 
-	 * @param value string
-	 * @return float
-	 * @throws CoreException if not a valid value 
-	 */
-	protected float getFloat(String value) throws CoreException {
-		try {
-			return Float.parseFloat(value); 
-		} catch (NumberFormatException e) {
-			throw new CoreException(new Status(IStatus.ERROR, DebugCorePlugin.PLUGIN_ID, "Tempo must be a number", e));
-		}
-	}
-
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TimeControl.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TimeControl.java
deleted file mode 100644
index 93aa54d..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/midi/launcher/TimeControl.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.core.midi.launcher;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Displays a time value based on underlying microsecond value
- * 
- * @since 1.0
- */
-public abstract class TimeControl extends SequencerControl {
-
-	/**
-	 * Constructs a time control with the given name for the
-	 * given launch.
-	 * 
-	 * @param name
-	 * @param launch
-	 */
-	public TimeControl(String name, MidiLaunch launch) {
-		super(name, launch);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#getValue()
-	 */
-	public String getValue() {
-		long position = getTimeValue();
-		int milli = (int) (position & 0x3F);
-		int sec = (int) (position / 1000000);
-		int min = sec / 60;
-		sec = sec % 60;
-		StringBuffer clock = new StringBuffer();
-		clock.append(min);
-		while (clock.length() < 2) {
-			clock.insert(0, 0);
-		}
-		clock.append(':');
-		clock.append(sec);
-		while (clock.length() < 5) {
-			clock.insert(3, 0);
-		}
-		clock.append(':');
-		clock.append(milli);
-		while (clock.length() < 8) {
-			clock.insert(6, 0);
-		}
-		return clock.toString();
-	}
-	
-	/**
-	 * Provided by subclasses for the control.
-	 * 
-	 * @return time in microseconds
-	 */
-	protected abstract long getTimeValue();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#isEditable()
-	 */
-	public boolean isEditable() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#setValue(java.lang.String)
-	 */
-	public IStatus setValue(String newValue) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.midi.launcher.SequencerControl#validateValue(java.lang.String)
-	 */
-	public IStatus validateValue(String value) {
-		return null;
-	}
-
-}
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 be74eb7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/DebugCorePlugin.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 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";	
-	
-	/**
-	 * Plug-in identifier.
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.debug.examples.core";
-	
-	/**
-	 * 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 45f2a06..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDALineBreakpoint.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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.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;
-import org.eclipse.debug.examples.core.pda.protocol.PDAClearBreakpointCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDARunControlEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDASetBreakpointCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDASuspendedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendedEvent;
-
-
-/**
- * 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.sendCommand(new PDASetBreakpointCommand((getLineNumber() - 1), false));
-		//#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.sendCommand(new PDAClearBreakpointCommand((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(int threadId) {
-    	if (fTarget != null) {
-			PDAThread thread = fTarget.getThread(threadId);
-			if (thread != null) {
-    			thread.suspendedBy(this);
-    		}
-    	}
-    }
-
-	/* (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(PDAEvent event) {
-		if (event instanceof PDASuspendedEvent || event instanceof PDAVMSuspendedEvent) {
-		    PDARunControlEvent rcEvent = (PDARunControlEvent)event;
-		    if (rcEvent.fReason.equals("breakpoint")) {
-		        handleHit(rcEvent);
-		    }
-		}
-	}
-    
-	/**
-     * Determines if this breakpoint was hit and notifies the thread.
-     * 
-     * @param event breakpoint event
-     */
-    private void handleHit(PDARunControlEvent event) {
-    	int lastSpace = event.fMessage.lastIndexOf(' ');
-    	if (lastSpace > 0) {
-    		String line = event.fMessage.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(event.fThreadId);
-				}
-    		} 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 f013f83..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/breakpoints/PDAWatchpoint.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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;
-import org.eclipse.debug.examples.core.pda.protocol.PDAEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDARunControlEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDASuspendedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAWatchCommand;
-
-
-/**
- * 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.sendCommand(new PDAWatchCommand(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.sendCommand(new PDAWatchCommand(getFunctionName(), getVariableName(), 0));
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.IPDAEventListener#handleEvent(java.lang.String)
-	 */
-	public void handleEvent(PDAEvent event) {
-        if (event instanceof PDASuspendedEvent || event instanceof PDAVMSuspendedEvent) {
-            PDARunControlEvent rcEvent = (PDARunControlEvent)event;
-            if (rcEvent.fReason.equals("watch")) {
-                handleHit(rcEvent);
-            }
-        }
-	}
-    
-	/**
-     * Determines if this breakpoint was hit and notifies the thread.
-     * 
-     * @param event breakpoint event
-     */
-    private void handleHit(PDARunControlEvent event) {
-        String[] strings = event.fMessage.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(event.fThreadId);
-					}
-				} 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 cebc209..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/launcher/PDALaunchDelegate.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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.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();
-		
-        // Get Java VM path
-        String javaVMHome = System.getProperty("java.home");
-        String javaVMExec = javaVMHome + File.separatorChar + "bin" + File.separatorChar + "java";
-        if (File.separatorChar == '\\') {
-            javaVMExec += ".exe";
-        }   
-        File exe = new File(javaVMExec);
-        if (!exe.exists()) {
-            abort(MessageFormat.format("Specified java VM executable {0} does not exist.", new Object[]{javaVMExec}), null);
-        }
-        commandList.add(javaVMExec);
-
-        commandList.add("-cp");
-        commandList.add(File.pathSeparator + DebugCorePlugin.getFileInPlugin(new Path("bin")));
-        
-        commandList.add("org.eclipse.debug.examples.pdavm.PDAVirtualMachine");
-
-		// 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, javaVMExec);
-		// 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;		
-	}	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#buildForLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
-		return false;
-	}	
-}
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 257c418..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/IPDAEventListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.debug.examples.core.pda.protocol.PDAEvent;
-
-/**
- * Listeners are notified of events occurring in a PDA program
- * being interpreted.
- * 
- * @see org.eclipse.debug.examples.core.protocol.PDAVMStarted
- * @see org.eclipse.debug.examples.core.protocol.PDAVMTerminated
- * @see org.eclipse.debug.examples.core.protocol.PDAVMSuspneded
- * @see org.eclipse.debug.examples.core.protocol.PDAVMResumed
- * @see org.eclipse.debug.examples.core.protocol.PDAStarted
- * @see org.eclipse.debug.examples.core.protocol.PDAExited
- * @see org.eclipse.debug.examples.core.protocol.PDASuspended
- * @see org.eclipse.debug.examples.core.protocol.PDAResumed
- * @see org.eclipse.debug.examples.core.pda.protocol.PDAUnimplementedInstructionEvent
- * @see org.eclipse.debug.examples.core.pda.protocol.PDARegisterData
- * @see org.eclipse.debug.examples.core.pda.protocol.PDANoSuchLabelEvent
- * @see org.eclipse.debug.examples.core.pda.protocol.PDAEvalResultEvent
- */
-public interface IPDAEventListener {
-	
-	/**
-	 * Notification the given event occurred in the target program
-	 * being interpreted.
-	 * 
-	 * @param event the event
-	 */
-	public void handleEvent(PDAEvent 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 bcc07ba..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAArray.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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.getVariable(), 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(getVariable(), 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 fb854ba..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugElement.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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;
-import org.eclipse.debug.examples.core.pda.protocol.PDACommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDACommandResult;
-
-
-/**
- * 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.
-     * 
-     * @param request command
-     * @return reply
-     * @throws DebugException if the request fails
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDATerminateCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAVMResumeCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDASuspendCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAResumeCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAStepCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDADropFrameCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDASetBreakpointCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAClearBreakpointCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAWatchCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDADataCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDASetDataCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAPopDataCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAPushDataCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAEvalCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAEventStopCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAStackCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAStackDepthCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAFrameCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDASetVarCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAVarCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAChildrenCommand
-     * 
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDAGroupsCommand
-     * @see org.eclipse.debug.examples.core.pda.protocol.PDARegistersCommand
-     * 
-     * @since 3.5
-     */ 
-	public PDACommandResult sendCommand(PDACommand command) throws DebugException {
-        return getPDADebugTarget().sendCommand(command);
-    }
-	
-	/**
-	 * 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 3705dec..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDADebugTarget.java
+++ /dev/null
@@ -1,571 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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.ArrayList;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-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.DebugEvent;
-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.examples.core.pda.DebugCorePlugin;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDALineBreakpoint;
-import org.eclipse.debug.examples.core.pda.breakpoints.PDARunToLineBreakpoint;
-import org.eclipse.debug.examples.core.pda.protocol.PDACommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDACommandResult;
-import org.eclipse.debug.examples.core.pda.protocol.PDAEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAEventStopCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAExitedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAStartedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDATerminateCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMResumeCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMResumedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMStartedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMTerminatedEvent;
-
-
-/**
- * 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;
-	
-	// suspended state
-	private boolean fVMSuspended = false;
-	
-	// terminated state
-	private boolean fTerminated = false;
-	
-	// threads
-	private Map fThreads = Collections.synchronizedMap(new LinkedHashMap());
-	
-	// event dispatch job
-	private EventDispatchJob fEventDispatch;
-	
-	// event listeners
-	private List fEventListeners = Collections.synchronizedList(new ArrayList());
-	
-	/**
-	 * 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 message = "";
-			while (!isTerminated() && message != null) {
-				try {
-					message = fEventReader.readLine();
-					if (message != null) {
-					    PDAEvent event = null;
-					    try {
-					        event = PDAEvent.parseEvent(message);
-					    }
-					    catch (IllegalArgumentException e) {
-					        DebugCorePlugin.getDefault().getLog().log(
-					            new Status (IStatus.ERROR, "org.eclipse.debug.examples.core", "Error parsing PDA event", e));
-					        continue;
-					    }
-						Object[] listeners = fEventListeners.toArray();
-						for (int i = 0; i < listeners.length; i++) {
-							((IPDAEventListener)listeners[i]).handleEvent(event);	
-						}
-					}
-				} catch (IOException e) {
-					vmTerminated();
-				}
-			}
-			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) {
-	    synchronized(fEventListeners) {
-    		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);
-		}
-		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
-		sendCommand(new PDAEventStopCommand(PDAEventStopCommand.UNIMPINSTR, true));
-        sendCommand(new PDAEventStopCommand(PDAEventStopCommand.NOSUCHLABEL, true));
-	}
-
-    /* (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 {
-	    synchronized (fThreads) {
-	        return (IThread[])fThreads.values().toArray(new IThread[fThreads.size()]);
-	    }
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IDebugTarget#hasThreads()
-	 */
-	public boolean hasThreads() throws DebugException {
-		return fThreads.size() > 0;
-	}
-	/* (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 synchronized boolean isTerminated() {
-		return fTerminated || getProcess().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
-	    sendCommand(new PDATerminateCommand());
-//#endif
-	}
-	/* (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 synchronized boolean isSuspended() {
-		return !isTerminated() && fVMSuspended;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#resume()
-	 */
-	public void resume() throws DebugException {
-	    sendCommand(new PDAVMResumeCommand());
-	}	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
-	 */
-	public void suspend() throws DebugException {
-        sendCommand(new PDAVMSuspendCommand());
-	}
-	
-	/* (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 vmStarted(PDAVMStartedEvent event) {
-		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 void vmTerminated() {
-		setTerminated(true);
-		fThreads.clear();
-		IBreakpointManager breakpointManager = getBreakpointManager();
-        breakpointManager.removeBreakpointListener(this);
-		breakpointManager.removeBreakpointManagerListener(this);
-		fireTerminateEvent();
-		removeEventListener(this);
-	}
-	
-	private void vmResumed(PDAVMResumedEvent event) {
-	   setVMSuspended(false);
-	   fireResumeEvent(calcDetail(event.fReason));
-	}
-	
-	private void vmSuspended(PDAVMSuspendedEvent event) {
-	    setVMSuspended(true);
-	    fireSuspendEvent(calcDetail(event.fReason));
-	}
-	
-	private int calcDetail(String reason) {
-        if (reason.equals("breakpoint") || reason.equals("watch")) {
-            return DebugEvent.BREAKPOINT;
-        } else if (reason.equals("step")) {
-            return DebugEvent.STEP_OVER;
-        } else if (reason.equals("drop")) {
-            return DebugEvent.STEP_RETURN;
-        } else if (reason.equals("client")) {
-            return DebugEvent.CLIENT_REQUEST;
-        } else if (reason.equals("event")) {
-            return DebugEvent.BREAKPOINT;
-        } else {
-            return DebugEvent.UNSPECIFIED;
-        } 
-	}
-	
-	private void started(PDAStartedEvent event) {
-	    PDAThread newThread = new PDAThread(this, event.fThreadId);
-	    fThreads.put(new Integer(event.fThreadId), newThread);
-	    newThread.start();
-	}
-	
-	private void exited(PDAExitedEvent event) {
-        PDAThread thread = (PDAThread)fThreads.remove(new Integer(event.fThreadId));
-        if (thread != null) {
-            thread.exit();
-        }
-	}
-	
-	private synchronized void setVMSuspended(boolean suspended) {
-	    fVMSuspended = suspended;
-	}
-	
-    private synchronized void setTerminated(boolean terminated) {
-        fTerminated = terminated;
-    }
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.PDADebugElement#sendRequest(java.lang.String)
-	 */
-	private String sendRequest(String request) throws DebugException {
-		synchronized (fRequestSocket) {
-			fRequestWriter.println(request);
-			fRequestWriter.flush();
-			try {
-				// wait for reply
-				String retVal = fRequestReader.readLine();
-				if (retVal == null) {
-	                requestFailed("Request failed: " + request + ".  Debugger connection closed.", null);				    
-				}
-				return retVal;
-			} catch (IOException e) {
-				requestFailed("Request failed: " + request, e);
-			}
-		}
-		// Should never reach this satement.
-		return null;
-	}  
-	
-	public PDACommandResult sendCommand(PDACommand command) throws DebugException {
-	    String response = sendRequest(command.getRequest());
-	    return command.createResult(response);
-	}
-
-	/**
-	 * 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);
-			}
-        }
-	}	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.examples.core.pda.model.IPDAEventListener#handleEvent(java.lang.String)
-	 */
-	public void handleEvent(PDAEvent event) {
-		if (event instanceof PDAStartedEvent) {
-			started((PDAStartedEvent)event);
-		} else if (event instanceof PDAExitedEvent) {
-			exited((PDAExitedEvent)event);
-        } else if (event instanceof PDAVMStartedEvent) {
-            vmStarted((PDAVMStartedEvent)event);
-		} else if (event instanceof PDAVMTerminatedEvent) {
-            vmTerminated();
-        } else if (event instanceof PDAVMSuspendedEvent) {
-            vmSuspended((PDAVMSuspendedEvent)event);
-        } else if (event instanceof PDAVMResumedEvent) {
-            vmResumed((PDAVMResumedEvent)event);
-        } 
-	}
-	
-	/**
-	 * Returns this debug target's single thread, or <code>null</code>
-	 * if terminated.
-	 * 
-	 * @param threadId ID of the thread to return, or <code>0</code>
-	 * to return the first available thread
-	 * @return this debug target's single thread, or <code>null</code>
-	 * if terminated
-	 */
-	public PDAThread getThread(int threadId) {
-	    if (threadId > 0) {
-	        return (PDAThread)fThreads.get(new Integer(threadId));
-	    } else {
-    	    synchronized(fThreads) {
-    	        if (fThreads.size() > 0) {
-    	            return (PDAThread)fThreads.values().iterator().next();
-    	        }
-    	    }
-	    }
-		return null;
-	}
-}
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 b235690..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackFrame.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import org.eclipse.core.runtime.IPath;
-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;
-import org.eclipse.debug.examples.core.pda.protocol.PDAFrameData;
-
-/**
- * PDA stack frame.
- */
-public class PDAStackFrame extends PDADebugElement implements IStackFrame {
-	
-	private PDAThread fThread;
-	private String fName;
-	private int fPC;
-	private IPath fFilePath;
-	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, PDAFrameData data, int id) {
-		super(thread.getPDADebugTarget());
-		fId = id;
-		fThread = thread;
-		init(data);
-	}
-	
-	/**
-	 * Initializes this frame based on its data
-	 * 
-	 * @param data
-	 */
-	private void init(PDAFrameData data) {
-		fFilePath = data.fFilePath;
-		fPC = data.fPC + 1;
-		fName = data.fFunction;
-		IVariable[] vars = new IVariable[data.fVariables.length];
-		for (int i = 0; i < data.fVariables.length; i++) {
-			vars[i] = new PDAVariable(this, data.fVariables[i]);
-		}
-		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 fFilePath.lastSegment();
-	}
-	/* (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;
-	}
-	
-    /**
-     * Returns the stack frame's thread's unique identifier
-     * 
-     * @return this stack frame's thread's unique identifier
-     * 
-     * @since 3.5
-     */
-	protected int getThreadIdentifier() {
-	    return fThread.getIdentifier();
-	}
-	
-}
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 a7909d4..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAStackValue.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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;
-
-/**
- * A value on the data stack
- */
-public class PDAStackValue extends PDADebugElement implements IValue {
-
-    final private PDAThread fThread;
-    final private String fValue;
-    final 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(PDAThread thread, String value, int index) {
-		super(thread.getDebugTarget());
-		fThread = thread;
-		fValue = value;
-		fIndex = index;
-	}
-	
-	public PDAThread getThread() {
-	    return fThread;
-	}
-	
-    /* (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 false;
-    }
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName()
-     */
-    public String getReferenceTypeName() throws DebugException {
-        return null;
-    }
-	/*
-	 *  (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-    public boolean equals(Object obj) {
-        return obj instanceof PDAStackValue && 
-            ((PDAStackValue)obj).fValue.equals(fValue) && 
-            ((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 8d92f12..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAThread.java
+++ /dev/null
@@ -1,563 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.model;
-
-import java.util.Collections;
-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.IValue;
-import org.eclipse.debug.core.model.IVariable;
-import org.eclipse.debug.examples.core.pda.protocol.PDADataCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDADropFrameCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAListResult;
-import org.eclipse.debug.examples.core.pda.protocol.PDANoSuchLabelEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAPopDataCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAPushDataCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAResumeCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAResumedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDARunControlEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAStackCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAStackCommandResult;
-import org.eclipse.debug.examples.core.pda.protocol.PDAStepCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDASuspendCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDASuspendedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAUnimplementedInstructionEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMResumedEvent;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendedEvent;
-
-/**
- * A PDA thread. A PDA VM is single threaded.
- */
-public class PDAThread extends PDADebugElement implements IThread, IPDAEventListener {
-	
-    /**
-     * ID of this thread as reported by PDA.
-     */
-    private final int fThreadId;
-    
-	/**
-	 * Breakpoint this thread is suspended at or <code>null</code>
-	 * if none.
-	 */
-	private IBreakpoint fBreakpoint;
-	
-	/**
-	 * Whether this thread is stepping
-	 */
-	private boolean fStepping = false;
-	
-	/**
-	 * Whether 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 = Collections.synchronizedMap(new HashMap());
-	
-	/**
-	 * Constructs a new thread for the given target
-	 * 
-	 * @param target VM
-	 */
-	public PDAThread(PDADebugTarget target, int threadId) {
-		super(target);
-		fThreadId = threadId;
-	}
-	
-	/**
-	 * Called by the debug target after the thread is created.
-	 * 
-	 * @since 3.5
-	 */
-	void start() {
-	    fireCreationEvent();
-        getPDADebugTarget().addEventListener(this);
-	}
-	
-    /**
-     * Called by the debug target before the thread is removed.
-     * 
-     * @since 3.5
-     */
-	void exit() {
-        getPDADebugTarget().removeEventListener(this);
-        fireTerminateEvent();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IThread#getStackFrames()
-	 */
-	public IStackFrame[] getStackFrames() throws DebugException {
-		if (isSuspended()) {
-		    PDAStackCommandResult result = (PDAStackCommandResult)sendCommand(new PDAStackCommand(fThreadId));
-            IStackFrame[] frames = new IStackFrame[result.fFrames.length];
-		    for (int i = 0; i < result.fFrames.length; i++) {
-		        frames[frames.length - i - 1] = new PDAStackFrame(this, result.fFrames[i], i);
-			}
-            return frames;
-		}
-		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 synchronized 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 synchronized void suspendedBy(IBreakpoint breakpoint) {
-		fBreakpoint = breakpoint;
-		suspended(DebugEvent.BREAKPOINT);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
-	 */
-	public boolean canResume() {
-		return isSuspended() && !getDebugTarget().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() {
-	    if (getDebugTarget().isTerminated()) {
-	        return false;
-	    }
-	    if (getDebugTarget().isSuspended()) {
-	        return true;
-	    }
-	    synchronized (this) {
-	        return fSuspended;
-	    }
-	}
-	/* (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
-		sendCommand(new PDAResumeCommand(fThreadId));
-		//#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
-	    sendCommand(new PDASuspendCommand(fThreadId));
-		//#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 {
-		sendCommand(new PDAStepCommand(fThreadId));
-	}
-	/* (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 {
-	    getDebugTarget().terminate();
-	}
-	
-	/**
-	 * Sets whether this thread is stepping
-	 * 
-	 * @param stepping whether stepping
-	 */
-	private synchronized void setStepping(boolean stepping) {
-		fStepping = stepping;
-	}
-	
-	/**
-	 * Sets whether this thread is suspended
-	 * 
-	 * @param suspended whether suspended
-	 */
-	private synchronized  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 synchronized void setError(String event) {
-		fErrorEvent = event;
-	}
-
-	/**
-	 * Returns the most recent error event encountered since the last
-	 * suspend, or <code>null</code> if none.
-	 * 
-	 * @return the most recent 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(PDAEvent _event) {
-	    if (_event instanceof PDARunControlEvent && fThreadId == ((PDARunControlEvent)_event).fThreadId) {
-	        PDARunControlEvent event = (PDARunControlEvent)_event;
-    		// clear previous state
-    		fBreakpoint = null;
-    		setStepping(false);
-    		
-    		// handle events
-    		if (event instanceof PDAResumedEvent || event instanceof PDAVMResumedEvent) {
-    			setSuspended(false);
-    			if ("step".equals(event.fReason)) {
-    				setStepping(true);
-    				resumed(DebugEvent.STEP_OVER);
-    			//#ifdef ex2
-    //#			}
-    //#			// TODO: Exercise 2 - handle/fire "client" resume event
-    			//#else	
-    			} else if ("client".equals(event.fReason)) {
-    				resumed(DebugEvent.CLIENT_REQUEST);
-    			}
-    			//#endif
-    			//#ifdef ex5
-    //#			// TODO: Exercise 5 - handle start of drop event
-    			//#else
-    			else if ("drop".equals(event.fReason)) {
-    				resumed(DebugEvent.STEP_RETURN);
-    			}
-    			//#endif
-    		} else if (event instanceof PDASuspendedEvent || event instanceof PDAVMSuspendedEvent) {
-    			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 ("client".equals(event.fReason)) {
-    				suspended(DebugEvent.CLIENT_REQUEST);
-    			} else if ("step".equals(event.fReason)) {
-    				suspended(DebugEvent.STEP_END);
-    			} else if ("event".equals(event.fReason) && getError() != null) {
-    				exceptionHit();
-    			} 
-    			//#endif
-    			//#ifdef ex5
-    //#			// TODO: Exercise 5 - handle end of drop event
-    			//#else
-    			else if ("drop".equals(event.fReason)) {
-    				suspended(DebugEvent.STEP_END);
-    			}
-    			//#endif
-    		} else if (_event instanceof PDANoSuchLabelEvent ||
-    		           _event instanceof PDAUnimplementedInstructionEvent) 
-    		{
-    			setError(event.fMessage);
-    		}
-	    }    		
-	}
-	
-	/**
-	 * 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);
-		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
-     * 
-     * @since 3.5
-	 */
-	public void popFrame() throws DebugException {
-		//#ifdef ex5
-//#		// TODO: Exercise 5 - send drop request		
-		//#else
-		sendCommand(new PDADropFrameCommand(fThreadId));
-		//#endif
-	}
-	
-	/**
-	 * Returns whether this thread can pop the top stack frame.
-	 *
-	 * @return whether this thread can pop the top stack frame
-	 * 
-	 * @since 3.5
-	 */
-	public boolean canPopFrame() {
-		//#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;
-	}
-	
-    /**
-     * Returns the values on the data stack (top down)
-     * 
-     * @return the values on the data stack (top down)
-     * 
-     * @since 3.5
-     */
-    public IValue[] getDataStack() throws DebugException {
-        PDAListResult result = (PDAListResult)sendCommand(new PDADataCommand(fThreadId));
-        if (result.fValues.length > 0) {
-            IValue[] values = new IValue[result.fValues.length];
-            for (int i = 0; i < result.fValues.length; i++) {
-                values[values.length - i - 1] = new PDAStackValue(this, result.fValues[i], i);
-            }
-            return values;
-        }
-        return new IValue[0];       
-    }
-    	   
-    /**
-     * Returns whether popping the data stack is currently permitted
-     *  
-     * @return whether popping the data stack is currently permitted
-     * 
-     * @since 3.5
-     */
-    public boolean canPopData() {
-        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
-     * 
-     * @since 3.5
-     */
-    public IValue popData() throws DebugException {
-        IValue[] dataStack = getDataStack();
-        if (dataStack.length > 0) {
-            sendCommand(new PDAPopDataCommand(fThreadId));
-            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
-     * 
-     * @since 3.5
-     */
-    public boolean canPushData() {
-        return !isTerminated() && isSuspended();
-    }
-    
-    /**
-     * Pushes a value onto the stack.
-     * 
-     * @param value value to push
-     * @throws DebugException on failure
-     * 
-     * @since 3.5
-     */
-    public void pushData(String value) throws DebugException {
-        sendCommand(new PDAPushDataCommand(fThreadId, value));
-    }
-
-    /**
-     * Returns this thread's unique identifier
-     * 
-     * @return this thread's unique identifier
-     * 
-     * @since 3.5
-     */
-	public int getIdentifier() {
-	    return fThreadId;
-	}
-}
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 a4c6cc7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAValue.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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;
-import org.eclipse.debug.examples.core.pda.protocol.PDAChildrenCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAListResult;
-
-/**
- * Value of a PDA variable.
- */
-public class PDAValue extends PDADebugElement implements IValue {
-	
-    final private PDAVariable fVariable;
-	final private String fValue;
-	
-	public PDAValue(PDAVariable variable, String value) {
-		super(variable.getStackFrame().getPDADebugTarget());
-		fVariable = variable;
-		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 {
-	    PDAStackFrame frame = fVariable.getStackFrame();
-	    PDAListResult result =  (PDAListResult) sendCommand(
-	        new PDAChildrenCommand(frame.getThreadIdentifier(), frame.getIdentifier(), fVariable.getName()) );
-	    
-	    IVariable[] children = new IVariable[result.fValues.length];
-	    for(int i = 0; i < result.fValues.length; i++) {
-	        children[i] = new PDAVariable(frame, result.fValues[i]);
-	    }
-		return children;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.model.IValue#hasVariables()
-	 */
-	public boolean hasVariables() throws DebugException {
-	    if (getVariables().length != 0) {
-	        return true;
-	    }
-	    // Value with multiple words can be show as an array using logical 
-	    // structures. If the value has multiple words, it needs to indicate 
-	    // that it has children even if logical structures are not turned on.
-		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();
-    }
-    
-    /**
-     * Returns the variable that this value was created for.
-     * 
-     * @return The variable that this value was created for.
-     * 
-     * @since 3.5
-     */
-    public PDAVariable getVariable() {
-        return fVariable;
-    }
-}
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 2329b58..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/model/PDAVariable.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Wind River Systems - added support for IToggleBreakpointsTargetFactory
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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;
-import org.eclipse.debug.examples.core.pda.protocol.PDACommandResult;
-import org.eclipse.debug.examples.core.pda.protocol.PDASetVarCommand;
-import org.eclipse.debug.examples.core.pda.protocol.PDAVarCommand;
-
-/**
- * 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 {
-		PDACommandResult result = sendCommand(new PDAVarCommand(
-		    fFrame.getThreadIdentifier(), getStackFrame().getIdentifier(), getName()));
-		return new PDAValue(this, result.fResponseText);
-	}
-	
-	/* (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 {
-        sendCommand(new PDASetVarCommand(
-            fFrame.getThreadIdentifier(), 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
-	 */
-	public 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/protocol/PDABitFieldData.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDABitFieldData.java
deleted file mode 100644
index a1cf5e3..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDABitFieldData.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-/**
- * Object representing a bit field in the stack command results.
- * 
- * @see PDARegistersCommand 
- */
-public class PDABitFieldData {
-
-    final public String fName;
-    final public int fOffset;
-    final public int fCount;
-    final public Map fMnemonics;
-    
-    PDABitFieldData(String bitFieldString) {
-        StringTokenizer st = new StringTokenizer(bitFieldString, "   ");
-        
-        fName = st.nextToken();
-        fOffset = Integer.parseInt(st.nextToken());
-        fCount = Integer.parseInt(st.nextToken());
-        
-        fMnemonics = new LinkedHashMap(0);
-        while (st.hasMoreTokens()) {
-            fMnemonics.put(st.nextToken(), st.nextToken());
-        }
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAChildrenCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAChildrenCommand.java
deleted file mode 100644
index f9a3f00..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAChildrenCommand.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Retrieves data stack information 
- * 
- * <pre>
- *    C: children {thread_id} {frame_id} {variable_name}
- *    R: {child variable 1}|{child variable 2}|{child variable 3}|...|
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-public class PDAChildrenCommand extends PDACommand {
-
-    public PDAChildrenCommand(int threadId, int frameId, String name  ) {
-        super("children " + threadId + " " + frameId + " " + name);
-    }
-    
-    public PDACommandResult createResult(String resultText) {
-        return new PDAListResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAClearBreakpointCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAClearBreakpointCommand.java
deleted file mode 100644
index 07dba5b..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAClearBreakpointCommand.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Clears any breakpoint set on given line
- * 
- * <pre>
- *    C: clear {line}
- *    R: ok
- * </pre>
- */
-public class PDAClearBreakpointCommand extends PDACommand {
-
-    public PDAClearBreakpointCommand(int line) {
-        super("clear " + line);
-    }
-    
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommand.java
deleted file mode 100644
index 9aa2bfb..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommand.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Base class for PDA commands.  Sub-classes should format the request string 
- * and implement the method to create the proper result object.
- */
-abstract public class PDACommand {
-
-    final private String fRequest;
-    
-    public PDACommand(String request) {
-        fRequest = request;
-    }
-    
-    /**
-     * Returns the request to be sent to PDA. 
-     */
-    public String getRequest() {
-        return fRequest;
-    }
-
-    /**
-     * Returns the command result based on the given PDA response.  This command 
-     * uses the class type parameter as the return type to allow the compiler to 
-     * enforce the correct command result.  This class must be implemented by 
-     * each command to create the concrete result type. 
-     */
-    abstract public PDACommandResult createResult(String resultText);
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommandResult.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommandResult.java
deleted file mode 100644
index 9991b01..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDACommandResult.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-
-/**
- * Basic command result object.  This command result simply allows access to the 
- * PDA response.  Sub-classes may override to optionally parse the response text
- * and return higher-level objects.
- */
-public class PDACommandResult {
-
-    final public String fResponseText;
-    
-    public PDACommandResult(String response) {
-        fResponseText = response;
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADataCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADataCommand.java
deleted file mode 100644
index 66ba35a..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADataCommand.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Return the contents of the data stack; reply is the data from oldest to newest 
- * as a single string 
- * 
- * <pre>
- *    C: data {thread_id}
- *    R: {value 1}|{value 2}|{value 3}|...|
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-public class PDADataCommand extends PDACommand {
-
-    public PDADataCommand(int threadId) {
-        super("data " + threadId);
-    }
-    
-    public PDACommandResult createResult(String resultText) {
-        return new PDAListResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADropFrameCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADropFrameCommand.java
deleted file mode 100644
index 2204fa1..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDADropFrameCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Pops the top stack frame off the call stack setting the instruction pointer to 
- * the calling statement in the calling frame 
- * 
- * <pre>
- * If VM running:
- *    C: drop {thread_id}
- *    R: ok
- *    E: resumed {thread_id} drop
- *    E: suspended {thread_id} drop
- *    
- * If VM suspended:
- *    C: drop {thread_id}
- *    R: ok
- *    E: vmresumed drop
- *    E: vmsuspended {thread_id} drop
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-public class PDADropFrameCommand extends PDACommand {
-
-    public PDADropFrameCommand(int threadId) {
-        super("drop " + threadId);
-    }
-    
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalCommand.java
deleted file mode 100644
index bb0bdc6..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Causes the interperter to execute the given set of instructions.  At the end 
- * of the evaluation the top value is poped off the stack and returned in the
- * evaluation result.
- * 
- * <pre>
- *    C: eval {thread_id} {instruction}%20{parameter}|{instruction}%20{parameter}|...
- *    R: ok
- *    E: resumed {thread_id} client
- *    E: evalresult result
- *    E: suspended {thread_id} eval
- *    
- * Errors:
- *    error: invalid thread
- *    error: cannot evaluate while vm is suspended
- *    error: thread running        
- * </pre>
- * 
- * Where event_name could be <code>unimpinstr</code> or <code>nosuchlabel</code>.  
- */
-public class PDAEvalCommand extends PDACommand {
-
-    public PDAEvalCommand(int threadId, String operation) {
-        super("eval " + threadId + " " + operation);
-    }
-    
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalResultEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalResultEvent.java
deleted file mode 100644
index 7201476..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvalResultEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Eval result event generated when an evaluation has completed. 
- * 
- * <pre>
- *    E: evalresult {result}
- * </pre>
- */
-public class PDAEvalResultEvent extends PDAEvent {
-    
-    public final String fResult;
-    
-    public PDAEvalResultEvent(String message) {
-        super(message);
-        fResult = message.substring(getName(message).length() + 1);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("evalresult");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvent.java
deleted file mode 100644
index ab841bf..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEvent.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Base class for PDA events.
- */
-public class PDAEvent {
-    public final String fMessage;
-    public final String fName;
-    
-    public PDAEvent(String message) {
-        fMessage = message;
-        fName = getName(message);
-    }
-    
-    protected String getName(String message) {
-        int nameEnd = message.indexOf(' ');
-        nameEnd = nameEnd == -1 ? message.length() : nameEnd;
-        return message.substring(0, nameEnd);
-    }
-    
-    public static PDAEvent parseEvent(String message) {
-        if (PDAEvalResultEvent.isEventMessage(message)) {
-            return new PDAEvalResultEvent(message);
-        } 
-        else if (PDAExitedEvent.isEventMessage(message)) {
-            return new PDAExitedEvent(message);
-        } 
-        else if (PDANoSuchLabelEvent.isEventMessage(message)) {
-            return new PDANoSuchLabelEvent(message);
-        } 
-        else if (PDARegistersEvent.isEventMessage(message)) {
-            return new PDARegistersEvent(message);
-        } 
-        else if (PDAResumedEvent.isEventMessage(message)) {
-            return new PDAResumedEvent(message);
-        } 
-        else if (PDAStartedEvent.isEventMessage(message)) {
-            return new PDAStartedEvent(message);
-        } 
-        else if (PDASuspendedEvent.isEventMessage(message)) {
-            return new PDASuspendedEvent(message);
-        } 
-        else if (PDATerminatedEvent.isEventMessage(message)) {
-            return new PDATerminatedEvent(message);
-        } 
-        else if (PDAUnimplementedInstructionEvent.isEventMessage(message)) {
-            return new PDAUnimplementedInstructionEvent(message);
-        } 
-        else if (PDAVMResumedEvent.isEventMessage(message)) {
-            return new PDAVMResumedEvent(message);
-        } 
-        else if (PDAVMStartedEvent.isEventMessage(message)) {
-            return new PDAVMStartedEvent(message);
-        } 
-        else if (PDAVMSuspendedEvent.isEventMessage(message)) {
-            return new PDAVMSuspendedEvent(message);
-        } 
-        else if (PDAExitedEvent.isEventMessage(message)) {
-            return new PDAExitedEvent(message);
-        } 
-        else {
-            return new PDAEvent(message);
-        } 
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEventStopCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEventStopCommand.java
deleted file mode 100644
index f538c0d..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAEventStopCommand.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Optionally stop the interpreter when an error event <code>event_name</code> 
- * is encountered; <code>{0|1}</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>).
- * 
- * <pre>
- *    C: eventstop {event_name} {0|1}
- *    R: ok
- *    ...
- *    E: suspended event {event_name}
- * </pre>
- * 
- * Where event_name could be <code>unimpinstr</code> or <code>nosuchlabel</code>.  
- */
-
-public class PDAEventStopCommand extends PDACommand {
-
-    public static final int UNIMPINSTR = 0;
-    public static final int NOSUCHLABEL = 1;
-    
-    public PDAEventStopCommand(int event, boolean enable) {
-        super("eventstop " + 
-              (event == UNIMPINSTR ? "unimpinstr " : "nosuchlabel ") + 
-              (enable ? "1" : "0"));
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAExitedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAExitedEvent.java
deleted file mode 100644
index f452e81..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAExitedEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Exited event generated when a thread has exited.
- * 
- * <pre>
- *    E: started {thread_id}
- * </pre>
- */
-public class PDAExitedEvent extends PDARunControlEvent {
-    
-    public PDAExitedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("exited");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommand.java
deleted file mode 100644
index c2a83af..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommand.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Retrieves command stack frame information for frame <code>frame_number</code>
- * (stack frames are indexed from 0, 0 being the oldest).  
- * 
- * <pre>
- *    C: stack {thread_id} {frame_number}
- *    R: {file}|{line}|{function}|{var_1}|{var_2}|...
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-public class PDAFrameCommand extends PDACommand {
-
-    public PDAFrameCommand(int threadId, int frameNum) {
-        super("frame " + threadId + " " + frameNum);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDAFrameCommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommandResult.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommandResult.java
deleted file mode 100644
index f52af48..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameCommandResult.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-
-/**
- * @see PDAFrameCommand
- */
-
-public class PDAFrameCommandResult extends PDACommandResult {
-    
-    /**
-     * Frame data return by the frame command.
-     */
-    final public PDAFrameData fFrame;
-    
-    PDAFrameCommandResult(String response) {
-        super(response);
-        fFrame = new PDAFrameData(response);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameData.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameData.java
deleted file mode 100644
index d3f9bbc..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAFrameData.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * Object representing a frame in the stack command results.
- * 
- * @see PDAStackCommand 
- */
-
-public class PDAFrameData {
-
-    final public IPath fFilePath;
-    final public int fPC;
-    final public String fFunction;
-    final public String[] fVariables;
-    
-    PDAFrameData(String frameString) {
-        StringTokenizer st = new StringTokenizer(frameString, "|");
-        
-        fFilePath = new Path(st.nextToken());
-        fPC = Integer.parseInt(st.nextToken());
-        fFunction = st.nextToken();
-        
-        List variablesList = new ArrayList();
-        while (st.hasMoreTokens()) {
-            variablesList.add(st.nextToken());
-        }
-        fVariables = (String[])variablesList.toArray(new String[variablesList.size()]);
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAGroupsCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAGroupsCommand.java
deleted file mode 100644
index 4e6f1eb..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAGroupsCommand.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Retrieves register groups information 
- * 
- * <pre>
- *    C: groups
- *    R: {group 1}|{group 2}|{group 3}|...|
- * </pre>
- */
-
-public class PDAGroupsCommand extends PDACommand {
-
-    public PDAGroupsCommand() {
-        super("groups");
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDAListResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAListResult.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAListResult.java
deleted file mode 100644
index 4abab97..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAListResult.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-
-/**
- * @see PDADataCommand
- */
-
-public class PDAListResult extends PDACommandResult {
-    
-    final public String[] fValues;
-    
-    PDAListResult(String response) {
-        super(response);
-        StringTokenizer st = new StringTokenizer(response, "|");
-        List valuesList = new ArrayList();
-        
-        while (st.hasMoreTokens()) {
-            String token = st.nextToken();
-            if (token.length() != 0) {
-                valuesList.add(token);
-            }
-        }
-        
-        fValues = new String[valuesList.size()];
-        for (int i = 0; i < valuesList.size(); i++) {
-            fValues[i] = (String)valuesList.get(i);
-        }
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDANoSuchLabelEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDANoSuchLabelEvent.java
deleted file mode 100644
index b85ca86..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDANoSuchLabelEvent.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * No Such Label event generated when the PDA program encounters an call to a
- * non-existant label in a PDA program.
- * 
- * <pre>
- *    E: no such label {label}
- * </pre>
- */
-public class PDANoSuchLabelEvent extends PDAEvent {
-    
-    public final String fLabel;
-    
-    public PDANoSuchLabelEvent(String message) {
-        super(message);
-        fLabel = message.substring(getName(message).length() + 1);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("no such label");
-    }
-    
-    protected String getName(String message) {
-        if (isEventMessage(message)) {
-            return "no such label";
-        }
-        throw new IllegalArgumentException("Invalid event: " + message);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPopDataCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPopDataCommand.java
deleted file mode 100644
index be04801..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPopDataCommand.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Pops the top value from the data stack  
- * 
- * <pre>
- *    C: popdata {thread_id}
- *    R: ok
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-public class PDAPopDataCommand extends PDACommand {
-
-    public PDAPopDataCommand(int threadId) {
-        super("popdata " + threadId);
-    }
-    
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPushDataCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPushDataCommand.java
deleted file mode 100644
index 10837ea..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAPushDataCommand.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Pushes the given value on top of the data stack.
- * 
- * <pre>
- *    C: pushdata {thread_id} {value}
- *    R: ok
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-
-public class PDAPushDataCommand extends PDACommand {
-
-    public PDAPushDataCommand(int threadId, String value) {
-        super("pushdata " + threadId + " " + value);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegisterData.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegisterData.java
deleted file mode 100644
index 81be710..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegisterData.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-/**
- * Object representing a register in the registers command results.
- * 
- * @see PDARCommand 
- */
-
-public class PDARegisterData {
-
-    final public String fName;
-    final public boolean fWritable;
-    final public PDABitFieldData[] fBitFields;
-    
-    PDARegisterData(String regString) {
-        StringTokenizer st = new StringTokenizer(regString, "|");
-        
-        String regInfo = st.nextToken();
-        StringTokenizer regSt = new StringTokenizer(regInfo, " ");
-        fName = regSt.nextToken();
-        fWritable = Boolean.getBoolean(regSt.nextToken());
-        
-        List bitFieldsList = new ArrayList();
-        while (st.hasMoreTokens()) {
-            bitFieldsList.add(new PDABitFieldData(st.nextToken()));
-        }
-        fBitFields = (PDABitFieldData[])bitFieldsList.toArray(new PDABitFieldData[bitFieldsList.size()]);
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommand.java
deleted file mode 100644
index 2e766ca..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommand.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Retrieves registers definition information 
- * 
- * <pre>
- *    C: registers {group name}
- *    R: {register name} {true|false}|{bit field name} {start bit} {bit count} {mnemonic 1} {mnemonic 2} ...#{register name} ...
- * </pre>
- */
-
-public class PDARegistersCommand extends PDACommand {
-
-    public PDARegistersCommand(String group) {
-        super("registers " + group);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDARegistersCommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommandResult.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommandResult.java
deleted file mode 100644
index f5d4cd9..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersCommandResult.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-
-/**
- * @see PDARegistersCommand
- */
-
-public class PDARegistersCommandResult extends PDACommandResult {
-    
-    /**
-     * Array of registers returned by the registers commands.  
-     */
-    final public PDARegisterData[] fRegisters;
-    
-    PDARegistersCommandResult(String response) {
-        super(response);
-        StringTokenizer st = new StringTokenizer(response, "#");
-        List regList = new ArrayList();
-        
-        while (st.hasMoreTokens()) {
-            regList.add(new PDARegisterData(st.nextToken()));
-        }
-        fRegisters = (PDARegisterData[])regList.toArray(new PDARegisterData[regList.size()]);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersEvent.java
deleted file mode 100644
index 9212273..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARegistersEvent.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Registers event generated when the registers' definitions are changed in a 
- * program.
- * 
- * <pre>
- *    E: registers
- * </pre>
- */
-public class PDARegistersEvent extends PDAEvent {
-    
-    public PDARegistersEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("registers");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumeCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumeCommand.java
deleted file mode 100644
index bf65d40..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumeCommand.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Resumes the execution of a single thread.  Can be issued only if the virtual 
- * machine is running.
- * 
- * <pre>
- *    C: resume {thread_id}
- *    R: ok
- *    E: resumed {thread_id} client
- *    
- * Errors:
- *    error: invalid thread
- *    error: cannot resume thread when vm is suspended
- *    error: thread already running
- * </pre>
- */
-
-public class PDAResumeCommand extends PDACommand {
-
-    public PDAResumeCommand(int threadId) {
-        super("resume " + threadId);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumedEvent.java
deleted file mode 100644
index 36f89ed..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAResumedEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Resumed event generated when a thread is resumed.
- * 
- * <pre>
- *    E: resumed {thread_id} [reason]
- * </pre>
- */
-public class PDAResumedEvent extends PDARunControlEvent {
-    
-    public PDAResumedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("resumed");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARunControlEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARunControlEvent.java
deleted file mode 100644
index e3af4eb..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDARunControlEvent.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Base class for run-control events.
- */
-public class PDARunControlEvent extends PDAEvent {
-    
-    public final int fThreadId;
-    public final String fReason;
-    
-    public PDARunControlEvent(String message) {
-        super(message);
-        fThreadId = getThreadId(message);
-        fReason = getStateChangeReason(message);
-    }
-    
-    protected int getThreadId(String message) {
-        int nameEnd = getName(message).length();
-        if ( Character.isDigit(message.charAt(nameEnd + 1)) ) {
-            int threadIdEnd = message.indexOf(' ', nameEnd + 1);
-            threadIdEnd = threadIdEnd == -1 ? message.length() : threadIdEnd;
-            try {
-                return Integer.parseInt(message.substring(nameEnd + 1, threadIdEnd));
-            } catch (NumberFormatException e) {
-                throw new IllegalArgumentException("Invalid event: " + message);                
-            }
-        } else {
-            return -1;
-        }
-    }
-
-    protected String getStateChangeReason(String message) {
-        int idx = getName(message).length();
-        if ( Character.isDigit(message.charAt(idx + 1)) ) {
-            idx = message.indexOf(' ', idx + 1);
-            idx = idx == -1 ? message.length() : idx + 1;
-        } else {
-            idx++;
-        }
-        if (idx >=  message.length()) {
-            return "";
-        }
-
-        int endIdx = message.indexOf(' ', idx);
-        endIdx = endIdx == -1 ? message.length() : endIdx;
-        return message.substring(idx, endIdx);
-    }
-    
-    protected String getName(String message) {
-        int nameEnd = message.indexOf(' ');
-        nameEnd = nameEnd == -1 ? message.length() : nameEnd;
-        return message.substring(0, nameEnd);
-    }
-
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("started");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetBreakpointCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetBreakpointCommand.java
deleted file mode 100644
index 1abb7fa..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetBreakpointCommand.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Sets a breakpoint at given line
- * 
- * <pre>
- * Suspend a single thread:
- *    C: set {line_number} 0
- *    R: ok
- *    C: resume {thread_id}
- *    E: resumed {thread_id} client
- *    E: suspended {thread_id} breakpoint line_number
- *    
- * Suspend the VM:
- *    C: set {line_number} 1
- *    R: ok
- *    C: vmresume
- *    E: vmresumed client
- *    E: vmsuspended {thread_id} breakpoint line_number
- * </pre>
- */
-
-public class PDASetBreakpointCommand extends PDACommand {
-
-    public PDASetBreakpointCommand(int line, boolean stopVM) {
-        super("set " + 
-              line + " " + 
-              (stopVM ? "1" : "0"));
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetDataCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetDataCommand.java
deleted file mode 100644
index e0c22db..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetDataCommand.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Sets a data value in the data stack at the given location (the data stack is 
- * indexed from 0, 0 being the oldest).
- * 
- * <pre>
- *    C: setdata {thread_id} {index} {value}
- *    R: ok
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-public class PDASetDataCommand extends PDACommand {
-
-    public PDASetDataCommand(int threadId, int index, String value) {
-        super("setdata " + threadId + " " + index + " " + value);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetVarCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetVarCommand.java
deleted file mode 100644
index c5f6b09..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASetVarCommand.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Set the contents of variable <code>variable</code> from the control stack 
- * <code>frame_number</code> to value <code>value</code> (the control stack is 
- * indexed from 0, 0 being the oldest). 
- * 
- * <pre>
- *    C: setvar {thread_id} {frame_number} {variable} {value}
- *    R: ok
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-
-public class PDASetVarCommand extends PDACommand {
-
-    public PDASetVarCommand(int threadId, int frame, String variable, String value) {
-        super("setvar " + threadId + " " + frame + " " + variable + " " + value);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommand.java
deleted file mode 100644
index 84545fe..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommand.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Return the contents of the control stack (program counters, function and
- * variable names). The 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>. 
- * 
- * <pre>
- *    C: stack {thread_id}
- *    R: {file}|{line}|{function}|{var_1}|{var_2}|...#{file}|{line}|{function}|{var_1}|{var_2}|...#...
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-
-public class PDAStackCommand extends PDACommand {
-
-    public PDAStackCommand(int threadId) {
-        super("stack " + threadId);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDAStackCommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommandResult.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommandResult.java
deleted file mode 100644
index e22aa12..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackCommandResult.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-
-/**
- * @see PDAStackCommand
- */
-
-public class PDAStackCommandResult extends PDACommandResult {
-    
-    /**
-     * Array of frames return by the stack commands.  The frames are ordered 
-     * with the highest-level frame first.
-     */
-    final public PDAFrameData[] fFrames;
-    
-    PDAStackCommandResult(String response) {
-        super(response);
-        StringTokenizer st = new StringTokenizer(response, "#");
-        List framesList = new ArrayList();
-        
-        while (st.hasMoreTokens()) {
-            framesList.add(new PDAFrameData(st.nextToken()));
-        }
-        fFrames = (PDAFrameData[])framesList.toArray(new PDAFrameData[framesList.size()]);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommand.java
deleted file mode 100644
index 6c04530..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommand.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Retrieves command stack depth 
- * 
- * <pre>
- *    C: stackdepth {thread_id}
- *    R: {depth}
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-
-public class PDAStackDepthCommand extends PDACommand {
-
-    public PDAStackDepthCommand(int threadId) {
-        super("stackdepth " + threadId);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDAStackDepthCommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommandResult.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommandResult.java
deleted file mode 100644
index e5ca2b9..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStackDepthCommandResult.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-
-/**
- * @see PDADataCommand
- */
-
-public class PDAStackDepthCommandResult extends PDACommandResult {
-    
-    final public int fDepth;
-    
-    PDAStackDepthCommandResult(String response) {
-        super(response);
-        int depth = 1; // default to something that won't cause NPEs
-        try {
-            depth = Integer.parseInt(response);
-        } catch (NumberFormatException e) {}
-        fDepth = depth;
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStartedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStartedEvent.java
deleted file mode 100644
index 6b980e1..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStartedEvent.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Started event generated when a new thread is started.  A started event 
- * is always sent for the first thread when a PDA program is started.
- * 
- * <pre>
- *    E: started {thread_id}
- * </pre>
- */
-public class PDAStartedEvent extends PDARunControlEvent {
-    
-    public PDAStartedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("started");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepCommand.java
deleted file mode 100644
index 3a21492..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Executes next instruction 
- * 
- * <pre>
- * If VM running:
- *    C: step {thread_id}
- *    R: ok
- *    E: resumed {thread_id} step
- *    E: suspended {thread_id} step
- *    
- * If VM suspended:
- *    C: step {thread_id}
- *    R: ok
- *    E: vmresumed step
- *    E: vmsuspended {thread_id} step
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-
-public class PDAStepCommand extends PDACommand {
-
-    public PDAStepCommand(int threadId) {
-        super("step " + threadId);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepReturnCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepReturnCommand.java
deleted file mode 100644
index 2a7fd95..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAStepReturnCommand.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Single step forward until the next <code>return</code> op code. Stop before 
- * executing the <code>return</code> . 
- * 
- * <pre>
- * If VM running:
- *    C: stepreturn {thread_id}
- *    R: ok
- *    E: resumed {thread_id} client
- *    E: suspended {thread_id} step
- *    
- * If VM suspended:
- *    C: stepreturn {thread_id}
- *    R: ok
- *    E: vmresumed client
- *    E: vmsuspended {thread_id} step
- *    
- * Errors:
- *    error: invalid thread
- * </pre>
- */
-
-public class PDAStepReturnCommand extends PDACommand {
-
-    public PDAStepReturnCommand(int threadId) {
-        super("stepreturn " + threadId);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendCommand.java
deleted file mode 100644
index fb124d3..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendCommand.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Suspends execution of a single thread.  Can be issued only if the virtual 
- * machine is running.
- * 
- * <pre>
- *    C: suspend {thread_id}
- *    R: ok
- *    E: suspended {thread_id} client
- *    
- * Errors:
- *    error: invalid thread
-      error: vm already suspended
- *    error: thread already suspended
- * </pre>
- */
-
-public class PDASuspendCommand extends PDACommand {
-
-    public PDASuspendCommand(int threadId) {
-        super("suspend " + threadId);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendedEvent.java
deleted file mode 100644
index b226347..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDASuspendedEvent.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Suspended event generated when a thread is suspended.
- * 
- * <pre>
- *    E: suspended {thread_id} [reason]
- * </pre>
- * 
- * <code>[reason]</code> is the cause of the suspension and it's optional:
- * <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>
-
- */
-public class PDASuspendedEvent extends PDARunControlEvent {
-    
-    public PDASuspendedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("suspended");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminateCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminateCommand.java
deleted file mode 100644
index 3e91596..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminateCommand.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Instructs the debugger to terminate.
- * 
- * <pre>
- *    C: terminate
- *    R: ok
- *    E: vmterminated
- * </pre>
- */
-
-public class PDATerminateCommand extends PDACommand {
-
-    public PDATerminateCommand() {
-        super("terminate");
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminatedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminatedEvent.java
deleted file mode 100644
index 648e838..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDATerminatedEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Terminated event generated when the PDA program has ended execution.
- * 
- * <pre>
- *    E: termianted
- * </pre>
- */
-public class PDATerminatedEvent extends PDAEvent {
-    
-    public PDATerminatedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("terminated");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAUnimplementedInstructionEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAUnimplementedInstructionEvent.java
deleted file mode 100644
index 7a0ce54..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAUnimplementedInstructionEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Unimplemented Instruction event generated when the PDA program encounters 
- * an instruction that it does not recognize.  This event is usually followed
- * by a VM Suspended event.
- * 
- * <pre>
- *    E: unimplemented instruction {label}
- * </pre>
- */
-public class PDAUnimplementedInstructionEvent extends PDAEvent {
-    
-    public final String fOperation;
-    
-    public PDAUnimplementedInstructionEvent(String message) {
-        super(message);
-        fOperation = message.substring(getName(message).length() + 1);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("unimplemented instruction");
-    }
-    
-    protected String getName(String message) {
-        if (isEventMessage(message)) {
-            return "unimplemented instruction";
-        }
-        throw new IllegalArgumentException("Invalid event: " + message);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumeCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumeCommand.java
deleted file mode 100644
index 85ca473..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumeCommand.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Resumes the execution of the whole virtual machine  
- * 
- * <pre>
- *    C: vmresume
- *    R: ok
- *    E: vmresumed client
- *    
- * Errors:
- *    error: vm already running
- * </pre>
- */
-
-public class PDAVMResumeCommand extends PDACommand {
-
-    public PDAVMResumeCommand() {
-        super("vmresume");
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumedEvent.java
deleted file mode 100644
index 74801c6..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMResumedEvent.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * VM Resumed event generated when the whole virtual machine is resumed.  When 
- * the VM is resumed all previously suspended threads are resumed as well. 
- * 
- * <pre>
- *    E: vmresumed [reason]
- * </pre>
- * 
- * <code>[reason]</code> is the cause of the resume: and it's optional:
- * <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>
- */
-public class PDAVMResumedEvent extends PDARunControlEvent {
-    
-    public PDAVMResumedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("vmresumed");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMStartedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMStartedEvent.java
deleted file mode 100644
index ff5f1dc..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMStartedEvent.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * VM started event generated when the the interpreter has started (guaranteed 
- * to be the first event sent)
- * 
- * <pre>
- *    E: vmstarted
- * </pre>
- */
-public class PDAVMStartedEvent extends PDAEvent {
-    
-    public PDAVMStartedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("vmstarted");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendCommand.java
deleted file mode 100644
index ad62d33..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendCommand.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Suspends the execution of the whole virtual machine 
- * 
- * <pre>
- *    C: vmsuspend
- *    R: ok
- *    E: vmsuspended client
- *    
- * Errors:
- *    error: thread already suspended
- * </pre>
- */
-
-public class PDAVMSuspendCommand extends PDACommand {
-
-    public PDAVMSuspendCommand() {
-        super("vmsuspend");
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendedEvent.java
deleted file mode 100644
index 0e36297..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMSuspendedEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * VM Suspended event generated when the virtual machine is suspended.  If the VM
- * is suspended as a result of a thread event (e.g. thread hitting a breakpoint), 
- * then the thread_id is included in the event.
- * 
- * <pre>
- *    E: vmsuspended [thread_id] {reason}
- * </pre>
- * 
- * <code>{reason}</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>
- */
-public class PDAVMSuspendedEvent extends PDARunControlEvent {
-    
-    public PDAVMSuspendedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("vmsuspended");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMTerminatedEvent.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMTerminatedEvent.java
deleted file mode 100644
index 3487786..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVMTerminatedEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-/**
- * Terminated event generated when the PDA program has ended execution.
- * 
- * <pre>
- *    E: termianted
- * </pre>
- */
-public class PDAVMTerminatedEvent extends PDAEvent {
-    
-    public PDAVMTerminatedEvent(String message) {
-        super(message);
-    }
-    
-    public static boolean isEventMessage(String message) {
-        return message.startsWith("vmterminated");
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVarCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVarCommand.java
deleted file mode 100644
index 5e2f34c..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAVarCommand.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Return the contents of variable <code>variable_name</code> in the control 
- * stack frame <code>frame_number</code> (stack frames are indexed from 0, 0 
- * being the oldest). 
- * 
- * <pre>
- *    C: var  {thread_id} {frame_number} {variable_name}
- *    R: {variable_value}
- *    
- * Errors:
- *    error: invalid thread
- *    error: variable undefined
- * </pre>
- */
-
-public class PDAVarCommand extends PDACommand {
-
-    public PDAVarCommand(int threadId, int frameId, String name) {
-        super("var " + threadId + " " + frameId + " " + name);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAWatchCommand.java b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAWatchCommand.java
deleted file mode 100644
index 4bd8af7..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/PDAWatchCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.core.pda.protocol;
-
-
-/**
- * Set a watchpoint on variable <code>variable_name</code> in function 
- * <code>function</code> to magic value <code>watch_operation</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.
- * 
- * <pre>
- *    C: watch {function}::{variable_name} {watch_operation}
- *    R: ok
- *    C: vmresume
- *    R: vmresumed client
- *    E: vmsuspended {thread_id} watch {watch_operation} {function}::{variable_name}
- * </pre>
- */
-public class PDAWatchCommand extends PDACommand {
-
-    public static final int READ = 1;
-    public static final int WRITE = 2;
-    public static final int BOTH = READ | WRITE;
-    public static final int NONE = 0;
-    
-    public PDAWatchCommand(String function, String variable, int operation) {
-        super("watch " + function+ "::" + variable + " " + operation);
-    }
-    
-
-    public PDACommandResult createResult(String resultText) {
-        return new PDACommandResult(resultText);
-    }
-}
diff --git a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/package.html b/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/package.html
deleted file mode 100644
index 90bdaae..0000000
--- a/org.eclipse.debug.examples.core/src/org/eclipse/debug/examples/core/pda/protocol/package.html
+++ /dev/null
@@ -1,99 +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>PDA Interpreter Debug Protocol</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Provides classes representing PDA protocol commands, command results and events</p>
-
-<h2>Package Specification</h2>
-
-<h3>Virtual Machine execution control</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDATerminateCommand}</li>
-<li>{@link PDAVMSuspendCommand}</li>
-<li>{@link PDAVMResumeCommand}</li>
-<li>{@link PDAEventStopCommand}</li>
-</ul>
-<h4>Events</h4>
-<ul>
-<li>{@link PDAVMStarted}</li>
-<li>{@link PDAVMTerminated}</li>
-<li>{@link PDAVMSuspneded}</li>
-<li>{@link PDAVMResumed}</li>
-<li>{@link PDAUnimplementedInstructionEvent}</li>
-<li>{@link PDANoSuchLabelEvent}</li>
-</ul>
-
-<h3>Thread execution control</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDASuspendCommand}</li>
-<li>{@link PDAResumeCommand}</li>
-<li>{@link PDAStepCommand}</li>
-<li>{@link PDADropFrameCommand}</li>
-</ul>
-<h4>Events</h4>
-<ul>
-<li>{@link PDAStarted}</li>
-<li>{@link PDAExited}</li>
-<li>{@link PDASuspended}</li>
-<li>{@link PDAResumed}</li>
-</ul>
-
-<h3>Breakpoints</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDASetBreakpointCommand}</li>
-<li>{@link PDAClearBreakpointCommand}</li>
-<li>{@link PDAWatchCommand}</li>
-</ul>
-
-<h3>Data stack</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDADataCommand}</li>
-<li>{@link PDASetDataCommand}</li>
-<li>{@link PDAPopDataCommand}</li>
-<li>{@link PDAPushDataCommand}</li>
-</ul>
-
-<h3>Expression evaluation</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDAEvalCommand}</li>
-</ul>
-<h4>Events</h4>
-<ul>
-<li>{@link PDAEvalResultEvent}</li>
-</ul>
-
-<h3>Execution control stack</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDAStackCommand}</li>
-<li>{@link PDAStackDepthCommand}</li>
-<li>{@link PDAFrameCommand}</li>
-<li>{@link PDAVarCommand}</li>
-<li>{@link PDASetVarCommand}</li>
-<li>{@link PDAChildrenCommand}</li>
-</ul>
-
-<h3>Registers</h3>
-<h4>Commands</h4>
-<ul>
-<li>{@link PDAGroupsCommand}</li>
-<li>{@link PDARegistersCommand}</li>
-</ul>
-<h4>Events</h4>
-<ul>
-<li>{@link PDARegistersEvent}</li>
-</ul>
-
-</body>
-</html>
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.core/src_ant/org/eclipse/debug/examples/ant/tasks/PreProcessor.java b/org.eclipse.debug.examples.core/src_ant/org/eclipse/debug/examples/ant/tasks/PreProcessor.java
deleted file mode 100644
index 59baccb..0000000
--- a/org.eclipse.debug.examples.core/src_ant/org/eclipse/debug/examples/ant/tasks/PreProcessor.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 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.ant.tasks;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.Vector;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.util.FileUtils;
-
-/**
- * Java preprocessor for code examples. Used to export source code for
- * example plug-ins with parts of code missing/inserted etc., for 
- * various exercises.
- * <p>
- * The preprocessor looks for #ifdef statements in java comments, and is
- * run with a set of symbols. For example:
- * <pre>
- * //#ifdef ex1
- * ... code to insert when 'ex1' symbol is on
- * //#else
- * ... code to insert when not 'ex1'
- * //#endif
- * </pre>
- * </p>
- */
-public class PreProcessor extends Task {
-	
-	private Vector fFileSets = new Vector();
-	private File fDestDir = null;
-	private Set fSymbols = new HashSet(); 
-	private FileUtils fUtils = FileUtils.getFileUtils();
-	
-	// possible states
-	private static final int STATE_OUTSIDE_CONDITION = 0;
-	private static final int STATE_TRUE_CONDITION = 1;
-	private static final int STATE_FALSE_CONDITION = 2;
-	private static final int STATE_POST_TRUE_CONDITION = 3;
-	
-	// matchers
-	private Matcher IF_DEF_MATCHER = Pattern.compile("#ifdef\\s+\\w+").matcher("");
-	private Matcher ELSE_IF_MATCHER = Pattern.compile("#elseif\\s+\\w+").matcher("");
-	private Matcher ELSE_MATCHER = Pattern.compile("#else$|#else\\W+").matcher("");
-	private Matcher END_MATCHER = Pattern.compile("#endif").matcher("");
-
-	
-	/**
-	 * Constructs a new preprocessor task
-	 */
-	public PreProcessor() {
-	}
-	
-    /**
-     * Adds a set of files to process.
-     * 
-     * @param set a set of files to process
-     */
-    public void addFileset(FileSet set) {
-        fFileSets.addElement(set);
-    }
-    
-    /**
-     * Sets the destination directory for processed files.
-     * 
-     * @param destDir destination directory for processed files
-     */
-    public void setDestdir(File destDir) {
-    	fDestDir = destDir;
-    }
-    
-    /**
-	 * Sets the symbols that are "on" for the preprocessing.
-	 * 
-	 * @param symbols symbols that are "on" for the preprocessing
-	 */
-	public void setSymbols(String symbols) {
-		String[] strings = symbols.split(",");
-		for (int i = 0; i < strings.length; i++) {
-			String string = strings[i].trim();
-			if (string.length() > 0) {
-				fSymbols.add(string);
-			}
-		}
-	}
-
-	public void execute() throws BuildException {
-		if (fSymbols.size() == 0) {
-			throw new BuildException("No symbols specified for preprocessor");
-		}
-		if (fFileSets.isEmpty()) {
-			throw new BuildException("No filesets specified for processing");
-		}
-		if (!fDestDir.exists()) {
-			throw new BuildException("destdir does not exist: " + fDestDir.getAbsolutePath());
-		}
-		StringBuffer buf = new StringBuffer("Symbols: ");
-		String[] symbols = (String[]) fSymbols.toArray(new String[fSymbols.size()]);
-		for (int i = 0; i < symbols.length; i++) {
-			String symbol = symbols[i];
-			buf.append(symbol);
-			if(i < (symbols.length -1)) {
-				buf.append(", ");
-			}
-		}
-		log(buf.toString());
-		
-		Iterator fileSets = fFileSets.iterator();
-		while (fileSets.hasNext()) {
-			FileSet fileSet = (FileSet) fileSets.next();
-			DirectoryScanner scanner = fileSet.getDirectoryScanner(getProject());
-			String[] includedFiles = scanner.getIncludedFiles();
-			File baseDir = fileSet.getDir(getProject());
-			for (int i = 0; i < includedFiles.length; i++) {
-				String fileName = includedFiles[i];
-				processFile(baseDir, fileName, fDestDir);
-			}
-		}
-		
-	}
-
-	/**
-	 * Process the file
-	 * @param baseDir base directory source file is relative to
-	 * @param fileName source file name
-	 * @param destDir root destination directory 
-	 */
-	private void processFile(File baseDir, String fileName, File destDir) throws BuildException {
-		File destFile = new File(destDir, fileName);
-		File srcFile = new File(baseDir, fileName);
-		File dir = destFile.getParentFile();
-		if (!dir.exists()) {
-			dir.mkdirs();
-		}
-		String contents = null;
-		if (fileName.endsWith(".java")) {
-			contents = preProcessFile(srcFile, "//#");
-		} else if (fileName.equals("plugin.xml")) {
-			contents = preProcessFile(srcFile, null);
-		}
-		if (contents == null) {
-			// no change, just copy file
-			try {
-				fUtils.copyFile(srcFile, destFile);
-			} catch (IOException e) {
-				throw new BuildException(e);
-			}
-		} else {
-			// write new file
-			FileWriter writer;
-			try {
-				writer = new FileWriter(destFile);
-				writer.write(contents);
-				writer.close();
-			} catch (IOException e) {
-				throw new BuildException(e);
-			}
-			
-		}
-	}
-
-	/**
-	 * Preprocesses a file
-	 * 
-	 * @param srcFile the file to process
-	 * @param strip chars to stip off lines in a true condition, or <code>null</code>
-	 * @return
-	 */
-	public String preProcessFile(File srcFile, String strip) {
-		try {
-			FileReader fileReader = new FileReader(srcFile);
-			BufferedReader reader = new BufferedReader(fileReader);
-			StringBuffer buffer = new StringBuffer();
-			String line = reader.readLine();
-			String activeSymbol = null;
-			int state = STATE_OUTSIDE_CONDITION;
-			boolean changed = false;
-			while (line != null) {
-				boolean ifdef = IF_DEF_MATCHER.reset(line).find();
-				boolean elseif = ELSE_IF_MATCHER.reset(line).find();
-				boolean elze = ELSE_MATCHER.reset(line).find();
-				boolean endif = END_MATCHER.reset(line).find();
-				boolean commandLine = ifdef || elseif || elze || endif;
-				boolean written = false;
-				switch (state) {
-					case STATE_OUTSIDE_CONDITION:
-						if (ifdef) {
-							String condition = line.substring(IF_DEF_MATCHER.start(), IF_DEF_MATCHER.end());
-							String[] strings = condition.split("\\s+");
-							activeSymbol = strings[1].trim();
-							if (fSymbols.contains(activeSymbol)) {
-								state = STATE_TRUE_CONDITION;
-							} else {
-								state = STATE_FALSE_CONDITION;
-							}							
-						} else if (elseif) {
-							throw new BuildException("#elseif encountered without corresponding #ifdef");
-						} else if (elze) {
-							throw new BuildException("#else encountered without corresponding #ifdef (" + srcFile.getPath() + ")");
-						} else if (endif) {
-							throw new BuildException("#endif encountered without corresponding #ifdef");
-						}
-						break;
-					case STATE_TRUE_CONDITION:
-						if (elze || elseif) {
-							state = STATE_POST_TRUE_CONDITION;
-							break;
-						} else if (endif) {
-							state = STATE_OUTSIDE_CONDITION;
-							break;
-						} else if (ifdef) {
-							throw new BuildException("illegal nested #ifdef");
-						}
-						break;
-					case STATE_FALSE_CONDITION:
-						if (elseif) {
-							String condition = line.substring(ELSE_IF_MATCHER.start(), ELSE_IF_MATCHER.end());
-							String[] strings = condition.split("\\s+");
-							activeSymbol = strings[1].trim();
-							if (fSymbols.contains(activeSymbol)) {
-								state = STATE_TRUE_CONDITION;
-							} else {
-								state = STATE_FALSE_CONDITION;
-							}
-						} else if (elze) {
-							state = STATE_TRUE_CONDITION;
-							break;
-						} else if (endif) {
-							state = STATE_OUTSIDE_CONDITION;
-							break;
-						} else if (ifdef) {
-							throw new BuildException("illegal nested #ifdef");
-						}
-						break;
-					case STATE_POST_TRUE_CONDITION:
-						if (endif) {
-							state = STATE_OUTSIDE_CONDITION;
-							break;
-						} else if (ifdef) {
-							throw new BuildException("illegal nested #ifdef");
-						}
-						break;
-				}
-				if (!commandLine) {
-					if (state == STATE_OUTSIDE_CONDITION || state == STATE_TRUE_CONDITION) {
-						if (state == STATE_TRUE_CONDITION && strip != null) {
-							if (line.startsWith(strip)) {
-								line = line.substring(strip.length());
-							}
-						}
-						buffer.append(line);
-						buffer.append("\n");
-						written = true;
-					}
-				} 
-				changed = changed || !written;								
-				line = reader.readLine();
-			}
-			if (!changed) {
-				return null;
-			}
-			return buffer.toString();
-		} catch (IOException e) {
-			throw new BuildException(e);
-		}
-	}
-
-    public static void main(String[] args) {
-		PreProcessor processor = new PreProcessor();
-		processor.setSymbols("ex2");
-		String string = processor.preProcessFile(new File("c:\\eclipse3.1\\dev\\example.debug.core\\src\\example\\debug\\core\\launcher\\PDALaunchDelegate.java"), "//#");
-		//String string = processor.preProcessFile(new File("c:\\eclipse3.1\\dev\\example.debug.core\\plugin.xml"), null);
-		System.out.println(string);
-	}
-}
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 4b906e6..0000000
--- a/org.eclipse.debug.examples.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.debug.examples.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</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 2b5754a..0000000
--- a/org.eclipse.debug.examples.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,30 +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.1.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,
- org.eclipse.core.expressions
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.debug.examples.ui.midi.adapters,
- org.eclipse.debug.examples.ui.midi.detailpanes,
- org.eclipse.debug.examples.ui.midi.launcher,
- 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
-Bundle-ActivationPolicy: lazy
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 6fdd16a..0000000
--- a/org.eclipse.debug.examples.ui/build.properties
+++ /dev/null
@@ -1,22 +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,\
-               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/clef.png b/org.eclipse.debug.examples.ui/icons/full/obj16/clef.png
deleted file mode 100644
index 5036eb5..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/obj16/clef.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.examples.ui/icons/full/obj16/note.gif b/org.eclipse.debug.examples.ui/icons/full/obj16/note.gif
deleted file mode 100644
index 7bc1e08..0000000
--- a/org.eclipse.debug.examples.ui/icons/full/obj16/note.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 a6e2bb0..0000000
--- a/org.eclipse.debug.examples.ui/plugin.xml
+++ /dev/null
@@ -1,421 +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"/>
-      <launchConfigurationTabGroup
-            class="org.eclipse.debug.examples.ui.midi.launcher.MidiTabGroup"
-            description="Play a MIDI file"
-            id="midi.tabGroup"
-            type="midi.launchType"/>            
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
-      <launchConfigurationTypeImage
-            icon="icons/full/obj16/pda.gif"
-            configTypeID="pda.launchType"
-            id="pda.typeImage"/>
-      <launchConfigurationTypeImage
-            icon="icons/full/obj16/note.gif"
-            configTypeID="midi.launchType"
-            id="midi.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>
-         <configurationType
-               id="pda.launchType">
-         </configurationType>
-      </shortcut>
-      <shortcut
-            class="org.eclipse.debug.examples.ui.midi.launcher.MidiLaunchShortcut"
-            description="Plays a standard MIDI file"
-            icon="icons/full/obj16/note.gif"
-            id="midi.launchShortcut"
-            label="MIDI File"
-            modes="run, debug">
-        <contextualLaunch>
-            <enablement>
-               <with variable="selection">
-                  <count value="1"/>
-                  <iterate>
-                     <instanceof value="org.eclipse.core.resources.IFile"/>
-                     <test
-                           value="*.mid"
-                           property="org.eclipse.debug.ui.matchesPattern"/>
-                  </iterate>
-               </with>
-            </enablement>
-         </contextualLaunch>
-        <configurationType
-              id="midi.launchType">
-        </configurationType>            
-      </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="org.eclipse.debug.examples.ui.pda.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>
-   
-   <extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory
-            class="org.eclipse.debug.examples.ui.midi.adapters.MidiAdapterFactory"
-            adaptableType="org.eclipse.debug.examples.core.midi.launcher.MidiLaunch">
-			<adapter type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider"/>
-   <adapter
-         type="org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory">
-   </adapter>
-   <adapter
-         type="org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory">
-   </adapter>
-   <adapter
-         type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider">
-   </adapter>
-   <adapter
-         type="org.eclipse.debug.core.commands.IStepOverHandler">
-   </adapter>
-      </factory>
-      <factory
-            class="org.eclipse.debug.examples.ui.midi.adapters.MidiAdapterFactory"
-            adaptableType="javax.sound.midi.Track">
-			<adapter type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider"/>
-   <adapter
-         type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider">
-   </adapter>
-   <adapter
-         type="org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory">
-   </adapter>
-   <adapter
-         type="org.eclipse.debug.core.commands.IStepOverHandler">
-   </adapter>
-      </factory>
-      <factory
-            adaptableType="org.eclipse.debug.examples.core.midi.launcher.SequencerControl"
-            class="org.eclipse.debug.examples.ui.midi.adapters.MidiAdapterFactory">
-         <adapter
-               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider">
-         </adapter>
-         <adapter
-               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor">
-         </adapter>
-      </factory>
-      <factory
-            adaptableType="javax.sound.midi.MidiEvent"
-            class="org.eclipse.debug.examples.ui.midi.adapters.MidiAdapterFactory">
-         <adapter
-               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider">
-         </adapter>
-      </factory>      
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.detailPaneFactories">
-      <detailFactories
-            class="org.eclipse.debug.examples.ui.midi.detailpanes.ControlDetailPaneFactory"
-            id="org.eclipse.debug.examples.ui.controlFactory">
-         <enablement>
-            <with
-                  variable="selection">
-               <count
-                     value="1">
-               </count>
-               <iterate>
-                  <or>
-                     <instanceof
-                           value="org.eclipse.debug.examples.core.midi.launcher.TempoControl">
-                     </instanceof>
-                     <instanceof
-                           value="org.eclipse.debug.examples.core.midi.launcher.ClockControl">
-                     </instanceof>
-                  </or>
-               </iterate>
-            </with>
-         </enablement>
-      </detailFactories>
-   </extension>   
-   <extension point="org.eclipse.debug.ui.toggleBreakpointsTargetFactories">
-      <toggleTargetFactory
-            id="org.eclipse.debug.examples.ui.pda.ToggleWatchpointsTargetFactory"
-            class="org.eclipse.debug.examples.ui.pda.breakpoints.PDAToggleWatchpointsTargetFactory">
-            <enablement>
-            <!-- Test the active debug context.  Enable only if the context is a PDA 
-            	  element , or if there is no debug context (with a debug model) selected. -->
-            <with variable="debugContext">
-               <iterate>
-	               <or>
-                      <test property="org.eclipse.debug.ui.getModelIdentifier" value="pda.debugModel"/>
-                      <test property="org.eclipse.debug.ui.getModelIdentifier" value=""/>
-                   </or>
-	           </iterate>
-            </with>
-            <!-- If the debug context matches or if there is no active debug 
-                 context.  Enable the breakpoint toggle for PDA's editor -->
-            <or>
-               <instanceof value="org.eclipse.debug.examples.ui.pda.editor.PDAEditor"/>
-               <with variable="selection">
-                  <count value="1"/>
-                  <iterate>
-                     <or>
-                        <instanceof value="org.eclipse.debug.examples.core.pda.model.PDAVariable"/>
-                     </or>
-                  </iterate>
-               </with>            
-            </or>
-         </enablement>
-      </toggleTargetFactory>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.debug.examples.ui.pushCommand"
-            name="Push">
-      </command>
-      <command
-            id="org.eclipse.debug.examples.ui.popCommand"
-            name="Pop">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.debug.examples.ui.pda.views.PushHandler"
-            commandId="org.eclipse.debug.examples.ui.pushCommand">
-         <enabledWhen>
-            <and>
-               <with variable="activePart">
-                  <instanceof value="org.eclipse.debug.examples.ui.pda.views.DataStackView"/>
-               </with>
-               <with variable="debugContext">
-                  <count value="1"/>
-                  <iterate operator="and">
-                     <test property="org.eclipse.debug.ui.getModelIdentifier"
-                           value="pda.debugModel">
-                     </test>
-                     <test property="org.eclipse.debug.examples.ui.canPush"/>
-                  </iterate>
-               </with>
-            </and>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.debug.examples.ui.pda.views.PopHandler"
-            commandId="org.eclipse.debug.examples.ui.popCommand">
-         <enabledWhen>
-            <and>
-               <with variable="activePart">
-                  <instanceof value="org.eclipse.debug.examples.ui.pda.views.DataStackView"/>
-               </with>
-               <with variable="debugContext">
-                  <count value="1"/>
-                  <iterate>
-                     <test property="org.eclipse.debug.ui.getModelIdentifier"
-                           value="pda.debugModel">
-                     </test>
-                  </iterate>
-               </with>
-               <with variable="selection">
-                  <count value="1"/>               
-               </with>
-            </and>
-         </enabledWhen>
-      </handler>
-   </extension>
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.eclipse.debug.examples.ui.pda.views.CanPushTester"
-            id="org.eclipse.debug.examples.ui.canPushTester"
-            namespace="org.eclipse.debug.examples.ui"
-            properties="canPush"
-            type="org.eclipse.core.runtime.IAdaptable">
-      </propertyTester>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:pda.dataStackView?after=additions">
-         <command
-               commandId="org.eclipse.debug.examples.ui.pushCommand"
-               disabledIcon="icons/full/dlcl16/push.gif"
-               icon="icons/full/elcl16/push.gif"
-               label="Push"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.debug.examples.ui.popCommand"
-               disabledIcon="icons/full/dlcl16/pop.gif"
-               icon="icons/full/elcl16/pop.gif"
-               label="Pop"
-               style="push">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:pda.dataStackView?after=additions">
-         <command
-               commandId="org.eclipse.debug.examples.ui.pushCommand"
-               disabledIcon="icons/full/dlcl16/push.gif"
-               icon="icons/full/elcl16/push.gif"
-               label="Push"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.debug.examples.ui.popCommand"
-               disabledIcon="icons/full/dlcl16/pop.gif"
-               icon="icons/full/elcl16/pop.gif"
-               label="Pop"
-               style="push">
-         </command>
-      </menuContribution>
-   </extension>
-</plugin>
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlCellModifier.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlCellModifier.java
deleted file mode 100644
index 100f20e..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlCellModifier.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.examples.core.midi.launcher.SequencerControl;
-import org.eclipse.jface.viewers.ICellModifier;
-
-/**
- * A cell modifier for a sequencer control. Provides current
- * values of controls and updates control values in the sequencer
- * as they are changed in the UI.
- * 
- * @since 1.0
- */
-public class ControlCellModifier implements ICellModifier {
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-	 */
-	public boolean canModify(Object element, String property) {
-		if (SequencerColumnPresentation.COL_VALUE.equals(property)) {
-			if (element instanceof SequencerControl) {
-				return ((SequencerControl) element).isEditable();
-			}
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-	 */
-	public Object getValue(Object element, String property) {
-		if (SequencerColumnPresentation.COL_VALUE.equals(property)) {
-			if (element instanceof SequencerControl) {
-				SequencerControl control = (SequencerControl) element;
-				return control.getValue();
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-	 */
-	public void modify(Object element, String property, Object value) {
-		Object oldValue = getValue(element, property);
-        if (!value.equals(oldValue)) {
-        	if (SequencerColumnPresentation.COL_VALUE.equals(property)) {
-				if (element instanceof SequencerControl) {
-					if (value instanceof String) {
-						SequencerControl control = (SequencerControl) element;
-						control.setValue((String) value);						
-					}
-				}
-	        }
-		}
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEditor.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEditor.java
deleted file mode 100644
index ecb05ae..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEditor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Provides cell editors and modifiers for sequencer controls.
- * 
- * @since 1.0
- */
-public class ControlEditor implements IElementEditor {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor#getCellEditor(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.String, java.lang.Object, org.eclipse.swt.widgets.Composite)
-	 */
-	public CellEditor getCellEditor(IPresentationContext context, String columnId, Object element, Composite parent) {
-		return new TextCellEditor(parent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor#getCellModifier(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
-	 */
-	public ICellModifier getCellModifier(IPresentationContext context, Object element) {
-		return new ControlCellModifier();
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEventHandler.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEventHandler.java
deleted file mode 100644
index a09df84..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlEventHandler.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.examples.core.midi.launcher.ClockControl;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-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.update.DebugEventHandler;
-
-/**
- * Listens to events from sequencer controls and fires corresponding
- * deltas to update the viewer.
- * 
- * @since 1.0
- */
-public class ControlEventHandler extends DebugEventHandler {
-
-	/**
-	 * Associated launch
-	 */
-	private MidiLaunch fLaunch;
-	
-	/**
-	 * Timer used to update clock
-	 */
-	private Timer fTimer;
-	
-	/**
-	 * @param proxy
-	 */
-	public ControlEventHandler(SequencerControlsModelProxy proxy) {
-		super(proxy);
-		fLaunch = proxy.getMidiLaunch();
-	}
-	
-	protected void init() {
-		if (!fLaunch.isSuspended() && !fLaunch.isTerminated() && !fLaunch.isDisconnected()) {
-			startTimer();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#handlesEvent(org.eclipse.debug.core.DebugEvent)
-	 */
-	protected boolean handlesEvent(DebugEvent event) {
-		return true;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (fTimer != null) {
-			fTimer.cancel();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#refreshRoot(org.eclipse.debug.core.DebugEvent)
-	 */
-	protected void refreshRoot(DebugEvent event) {
-		ModelDelta delta = new ModelDelta(fLaunch, IModelDelta.CONTENT);
-		fireDelta(delta);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#handleResume(org.eclipse.debug.core.DebugEvent)
-	 */
-	protected void handleResume(DebugEvent event) {
-		super.handleResume(event);
-		startTimer();
-	}
-
-	/**
-	 * Starts a timer to update the clock
-	 */
-	private void startTimer() {
-		fTimer = new Timer(true);
-		fTimer.schedule(new TimerTask() {
-			public void run() {
-				ModelDelta delta = new ModelDelta(fLaunch, IModelDelta.NO_CHANGE);
-				delta = delta.addNode(new ClockControl(fLaunch), IModelDelta.STATE | IModelDelta.CONTENT);
-				fireDelta(delta);
-			}
-		}, 0, 100);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#handleSuspend(org.eclipse.debug.core.DebugEvent)
-	 */
-	protected void handleSuspend(DebugEvent event) {
-		super.handleSuspend(event);
-		if (fTimer != null) {
-			fTimer.cancel();
-			fTimer = null;
-		}
-	}
-	
-	
-	
-	
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlLabelProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlLabelProvider.java
deleted file mode 100644
index f54234b..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlLabelProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.examples.core.midi.launcher.SequencerControl;
-import org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.jface.viewers.TreePath;
-
-/**
- * Label provider for a sequencer control.
- * 
- * @since 1.0
- */
-public class ControlLabelProvider extends ElementLabelProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider#getLabel(org.eclipse.jface.viewers.TreePath, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.String)
-	 */
-	protected String getLabel(TreePath elementPath, IPresentationContext presentationContext, String columnId) throws CoreException {
-		SequencerControl control = (SequencerControl) elementPath.getLastSegment();
-		if (SequencerColumnPresentation.COL_NAME.equals(columnId)) {
-			return control.getName();
-		}
-		if (SequencerColumnPresentation.COL_VALUE.equals(columnId)) {
-			return control.getValue();
-		}
-		return "";
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlsMementoProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlsMementoProvider.java
deleted file mode 100644
index 6df637f..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/ControlsMementoProvider.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-import org.eclipse.debug.examples.core.midi.launcher.TempoControl;
-import org.eclipse.debug.internal.ui.model.elements.DebugElementMementoProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-
-/**
- * Provides mementos for sequencer elements.
- * 
- * @since 1.0
- */
-public class ControlsMementoProvider extends DebugElementMementoProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.DebugElementMementoProvider#getElementName(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext)
-	 */
-	protected String getElementName(Object element, IPresentationContext context) throws CoreException {
-		if (element instanceof MidiLaunch) {
-			return "SEQUENCER";
-		}
-		if (element instanceof TempoControl) {
-			return "TEMPO_CONTROL";
-		}
-		return null;
-	}
-
-	
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiAdapterFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiAdapterFactory.java
deleted file mode 100644
index 26696b1..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiAdapterFactory.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import javax.sound.midi.MidiEvent;
-import javax.sound.midi.Track;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.debug.core.commands.IStepOverHandler;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-import org.eclipse.debug.examples.core.midi.launcher.SequencerControl;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
-
-/**
- * Adapter factory for MIDI elements.
- * 
- * @since 1.0
- */
-public class MidiAdapterFactory implements IAdapterFactory {
-
-	private static IElementContentProvider fgSequencerContentProvider = new SequencerContentProvider();
-	private static IElementContentProvider fgTackContentProvider = new TrackContentProvider();
-	
-	private static IElementLabelProvider fgTrackLabelProvider = new TrackLabelProvider();
-	private static IElementLabelProvider fgControlLabelProvider = new ControlLabelProvider();
-	private static IElementLabelProvider fgMidiEventLabelProvdier = new MidiEventLabelProvider();
-	
-	private static IColumnPresentationFactory fgSequencerColumnFactory = new SequencerColumnFactory();
-	private static IColumnPresentationFactory fgTrackColumnFactory = new TrackColumnFactory();
-	
-	private static IModelProxyFactory fgSequencerModelProxyFactory = new SequencerModelProxyFactory();
-	
-	private static IElementMementoProvider fgMementoProvider = new ControlsMementoProvider();
-	
-	private static IStepOverHandler fgStepOverHandler = new MidiStepOverHandler();
-
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (IElementContentProvider.class.equals(adapterType)) {
-			if (adaptableObject instanceof MidiLaunch) {
-				return fgSequencerContentProvider;
-			}
-			if (adaptableObject instanceof Track) {
-				return fgTackContentProvider;
-			}
-		}
-		if (IElementLabelProvider.class.equals(adapterType)) {
-			if (adaptableObject instanceof Track) {
-				return fgTrackLabelProvider;
-			}
-			if (adaptableObject instanceof SequencerControl) {
-				return fgControlLabelProvider;
-			}
-			if (adaptableObject instanceof MidiEvent) {
-				return fgMidiEventLabelProvdier;
-			}
-		}
-		
-		if (IColumnPresentationFactory.class.equals(adapterType)) {
-			if (adaptableObject instanceof MidiLaunch) {
-				return fgSequencerColumnFactory;
-			}
-			if (adaptableObject instanceof Track) {
-				return fgTrackColumnFactory;
-			}
-		}
-		if (IElementEditor.class.equals(adapterType)) {
-			if (adaptableObject instanceof SequencerControl) {
-				return new ControlEditor();
-			}
-		}
-		if (IModelProxyFactory.class.equals(adapterType)) {
-			if (adaptableObject instanceof MidiLaunch) {
-				return fgSequencerModelProxyFactory;
-			}
-		}
-		if (IElementMementoProvider.class.equals(adapterType)) {
-			return fgMementoProvider;
-		}
-		if (IStepOverHandler.class.equals(adapterType)) {
-			return fgStepOverHandler;
-		}
-		return null;
-	}
-
-	public Class[] getAdapterList() {
-		return new Class[]{IElementContentProvider.class, IElementLabelProvider.class, IStepOverHandler.class};
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiEventLabelProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiEventLabelProvider.java
deleted file mode 100644
index b357c67..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiEventLabelProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import javax.sound.midi.MidiEvent;
-import javax.sound.midi.MidiMessage;
-import javax.sound.midi.ShortMessage;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.jface.viewers.TreePath;
-
-/**
- * Provides labels for MIDI tracks.
- * 
- * @since 1.0
- */
-public class MidiEventLabelProvider extends ElementLabelProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider#getLabel(org.eclipse.jface.viewers.TreePath, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.String)
-	 */
-	protected String getLabel(TreePath elementPath, IPresentationContext presentationContext, String columnId) throws CoreException {
-		MidiEvent event = (MidiEvent) elementPath.getLastSegment();
-		MidiMessage message = event.getMessage();
-		if (TrackColumnPresentation.COL_TICK.equals(columnId)) {
-			return Long.toString(event.getTick());
-		} else if (TrackColumnPresentation.COL_BYTES.equals(columnId)) {
-			byte[] bytes = message.getMessage();
-			StringBuffer buffer = new StringBuffer();
-			for (int i = 0; i < message.getLength(); i++) {
-				buffer.append(' ');
-				appendByte(buffer, bytes[i]);
-			}
-			return buffer.toString();
-		} else if (TrackColumnPresentation.COL_COMMAND.equals(columnId)) {
-			if (message instanceof ShortMessage) {
-				ShortMessage sm = (ShortMessage) message;
-				StringBuffer buf = new StringBuffer();
-				appendByte(buf, (byte)sm.getCommand());
-				return buf.toString();
-			}
-		} else if (TrackColumnPresentation.COL_CHANNEL.equals(columnId)) {
-			if (message instanceof ShortMessage) {
-				return Integer.toString(((ShortMessage)message).getChannel());
-			}
-		}
-		return "";
-	}
-	
-	/**
-	 * Appends a byte to the buffer with 2 hex characters.
-	 * 
-	 * @param buffer
-	 * @param b
-	 */
-	private void appendByte(StringBuffer buffer, byte b) { 
-		String hex = Integer.toHexString(b & 0xFF).toUpperCase();
-		for (int i = hex.length(); i < 2; i++) {
-			buffer.append('0');
-		}
-		buffer.append(hex);
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiStepOverHandler.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiStepOverHandler.java
deleted file mode 100644
index fb2bdaa..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/MidiStepOverHandler.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.commands.IDebugCommandRequest;
-import org.eclipse.debug.core.commands.IEnabledStateRequest;
-import org.eclipse.debug.core.commands.IStepOverHandler;
-
-/**
- * Provides an example command handler for the step over action.
- * On execute, it simply returns a status that is opened in an
- * error dialog.
- */
-public class MidiStepOverHandler implements IStepOverHandler {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.commands.IDebugCommandHandler#canExecute(org.eclipse.debug.core.commands.IEnabledStateRequest)
-	 */
-	public void canExecute(IEnabledStateRequest request) {
-		// We could create a job here, schedule it, then return to be asynchronous
-		request.setEnabled(request.getElements().length > 0);
-		request.done();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.core.commands.IDebugCommandHandler#execute(org.eclipse.debug.core.commands.IDebugCommandRequest)
-	 */
-	public boolean execute(IDebugCommandRequest request) {
-		// We could create a job to do this work, schedule it, then return to be asynchronous
-		// If running asynchronously, remember to return the enablement you want the action to have while this action is run
-		request.setStatus(new Status(IStatus.WARNING,"org.eclipse.debug.examples.ui","This is an example command handler overriding the default using an adapter on " + request.getElements()[0].getClass().getName()));
-		request.done();
-		return true;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnFactory.java
deleted file mode 100644
index c102fdc..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * Column presentation factory for a sequencer.
- * 
- * @since 1.0
- */
-public class SequencerColumnFactory implements IColumnPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory#createColumnPresentation(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
-	 */
-	public IColumnPresentation createColumnPresentation(IPresentationContext context, Object element) {
-		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			return new SequencerColumnPresentation();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory#getColumnPresentationId(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
-	 */
-	public String getColumnPresentationId(IPresentationContext context, Object element) {
-		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			return SequencerColumnPresentation.ID;
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnPresentation.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnPresentation.java
deleted file mode 100644
index 4542f84..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerColumnPresentation.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.internal.ui.viewers.provisional.AbstractColumnPresentation;
-
-/**
- * Columns for sequencer in the variables view.
- * 
- * @since 1.0
- */
-public class SequencerColumnPresentation extends AbstractColumnPresentation {
-
-	/**
-	 * Column identifiers
-	 */
-	public static final String COL_NAME = "NAME";
-	public static final String COL_VALUE = "VALUE";
-
-	/**
-	 * All columns
-	 */
-	public static final String[] COLUMN_IDS = new String[]{COL_NAME, COL_VALUE};
-
-	/**
-	 * Column presentation ID.
-	 */
-	public static final String ID = "org.eclipse.debug.examples.ui.midi.columnPresentation";
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getAvailableColumns()
-	 */
-	public String[] getAvailableColumns() {
-		return COLUMN_IDS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getHeader(java.lang.String)
-	 */
-	public String getHeader(String id) {
-		if (COL_NAME.equals(id)) {
-			return "Control";
-		}
-		if (COL_VALUE.equals(id)) {
-			return "Value";
-		}
-		return "";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getId()
-	 */
-	public String getId() {
-		return ID;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getInitialColumns()
-	 */
-	public String[] getInitialColumns() {
-		return COLUMN_IDS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#isOptional()
-	 */
-	public boolean isOptional() {
-		return false;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerContentProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerContentProvider.java
deleted file mode 100644
index 348e854..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerContentProvider.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import javax.sound.midi.Sequencer;
-import javax.sound.midi.Track;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.examples.core.midi.launcher.ClockControl;
-import org.eclipse.debug.examples.core.midi.launcher.LengthControl;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-import org.eclipse.debug.examples.core.midi.launcher.SequencerControl;
-import org.eclipse.debug.examples.core.midi.launcher.TempoControl;
-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;
-
-/**
- * Provides content for a MIDI sequencer element (MIDI launch).
- *  
- * @since 1.0
- */
-public class SequencerContentProvider 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 {
-		if (IDebugUIConstants.ID_DEBUG_VIEW.equals(context.getId())) {
-			return getTracks((MidiLaunch) element).length;
-		} else if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			if (((MidiLaunch)element).isTerminated()) {
-				return 0;
-			}
-			return 3;
-		}
-		return 0;
-	}
-
-	/* (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 (IDebugUIConstants.ID_DEBUG_VIEW.equals(context.getId())) {
-			return getElements(getTracks((MidiLaunch) parent), index, length);
-		} else if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			return getElements(getControls((MidiLaunch) parent), index, length);
-		}
-		return EMPTY;
-	}
-	
-	/**
-	 * Returns the controls for this sequencer.
-	 * 
-	 * @param launch midi launch
-	 * @return controls
-	 */
-	public SequencerControl[] getControls(MidiLaunch launch) {
-		return new SequencerControl[]{
-				new TempoControl(launch),
-				new ClockControl(launch),
-				new LengthControl(launch)
-		};
-	}
-	
-	/**
-	 * Returns all tracks in the sequence.
-	 * 
-	 * @param launch MIDI launch
-	 *@return tracks
-	 */
-	public Track[] getTracks(MidiLaunch launch) {
-		Sequencer sequencer = launch.getSequencer();
-		if (sequencer != null && sequencer.isOpen()) {
-			return sequencer.getSequence().getTracks();
-		}
-		return new Track[0];
-	}
-
-	/* (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)
-			|| IDebugUIConstants.ID_VARIABLE_VIEW.equals(id);
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerControlsModelProxy.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerControlsModelProxy.java
deleted file mode 100644
index 3faf1c4..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerControlsModelProxy.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import javax.sound.midi.Sequencer;
-
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-import org.eclipse.debug.examples.core.midi.launcher.SequencerControl;
-import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler;
-import org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Model proxy for a sequencer in the variables view. Listens
- * to events from controls to update the viewer when the user
- * changes a control's value.
- * 
- * @since 1.0
- */
-public class SequencerControlsModelProxy extends EventHandlerModelProxy {
-
-	/**
-	 * Associated launch
-	 */
-	private MidiLaunch fLaunch;
-	
-	/**
-	 * Event handler
-	 */
-	private ControlEventHandler fHandler;
-	
-	/**
-	 * Constructs a model proxy to update based on changes in controls
-	 * for the associated sequencer.
-	 * 
-	 * @param launch MIDI launch
-	 */
-	public SequencerControlsModelProxy(MidiLaunch launch) {
-		fLaunch = launch;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.provisional.AbstractModelProxy#installed(org.eclipse.jface.viewers.Viewer)
-	 */
-	public void installed(Viewer viewer) {
-		super.installed(viewer);
-		fHandler.init();
-	}
-
-	/**
-	 * Returns the launch assocaited with this proxy.
-	 * 
-	 * @return MIDI launch
-	 */
-	protected MidiLaunch getMidiLaunch() {
-		return fLaunch;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy#createEventHandlers()
-	 */
-	protected DebugEventHandler[] createEventHandlers() {
-		fHandler = new ControlEventHandler(this);
-		return new DebugEventHandler[]{fHandler};
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy#containsEvent(org.eclipse.debug.core.DebugEvent)
-	 */
-	protected boolean containsEvent(DebugEvent event) {
-		if (event.getSource() instanceof SequencerControl) {
-			return ((SequencerControl)event.getSource()).getLaunch().equals(fLaunch);
-		}
-		if (event.getSource() instanceof Sequencer) {
-			return fLaunch.getSequencer().equals(event.getSource());
-		}
-		if (event.getSource().equals(fLaunch)) {
-			return true;
-		}
-		return false;
-	}
-	
-	
-	
-	
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerModelProxyFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerModelProxyFactory.java
deleted file mode 100644
index 52e48c1..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/SequencerModelProxyFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-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.internal.ui.viewers.update.LaunchProxy;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * Factory to create a model proxy for sequencer controls in 
- * the variables view.
- * 
- * @since 1.0
- */
-public class SequencerModelProxyFactory implements IModelProxyFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory#createModelProxy(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext)
-	 */
-	public IModelProxy createModelProxy(Object element, IPresentationContext context) {
-		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			if (element instanceof MidiLaunch) {
-				return new SequencerControlsModelProxy((MidiLaunch)element);
-			}
-		}
-		if (IDebugUIConstants.ID_DEBUG_VIEW.equals(context.getId())) {
-			if (element instanceof MidiLaunch) {
-				return new LaunchProxy((ILaunch)element);
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnFactory.java
deleted file mode 100644
index 0a5b5fb..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * Column presentation factory for a track.
- * 
- * @since 1.0
- */
-public class TrackColumnFactory implements IColumnPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory#createColumnPresentation(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
-	 */
-	public IColumnPresentation createColumnPresentation(IPresentationContext context, Object element) {
-		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			return new TrackColumnPresentation();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory#getColumnPresentationId(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
-	 */
-	public String getColumnPresentationId(IPresentationContext context, Object element) {
-		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			return TrackColumnPresentation.ID;
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnPresentation.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnPresentation.java
deleted file mode 100644
index 05713db..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackColumnPresentation.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import org.eclipse.debug.internal.ui.viewers.provisional.AbstractColumnPresentation;
-
-/**
- * Columns for sequencer in the variables view.
- * 
- * @since 1.0
- */
-public class TrackColumnPresentation extends AbstractColumnPresentation {
-
-	/**
-	 * Column identifiers
-	 */
-	public static final String COL_TICK = "TICK";
-	public static final String COL_BYTES = "BYTES";
-	public static final String COL_COMMAND = "COMMAND";
-	public static final String COL_CHANNEL = "CHANNEL";
-
-	/**
-	 * All columns
-	 */
-	public static final String[] COLUMN_IDS = new String[]{COL_TICK, COL_BYTES, COL_COMMAND, COL_CHANNEL};
-	
-	/**
-	 * Initial columns
-	 */
-	public static final String[] COLUMN_INITIAL = new String[]{COL_TICK, COL_BYTES};
-
-	/**
-	 * Column presentation ID.
-	 */
-	public static final String ID = "org.eclipse.debug.examples.ui.midi.trackColumns";
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getAvailableColumns()
-	 */
-	public String[] getAvailableColumns() {
-		return COLUMN_IDS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getHeader(java.lang.String)
-	 */
-	public String getHeader(String id) {
-		if (COL_TICK.equals(id)) {
-			return "Tick";
-		}
-		if (COL_BYTES.equals(id)) {
-			return "Bytes";
-		}
-		if (COL_CHANNEL.equals(id)) {
-			return "Channel";
-		}
-		if (COL_COMMAND.equals(id)) {
-			return "Command";
-		}
-		return "";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getId()
-	 */
-	public String getId() {
-		return ID;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#getInitialColumns()
-	 */
-	public String[] getInitialColumns() {
-		return COLUMN_INITIAL;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation#isOptional()
-	 */
-	public boolean isOptional() {
-		return false;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackContentProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackContentProvider.java
deleted file mode 100644
index 34c16a7..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackContentProvider.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import javax.sound.midi.MidiEvent;
-import javax.sound.midi.Track;
-
-import org.eclipse.core.runtime.CoreException;
-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;
-
-/**
- * Content provider for track in the variables view. Returns MIDI events
- * in the track.
- * 
- * @since 1.0
- */
-public class TrackContentProvider 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 {
-		Track track = (Track) element;
-		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			return track.size();
-		}
-		return 0;
-	}
-
-	/* (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 (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
-			Track track = (Track) parent;
-			MidiEvent[] events= new MidiEvent[length];
-			for (int i = 0; i < length; i++) {
-				events[i] = track.get(i+index); 
-			}
-			return events;
-		}
-		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_VARIABLE_VIEW.equals(id);
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackLabelProvider.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackLabelProvider.java
deleted file mode 100644
index fa8f891..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/adapters/TrackLabelProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.adapters;
-
-import javax.sound.midi.Track;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.examples.core.midi.launcher.MidiLaunch;
-import org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.jface.viewers.TreePath;
-
-/**
- * Provides labels for MIDI tracks.
- * 
- * @since 1.0
- */
-public class TrackLabelProvider extends ElementLabelProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider#getLabel(org.eclipse.jface.viewers.TreePath, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.String)
-	 */
-	protected String getLabel(TreePath elementPath, IPresentationContext presentationContext, String columnId) throws CoreException {
-		Track track = (Track) elementPath.getLastSegment();
-		MidiLaunch launch = (MidiLaunch) elementPath.getSegment(0);
-		Track[] tracks = launch.getSequencer().getSequence().getTracks();
-		int i = 0;
-		for (i = 0; i < tracks.length; i++) {
-			if (track.equals(tracks[i])) {
-				break;
-			}
-		}
-		StringBuffer buf = new StringBuffer();
-		buf.append("Track ");
-		buf.append(i);
-		buf.append(" [");
-		buf.append(track.size());
-		buf.append(" events]");
-		return buf.toString();
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ClockSliderDetailPane.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ClockSliderDetailPane.java
deleted file mode 100644
index 234618f..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ClockSliderDetailPane.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.detailpanes;
-
-import org.eclipse.debug.examples.core.midi.launcher.ClockControl;
-import org.eclipse.debug.ui.IDetailPane;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-/**
- * A slider to control the clock position.
- * 
- * @since 1.0
- */
-public class ClockSliderDetailPane implements IDetailPane {
-	
-	private Slider fSlider;
-	private ClockControl fControl;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl(Composite parent) {
-		fSlider = new Slider(parent, SWT.HORIZONTAL);
-		fSlider.setMinimum(0);
-		fSlider.setMaximum(1000);
-		fSlider.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				int selection = fSlider.getSelection();
-				if (fControl != null) {
-					fControl.setValue(Integer.toString(selection));
-				}
-			}
-		});
-		return fSlider;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#display(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void display(IStructuredSelection selection) {
-		fControl = null;
-		if (selection == null || selection.isEmpty()) {
-			fSlider.setEnabled(false);
-		} else {
-			fSlider.setEnabled(true);
-			fControl = (ClockControl) selection.getFirstElement();
-			int max = (int)fControl.getSequencer().getMicrosecondLength() / 1000000;
-			long micro = fControl.getSequencer().getMicrosecondPosition();
-			int seconds = (int) micro / 1000000;
-			fSlider.setMaximum(max);
-			fSlider.setSelection(seconds);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#getDescription()
-	 */
-	public String getDescription() {
-		return "Location (seconds)";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#getID()
-	 */
-	public String getID() {
-		return ControlDetailPaneFactory.ID_CLOCK_SLIDER;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#getName()
-	 */
-	public String getName() {
-		return "Clock Slider (seconds)";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#init(org.eclipse.ui.IWorkbenchPartSite)
-	 */
-	public void init(IWorkbenchPartSite partSite) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#setFocus()
-	 */
-	public boolean setFocus() {
-		fSlider.setFocus();
-		return true;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ControlDetailPaneFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ControlDetailPaneFactory.java
deleted file mode 100644
index 10353fd..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/ControlDetailPaneFactory.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.detailpanes;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.debug.examples.core.midi.launcher.ClockControl;
-import org.eclipse.debug.examples.core.midi.launcher.TempoControl;
-import org.eclipse.debug.ui.IDetailPane;
-import org.eclipse.debug.ui.IDetailPaneFactory;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * Creates detail panes for sequencer controls.
- * 
- * @since 1.0
- */
-public class ControlDetailPaneFactory implements IDetailPaneFactory {
-	
-	/**
-	 * Identifier for the tempo slider detail pane
-	 */
-	public static final String ID_TEMPO_SLIDER = "TEMPO_SLIDER";
-	
-	/**
-	 * Identifier for the clock slider detail pane
-	 */
-	public static final String ID_CLOCK_SLIDER = "CLOCK_SLIDER";	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPaneFactory#createDetailPane(java.lang.String)
-	 */
-	public IDetailPane createDetailPane(String paneID) {
-		if (ID_TEMPO_SLIDER.equals(paneID)) {
-			return new TempoSliderDetailPane();
-		}
-		if (ID_CLOCK_SLIDER.equals(paneID)) {
-			return new ClockSliderDetailPane();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPaneFactory#getDefaultDetailPane(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public String getDefaultDetailPane(IStructuredSelection selection) {
-		if (selection.size() == 1) {
-			Object element = selection.getFirstElement();
-			if (element instanceof TempoControl) {
-				return ID_TEMPO_SLIDER;
-			}
-			if (element instanceof ClockControl) {
-				return ID_CLOCK_SLIDER;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPaneFactory#getDetailPaneDescription(java.lang.String)
-	 */
-	public String getDetailPaneDescription(String paneID) {
-		if (ID_TEMPO_SLIDER.equals(paneID)) {
-			return "Tempo Slider";
-		}
-		if (ID_CLOCK_SLIDER.equals(paneID)) {
-			return "Clock Slider";
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPaneFactory#getDetailPaneName(java.lang.String)
-	 */
-	public String getDetailPaneName(String paneID) {
-		if (ID_TEMPO_SLIDER.equals(paneID)) {
-			return "Tempo Slider";
-		}
-		if (ID_CLOCK_SLIDER.equals(paneID)) {
-			return "Clock Slider";
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPaneFactory#getDetailPaneTypes(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public Set getDetailPaneTypes(IStructuredSelection selection) {
-		Set set = new HashSet();
-		if (selection.size() == 1) {
-			Object element = selection.getFirstElement();
-			if (element instanceof TempoControl) {
-				set.add(ID_TEMPO_SLIDER);
-			}
-			if (element instanceof ClockControl) {
-				set.add(ID_CLOCK_SLIDER);
-			}
-		}
-		return set;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/TempoSliderDetailPane.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/TempoSliderDetailPane.java
deleted file mode 100644
index d5e1c7b..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/detailpanes/TempoSliderDetailPane.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.detailpanes;
-
-import org.eclipse.debug.examples.core.midi.launcher.TempoControl;
-import org.eclipse.debug.ui.IDetailPane;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-/**
- * A slider to control tempo.
- * 
- * @since 1.0
- */
-public class TempoSliderDetailPane implements IDetailPane {
-	
-	private Slider fSlider;
-	private TempoControl fControl;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl(Composite parent) {
-		fSlider = new Slider(parent, SWT.HORIZONTAL);
-		fSlider.setMinimum(20);
-		fSlider.setMaximum(500);
-		fSlider.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				int selection = fSlider.getSelection();
-				if (fControl != null) {
-					fControl.setValue(Integer.toString(selection));
-				}
-			}
-		});
-		return fSlider;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#display(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void display(IStructuredSelection selection) {
-		fControl = null;
-		if (selection == null || selection.isEmpty()) {
-			fSlider.setEnabled(false);
-		} else {
-			fSlider.setEnabled(true);
-			fControl = (TempoControl) selection.getFirstElement();
-			int bpm = (int)fControl.getSequencer().getTempoInBPM();
-			fSlider.setSelection(bpm);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#getDescription()
-	 */
-	public String getDescription() {
-		return "Tempo (beats per minute)";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#getID()
-	 */
-	public String getID() {
-		return ControlDetailPaneFactory.ID_TEMPO_SLIDER;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#getName()
-	 */
-	public String getName() {
-		return "Tempo Slider (BPM)";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#init(org.eclipse.ui.IWorkbenchPartSite)
-	 */
-	public void init(IWorkbenchPartSite partSite) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.IDetailPane#setFocus()
-	 */
-	public boolean setFocus() {
-		fSlider.setFocus();
-		return true;
-	}
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiLaunchShortcut.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiLaunchShortcut.java
deleted file mode 100644
index f20448b..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiLaunchShortcut.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.launcher;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-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.midi.launcher.MidiLaunchDelegate;
-import org.eclipse.debug.examples.ui.pda.DebugUIPlugin;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.debug.ui.ILaunchShortcut;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-
-/**
- * Launch shortcut for a MIDI file.
- * 
- * @since 1.0
- */
-public class MidiLaunchShortcut 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) {
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection ss = (IStructuredSelection) selection;
-			if (ss.size() == 1) {
-				Object element = ss.getFirstElement();
-				if (element instanceof IFile) {
-					IFile file = (IFile) element;
-					ILaunchConfiguration configuration = getConfiguration(file);
-					if (configuration != null) {
-						DebugUITools.launch(configuration, mode);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns a MIDI configuration to use for the given file or
-	 * <code>null</code> to cancel. Creates a new configuration 
-	 * if required.
-	 * 
-	 * @param file file
-	 * @return associated launch configuration or <code>null</code>
-	 */
-	private ILaunchConfiguration getConfiguration(IFile file) {
-		List candiates = new ArrayList();
-		try {
-			ILaunchConfiguration[] configurations = getLaunchManager().getLaunchConfigurations(getLaunchType());
-			for (int i = 0; i < configurations.length; i++) {
-				ILaunchConfiguration configuration = configurations[i];
-				IResource[] resources = configuration.getMappedResources();
-				if (resources != null && resources.length == 1 &&
-						resources[0].equals(file)) {
-					candiates.add(configuration);
-				}
-			}
-		} catch (CoreException e) {
-		}
-		if (!candiates.isEmpty()) {
-			return chooseConfiguration(candiates);
-		}
-		return newConfiguration(file);
-	}
-
-	/**
-	 * Returns the MIDI launch configuration type.
-	 * 
-	 * @return the MIDI launch configuration type
-	 */
-	private ILaunchConfigurationType getLaunchType() {
-		ILaunchManager manager = getLaunchManager();
-		ILaunchConfigurationType type = manager.getLaunchConfigurationType(MidiLaunchDelegate.ID_MIDI_LAUNCH_CONFIGURATION_TYPE);
-		return type;
-	}
-
-	/**
-	 * Returns the launch manager.
-	 * 
-	 * @return launch manager
-	 */
-	private ILaunchManager getLaunchManager() {
-		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-		return manager;
-	}
-	
-	/**
-	 * Returns a configuration from the given collection of configurations that should be launched,
-	 * or <code>null</code> to cancel.
-	 * 
-	 * @param configList list of configurations to choose from
-	 * @return configuration to launch or <code>null</code> to cancel
-	 */
-	private ILaunchConfiguration chooseConfiguration(List configList) {
-		if (configList.size() == 1) {
-			return (ILaunchConfiguration) configList.get(0);
-		}
-		IDebugModelPresentation labelProvider = DebugUITools.newDebugModelPresentation();
-		ElementListSelectionDialog dialog= new ElementListSelectionDialog(DebugUIPlugin.getActiveWorkbenchShell(), labelProvider);
-		dialog.setElements(configList.toArray());
-		dialog.setTitle("Select Configuraiton");  
-		dialog.setMessage("&Select an existing configuration:");
-		dialog.setMultipleSelection(false);
-		int result = dialog.open();
-		labelProvider.dispose();
-		if (result == Window.OK) {
-			return (ILaunchConfiguration) dialog.getFirstResult();
-		}
-		return null;		
-	}
-	
-	/**
-	 * Creates and returns a new MIDI launch configuration for the
-	 * given file.
-	 * 
-	 * @param file MIDI file
-	 * @return new launch configuration
-	 */
-	private ILaunchConfiguration newConfiguration(IFile file) {
-		ILaunchConfigurationType type = getLaunchType();
-		try {
-			ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, getLaunchManager().
-					generateUniqueLaunchConfigurationNameFrom(
-							"[" + file.getProject().getName() + "] " + file.getName()));
-			workingCopy.setAttribute(MidiLaunchDelegate.ATTR_MIDI_FILE, file.getFullPath().toString());
-			workingCopy.setMappedResources(new IResource[]{file});
-			return workingCopy.doSave();
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.ui.IEditorPart, java.lang.String)
-	 */
-	public void launch(IEditorPart editor, String mode) {
-		// nothing - currently no editor
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiMainTab.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiMainTab.java
deleted file mode 100644
index fca24e5..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiMainTab.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.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.midi.launcher.MidiLaunchDelegate;
-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 MIDI file to play.
- * 
- * @since 1.0
- */
-public class MidiMainTab extends AbstractLaunchConfigurationTab {
-	
-	private Text fFileText;
-	private Button fFileButton;
-	
-	/* (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("&Midi File:");
-		GridData gd = new GridData(GridData.BEGINNING);
-		programLabel.setLayoutData(gd);
-		programLabel.setFont(font);
-		
-		fFileText = new Text(comp, SWT.SINGLE | SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		fFileText.setLayoutData(gd);
-		fFileText.setFont(font);
-		fFileText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateLaunchConfigurationDialog();
-			}
-		});
-		
-		fFileButton = createPushButton(comp, "&Browse...", null); //$NON-NLS-1$
-		fFileButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				browseMidiFiles();
-			}
-		});
-	}
-	
-	/**
-	 * Open a resource chooser to select a MIDI file
-	 */
-	protected void browseMidiFiles() {
-		ResourceListSelectionDialog dialog = new ResourceListSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), IResource.FILE);
-		dialog.setTitle("MIDI File");
-		dialog.setMessage("Select MIDI File");
-		if (dialog.open() == Window.OK) {
-			Object[] files = dialog.getResult();
-			IFile file = (IFile) files[0];
-			fFileText.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) {
-		try {
-			String file = null;
-			file = configuration.getAttribute(MidiLaunchDelegate.ATTR_MIDI_FILE, (String)null);
-			if (file != null) {
-				fFileText.setText(file);
-			}
-		} catch (CoreException e) {
-			setErrorMessage(e.getMessage());
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		String file = fFileText.getText().trim();
-		if (file.length() == 0) {
-			file = null;
-		}
-		IResource[] resources = null;
-		if (file!= null) {
-			IPath path = new Path(file);
-			IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
-			if (res != null) {
-				resources = new IResource[]{res};
-			}
-		}
-		configuration.setAttribute(MidiLaunchDelegate.ATTR_MIDI_FILE, file);
-		configuration.setMappedResources(resources);
-	}
-	
-	/* (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 = fFileText.getText();
-		if (text.length() > 0) {
-			IPath path = new Path(text);
-			if (ResourcesPlugin.getWorkspace().getRoot().findMember(path) == null) {
-				setErrorMessage("File does not exist");
-				return false;
-			}
-		} else {
-			setMessage("Select a MIDI file");
-		}
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return DebugUIPlugin.getDefault().getImageRegistry().get(DebugUIPlugin.IMG_OBJ_MIDI);
-	}
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiTabGroup.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiTabGroup.java
deleted file mode 100644
index 52e8b9d..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/midi/launcher/MidiTabGroup.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.midi.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;
-
-/**
- * Tab group for a MIDI file.
- * 
- * @since 1.0
- */
-public class MidiTabGroup 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) {
-		setTabs(new ILaunchConfigurationTab[] {
-				new MidiMainTab(),
-				new CommonTab()
-		});
-	}
-}
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 f462343..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/DebugUIPlugin.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 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.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-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";
-    
-    /**
-     * MIDI file image
-     */
-    public final static String IMG_OBJ_MIDI = "IMB_OBJ_MIDI";    
-    
-    /**
-     * 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_OBJ_MIDI, PATH_OBJECT + "note.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;
-    }
-    
-	/**
-	 * Returns the active workbench window
-	 * 
-	 * @return the active workbench window
-	 */
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-	
-	/**
-	 * Returns the active workbench shell or <code>null</code> if none
-	 * 
-	 * @return 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;
-	}    
-    
- }
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 ed0c069..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/adapters/PDADebugTargetContentProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-
-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(0);
-		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(0);
-		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(0);
-			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 f7bc123..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();
-		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 0f2639f..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDABreakpointAdapter.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 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
- *     Wind River Systems - added support for IToggleBreakpointsTargetFactory
- *******************************************************************************/
-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];
-	        toggleWatchpoint(resource, lineNumber, fcn, var, true, true);
-	    }
-	}
-	/* (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;
-	}
-	
-	protected void toggleWatchpoint(IResource resource, int lineNumber, String fcn, String var, boolean access, 
-	    boolean modification) throws CoreException
-	{
-        // 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, access, modification);
-        DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(watchpoint);
-	}
-
-	/**
-	 * 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.
-	 */
-	protected 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/breakpoints/PDAToggleWatchpointsTarget.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAToggleWatchpointsTarget.java
deleted file mode 100644
index 4c51afe..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAToggleWatchpointsTarget.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.breakpoints;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-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.model.ISourceLocator;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-import org.eclipse.debug.examples.core.pda.model.PDAVariable;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.progress.WorkbenchJob;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * Adapter to create specialized watchpoints in PDA files and the variables views.
- */
-public class PDAToggleWatchpointsTarget extends PDABreakpointAdapter {
-
-    final private boolean fAccessModeEnabled;
-    final private boolean fModificationModeEnabled;
-    
-    PDAToggleWatchpointsTarget(boolean access, boolean modification) {
-        fAccessModeEnabled = access;
-        fModificationModeEnabled = modification;
-    }
-    
-    public boolean canToggleWatchpoints(IWorkbenchPart part, ISelection selection) {
-        if (super.canToggleWatchpoints(part, selection)) {
-            return true;
-        } else {
-            if (selection instanceof IStructuredSelection) {
-                IStructuredSelection ss = (IStructuredSelection)selection;
-                return ss.getFirstElement() instanceof PDAVariable;
-            }
-        }
-        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) {
-	    	// Selection inside text editor.  Create a watchpoint based on 
-	    	// current source line.
-	        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];
-	        toggleWatchpoint(resource, lineNumber, fcn, var, fAccessModeEnabled, fModificationModeEnabled);
-	    } else if (selection instanceof IStructuredSelection && 
-	               ((IStructuredSelection)selection).getFirstElement() instanceof PDAVariable ) 
-	    {
-	        // Selection is inside a variables view.  Create a watchpoint 
-	        // using information from  the variable.  Retrieving information
-	        // from the model requires performing source lookup which should be 
-	        // done on a background thread.
-	        final PDAVariable var = (PDAVariable)((IStructuredSelection)selection).getFirstElement();
-	        final PDAStackFrame frame = var.getStackFrame();
-	        final Shell shell = part.getSite().getShell(); 
-	        
-	        new Job("Toggle PDA Watchpoint") {
-	            { setSystem(true); }
-	            
-	            protected IStatus run(IProgressMonitor monitor) {
-	                try {
-    	                IFile file = getResource(var.getStackFrame());
-    	                String varName = var.getName();
-    	                int line = findLine(file, varName);
-    	                toggleWatchpoint(file, line, frame.getName(), varName, 
-    	                    fAccessModeEnabled, fModificationModeEnabled);
-	                } catch (final CoreException e) {
-	                    // Need to switch back to the UI thread to show the error
-	                    // dialog.
-	                    new WorkbenchJob(shell.getDisplay(), "Toggle PDA Watchpoint") {
-	                        { setSystem(true); }
-	                        
-	                        public IStatus runInUIThread(IProgressMonitor monitor) {
-	                            ErrorDialog.openError(shell, "Failed to create PDA watchpoint", "Failed to create PDA watchpoint.\n", e.getStatus());
-	                            return Status.OK_STATUS;
-	                        }
-	                    }.schedule();
-	                }
-	                return Status.OK_STATUS;
-	            }
-	        }.schedule();
-	    }
-	}
-
-	private IFile getResource(PDAStackFrame frame) {
-	    ISourceLocator locator = frame.getLaunch().getSourceLocator();
-	    Object sourceElement = locator.getSourceElement(frame);
-	    if (sourceElement instanceof IFile) {
-	        return (IFile)sourceElement;
-	    }
-	    return null;
-	}
-	
-	private int findLine(IFile file, String var) throws CoreException {
-	    BufferedReader reader = new BufferedReader(new InputStreamReader(file.getContents()));
-	    
-	    int lineNum = 0;
-	    try {
-    	    while(true) {
-    	        String line = reader.readLine().trim();
-    	        if (line.startsWith("var")) {
-    	            String varName = line.substring("var".length()).trim();
-    	            if (varName.equals(var)) {
-    	                break;
-    	            }
-    	        }
-                lineNum++;
-    	    }
-	    } catch (IOException e) {
-	        // end of file reached and line wasn't found
-	        return -1;
-	    } finally {
-	        try {
-	            reader.close();
-	        } catch (IOException e) {}
-	    }
-	    return lineNum;
-	}
-	
-    /* (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/PDAToggleWatchpointsTargetFactory.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAToggleWatchpointsTargetFactory.java
deleted file mode 100644
index 9c9ebd9..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/breakpoints/PDAToggleWatchpointsTargetFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.breakpoints;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
-import org.eclipse.debug.ui.actions.IToggleBreakpointsTargetFactory;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Toggle breakpoints target factory for creating PDA watchpoints.  It allows the 
- * user the select the type of watchpoint that will be created when the watchpoint 
- * is toggles inside the editor or variables view.
- */
-public class PDAToggleWatchpointsTargetFactory implements IToggleBreakpointsTargetFactory {
-
-    private static final String TOGGLE_WATCHPOINT_TARGET_ACCESS = "org.eclipse.debug.examples.ui.pda.watchpoint_access";
-    private static final String TOGGLE_WATCHPOINT_TARGET_MODIFICATION = "org.eclipse.debug.examples.ui.pda.watchpoint_modification";
-    private static final String TOGGLE_WATCHPOINT_TARGET_BOTH = "org.eclipse.debug.examples.ui.pda.watchpoint_both";
-    
-    private static Set TOGGLE_WATCHPOINTS_TARGETS = new LinkedHashSet();
-    
-    private Map fToggleWatchpointTargets = new HashMap(3);
-    
-    static {
-        TOGGLE_WATCHPOINTS_TARGETS.add(TOGGLE_WATCHPOINT_TARGET_BOTH);
-        TOGGLE_WATCHPOINTS_TARGETS.add(TOGGLE_WATCHPOINT_TARGET_ACCESS);
-        TOGGLE_WATCHPOINTS_TARGETS.add(TOGGLE_WATCHPOINT_TARGET_MODIFICATION);
-    }   
-    
-    public IToggleBreakpointsTarget createToggleTarget(String targetID) {
-        IToggleBreakpointsTarget target = (IToggleBreakpointsTarget)fToggleWatchpointTargets.get(targetID);
-        if (target == null) {
-            if (TOGGLE_WATCHPOINT_TARGET_BOTH.equals(targetID)) {
-                target = new PDAToggleWatchpointsTarget(true, true);
-            } else if (TOGGLE_WATCHPOINT_TARGET_ACCESS.equals(targetID)) {
-                target = new PDAToggleWatchpointsTarget(true, false);
-            } else if (TOGGLE_WATCHPOINT_TARGET_MODIFICATION.equals(targetID)) {
-                target = new PDAToggleWatchpointsTarget(false, true);
-            } else { 
-                return null;
-            }
-            fToggleWatchpointTargets.put(targetID, target);
-        }
-        return target;
-    }
-    
-    public String getDefaultToggleTarget(IWorkbenchPart part, ISelection selection) {
-        return TOGGLE_WATCHPOINT_TARGET_BOTH;
-    }
-
-    public Set getToggleTargets(IWorkbenchPart part, ISelection selection) {
-        return TOGGLE_WATCHPOINTS_TARGETS;
-    }
-
-    public String getToggleTargetName(String targetID) {
-        if (TOGGLE_WATCHPOINT_TARGET_BOTH.equals(targetID)) {
-            return "Watchpoints (Read/Write)";
-        } else if (TOGGLE_WATCHPOINT_TARGET_ACCESS.equals(targetID)) {
-            return "Watchpoints (Read)";
-        } else if (TOGGLE_WATCHPOINT_TARGET_MODIFICATION.equals(targetID)) {
-            return "Watchpoints (Write)";
-        } else { 
-            return null;
-        }
-    }
-
-    public String getToggleTargetDescription(String targetID) {
-        return getToggleTargetName(targetID);
-    }
-}
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 43e35dc..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/editor/PopFrameActionDelegate.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
- *******************************************************************************/
-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.popFrame();
-		} 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.canPopFrame() && 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 78fc73d..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDALaunchShortcut.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 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.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);
-            workingCopy.setMappedResources(new IResource[]{file});
-            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 27b3a2f..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/launcher/PDAMainTab.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 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
-		
-		// perform resource mapping for contextual launch
-		IResource[] resources = null;
-		if (program!= null) {
-			IPath path = new Path(program);
-			IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
-			if (res != null) {
-				resources = new IResource[]{res};
-			}
-		}
-		configuration.setMappedResources(resources);
-	}
-	
-	/* (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/AbstractDataStackViewHandler.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/AbstractDataStackViewHandler.java
deleted file mode 100644
index d9a279f..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/AbstractDataStackViewHandler.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-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.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Base class for command handlers for data stack view.
- */
-abstract public class AbstractDataStackViewHandler extends AbstractHandler {
-
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-        IWorkbenchPart part = HandlerUtil.getActivePartChecked(event);
-        if (part instanceof DataStackView) {
-            DataStackView view = (DataStackView)part;
-            
-            ISelection selection = DebugUITools.getDebugContextForEventChecked(event);
-            if (selection instanceof IStructuredSelection) {
-                Object element = ((IStructuredSelection)selection).getFirstElement();
-                
-                PDAThread thread = null;
-                if (element instanceof PDAThread) {
-                    thread = (PDAThread)element;
-                } else if (element instanceof PDAStackFrame) {
-                    thread = (PDAThread)((PDAStackFrame)element).getThread();
-                } 
-
-                if (element != null) {
-                    doExecute(
-                        view, 
-                        thread, 
-                        HandlerUtil.getCurrentSelectionChecked(event));
-                }
-            }
-        } else {
-            throw new ExecutionException("Handler must be with DataStackView only");
-        }
-        return null;
-    }
-    
-    /**
-     * Performs the actual handler operation. 
-     * 
-     * @param view The view that the handler was invoked in.
-     * @param target The current active debug target.
-     * @param selection The current selection in view.
-     */
-    abstract protected void doExecute(DataStackView view, PDAThread target, ISelection selection) throws ExecutionException;
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/CanPushTester.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/CanPushTester.java
deleted file mode 100644
index 10b5acd..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/CanPushTester.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.examples.core.pda.model.PDADebugElement;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-
-/**
- * Property tester for use with standard expressions to determine whether 
- * the given debug target can perform a push operation.
- */
-public class CanPushTester extends PropertyTester {
-   
-    private static final String CAN_PUSH_PROPERTY = "canPush";
-    
-    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-        if (CAN_PUSH_PROPERTY.equals(property)) {
-            if (receiver instanceof IAdaptable) {
-                PDADebugElement element = (PDADebugElement) 
-                    ((IAdaptable)receiver).getAdapter(PDADebugElement.class);
-                PDAThread thread = null;
-                if (element instanceof PDAThread) {
-                    thread = (PDAThread)element;
-                } else if (element instanceof PDAStackFrame) {
-                    thread = (PDAThread)((PDAStackFrame)element).getThread();
-                } 
-                
-                if (thread != null) {
-                    return thread.canPushData();
-                }
-            }
-        }
-        return false;
-    }
-}
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 5e20475..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/DataStackView.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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
- *     Wind River - Pawel Piech - replaced actions with handlers (bug 229219)
- *     Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
-******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.examples.core.pda.model.PDAStackFrame;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.debug.ui.AbstractDebugView;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.contexts.DebugContextEvent;
-import org.eclipse.debug.ui.contexts.IDebugContextListener;
-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.IStructuredSelection;
-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.IWorkbenchActionConstants;
-import org.eclipse.ui.progress.UIJob;
-
-
-/**
- * View of the PDA VM data stack 
- */
-public class DataStackView extends AbstractDebugView implements IDebugContextListener {
-    
-    private PDAThread fThread;
-	
-	class StackViewContentProvider implements ITreeContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof PDAThread) {
-				try {
-					return ((PDAThread)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 PDAThread) {
-				return null;
-			} else {
-				return fThread;
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return element instanceof PDAThread;
-		}
-
-		/* (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());
-		DebugUITools.getDebugContextManager().getContextService(getSite().getWorkbenchWindow()).addDebugContextListener(this);
-		getSite().setSelectionProvider(viewer);
-		return viewer;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#createActions()
-	 */
-	protected void createActions() {
-	}
-	/* (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));
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(org.eclipse.jface.action.IToolBarManager)
-	 */
-	protected void configureToolBar(IToolBarManager tbm) {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-        DebugUITools.getDebugContextManager().getContextService(getSite().getWorkbenchWindow()).removeDebugContextListener(this);
-		super.dispose();
-	}
-	
-	public void debugContextChanged(final DebugContextEvent event) {
-	    new UIJob(getSite().getShell().getDisplay(), "DataStackView update") {
-	        {
-	            setSystem(true);
-	        }
-	        
-	        public IStatus runInUIThread(IProgressMonitor monitor) {
-	            update(event.getContext());
-	            return Status.OK_STATUS;
-	        }
-	    }.schedule();
-	}
-    
-    /**
-     * Updates the view for the selected thread (if suspended)
-     */
-    private void update(ISelection context) {
-        fThread = null;
-        
-        if (context instanceof IStructuredSelection) {
-            Object element = ((IStructuredSelection)context).getFirstElement();
-            if (element instanceof PDAThread) {
-                fThread = (PDAThread)element;
-            } else if (element instanceof PDAStackFrame) {
-                fThread = (PDAThread)((PDAStackFrame)element).getThread();
-            }
-        }
-		Object input = null;
-		if (fThread != null && fThread.isSuspended()) {
-		    input = fThread;
-		}
-		getViewer().setInput(input);
-		getViewer().refresh();
-    }
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopHandler.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopHandler.java
deleted file mode 100644
index 1c0c5bc..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PopHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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 PopHandler extends AbstractDataStackViewHandler {
-
-    protected void doExecute(DataStackView view, PDAThread thread, ISelection selection) throws ExecutionException {
-        TreeViewer viewer = (TreeViewer)view.getViewer();
-        Object popee = selection instanceof IStructuredSelection 
-            ? ((IStructuredSelection)selection).getFirstElement() : null;
-        if (popee != null) {
-            try {
-                IValue[] stack = thread.getDataStack();
-                List restore = new ArrayList();
-                for (int i = 0; i < stack.length; i++) {
-                    Object value = stack[i];
-                    if (popee.equals(value)) {
-                        // pop & stop
-                        thread.popData();
-                        break;
-                    } else {
-                        // remember value to push back on
-                        restore.add(thread.popData());
-                    }
-                }
-                while (!restore.isEmpty()) {
-                    IValue value = (IValue) restore.remove(restore.size() - 1);
-                    thread.pushData(value.getValueString());
-                }
-            } catch (DebugException e) {
-                throw new ExecutionException("Failed to execute push command", e);
-            }
-            viewer.refresh();
-        }
-    }
-
-}
diff --git a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushHandler.java b/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushHandler.java
deleted file mode 100644
index 58fbc7c..0000000
--- a/org.eclipse.debug.examples.ui/src/org/eclipse/debug/examples/ui/pda/views/PushHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Wind River Systems 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:
- *     Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.examples.ui.pda.views;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.examples.core.pda.model.PDAThread;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-
-/**
- * Pushes a value onto the data stack.
- */
-public class PushHandler extends AbstractDataStackViewHandler {
-
-   protected void doExecute(DataStackView view, PDAThread thread, ISelection selection) throws ExecutionException {
-       InputDialog dialog = new InputDialog(view.getSite().getShell(), "Specify Value", "Enter value to push", null, null);
-       if (dialog.open() == Window.OK) {
-           try {
-               thread.pushData(dialog.getValue());
-           } catch (DebugException e) {
-               throw new ExecutionException("Failed to execute push command", e);
-           }
-       }
-       view.getViewer().refresh();
-    }
-
-}
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 6571846..0000000
--- a/org.eclipse.ui.externaltools/.project
+++ /dev/null
@@ -1,34 +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>

-		<buildCommand>

-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

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

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

-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</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 6cec79c..0000000
--- a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-#Mon Dec 01 09:56:45 PST 2008

-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.annotationSuperInterface=warning

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

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

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

-org.eclipse.jdt.core.compiler.problem.deadCode=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.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.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.missingDeprecatedAnnotation=ignore

-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=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.missingOverrideAnnotation=ignore

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

-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=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.parameterAssignment=warning

-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=warning

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

-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=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.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled

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

-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=disabled

-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.unusedWarningToken=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 11dab43..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
+++ /dev/null
@@ -1,1241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 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 boolean fWarned = false;
-	
-	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.getName()}), 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);
-		button.setFont(parent.getFont());
-		button.setText(label);
-		button.setEnabled(false);
-		button.addSelectionListener(buttonListener);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.grabExcessHorizontalSpace = true;
-		button.setLayoutData(data);
-		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-		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);
-            	return;
-            } else if (!fWarned) {
-            	if(MessageDialog.openConfirm(shell, ExternalToolsUIMessages.BuilderPropertyPage_6, ExternalToolsUIMessages.BuilderPropertyPage_7)) {
-            		fWarned = true;
-            	}
-			} 
-            if(fWarned) {
-            	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 enableEdit = false;
-		boolean enableRemove = false;
-		boolean enableUp = false;
-		boolean enableDown = false;
-		if(items != null) {
-			boolean validSelection =  items.length > 0;
-			enableEdit = validSelection;
-			enableRemove = validSelection;
-			enableUp = validSelection;
-			enableDown = validSelection;
-			if (items.length > 1) {
-				enableEdit= false;
-			}
-			int indices[]= builderTable.getSelectionIndices();
-			int max = builderTable.getItemCount();
-			if(indices.length > 0) {
-				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) {
-					if(newArgs != null) {
-						return true;
-					}
-					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 5dce95f..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)"
-Bundle-ActivationPolicy: lazy
-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 2708f4d..0000000
--- a/org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

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

-<schema targetNamespace="org.eclipse.ui.externaltools" xmlns="http://www.w3.org/2001/XMLSchema">

-<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>

-               <appinfo>

-                  <meta.attribute kind="identifier" basedOn="org.eclipse.debug.core.launchConfigurationTypes/launchConfigurationType/@id"/>

-               </appinfo>

-            </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 &quot;sourceType&quot; is imported to be a project builder

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="identifier" basedOn="org.eclipse.debug.core.launchConfigurationTypes/launchConfigurationType/@id"/>

-               </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 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="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>